def get_logs(self, path, last_clock): beg = time.time() path = '/Public' + util.format_path(path) length = 5 offset = 0 # latest comment comes first comments = self.get_comments(path, length, offset) if not comments: return [], None new_logs = [] new_clock = comments[0]['id'] end = False while True: for comment in comments: if last_clock and comment['id'] == last_clock: end = True break new_logs.insert(0, comment['message']) if end: break if len(comments) < length: break # if haven't reached to end, read next batch offset += length comments = self.get_comments(path, length, offset) end = time.time() dbg.paxos_time("get_log %s", end - beg) return new_logs, new_clock
def get_logs(self, path, last_clock): beg = time.time() path = '/Public' + util.format_path(path) length = 5 offset = 0 # latest comment comes first comments = self.get_comments(path, length, offset) if not comments: return [], None new_logs = [] new_clock = comments[0]['id'] end = False while True: for comment in comments: if last_clock and comment['id'] == last_clock: end = True break new_logs.insert(0, comment['message']) if end: break if len(comments) < length: break # if haven't reached to end, read next batch offset += length comments = self.get_comments(path, length, offset) end = time.time() dbg.paxos_time("get_log %s", end-beg) return new_logs, new_clock
def get_logs2(self, path, last_clock): beg = time.time() path = '/Public' + util.format_path(path) length = 5 offset = 0 # latest comment comes first #comments = self.get_comments(path, length, offset) revisions = self.get_revisions(path) if not revisions: return [], None new_logs = [] new_clock = revisions[0]['id'] end = False # while True: for revision in revisions: if last_clock and revision['id'] == last_clock: break msg = self.get_revision(path, revision['id']) if len(msg) > 0: new_logs.insert(0, msg) # if end: break # if len(revisions) < length: break # if haven't reached to end, read next batch # offset += length # comments = self.get_comments(path, length, offset) end = time.time() dbg.paxos_time("get_log %s", end - beg) return new_logs, new_clock
def get_comments(self, path, length=5, offset=0): beg = time.time() path = util.format_path(path) metadata = self._path_to_metadata(path) file_id = metadata['id'] params = {'limit': length, 'offset': offset} url = OneDriveAPI.BASE_URL + '/%s/comments' % (file_id) resp = self._request('GET', url, params) end = time.time() dbg.paxos_time("get_comments %s", end - beg) return resp['data']
def get_comments(self, path, length=5, offset=0): beg = time.time() path = util.format_path(path) metadata = self._path_to_metadata(path) file_id = metadata['id'] params = { 'limit': length, 'offset': offset } url = OneDriveAPI.BASE_URL + '/%s/comments' % (file_id) resp = self._request('GET', url, params) end = time.time() dbg.paxos_time("get_comments %s", end-beg) return resp['data']
def submit(self, funcname, wait, *args, **kargs): #dbg.paxos_time("%s %s" % (funcname, self.cmdId)) for acc in self.acceptors: acc.tasks.put((self.cmdId, funcname, wait, args, kargs)) ret = None if wait: waitcount = self.num_acceptors / 2 + 1 count = 0 ret = [] while count < waitcount: beg = time.time() index, acc = self.results.get() end = time.time() dbg.paxos_time("submit %s %s %s" % (index, funcname, end-beg)) beg = time.time() if index == self.cmdId: count += 1 ret.append(acc) self.results.task_done() end = time.time() self.cmdId += 1 return ret
def submit(self, funcname, wait, *args, **kargs): #dbg.paxos_time("%s %s" % (funcname, self.cmdId)) for acc in self.acceptors: acc.tasks.put((self.cmdId, funcname, wait, args, kargs)) ret = None if wait: waitcount = self.num_acceptors / 2 + 1 count = 0 ret = [] while count < waitcount: beg = time.time() index, acc = self.results.get() end = time.time() dbg.paxos_time("submit %s %s %s" % (index, funcname, end - beg)) beg = time.time() if index == self.cmdId: count += 1 ret.append(acc) self.results.task_done() end = time.time() self.cmdId += 1 return ret
def append(self, path, msg): beg = time.time() path = '/Public' + util.format_path(path) self.post_comment(path, msg) end = time.time() dbg.paxos_time("append %s", end-beg)
def append(self, path, msg): beg = time.time() path = '/Public' + util.format_path(path) self.post_comment(path, msg) end = time.time() dbg.paxos_time("append %s", end - beg)
def _debug_time(self, msg): cur = time.time() dbg.paxos_time("%s: %s" % (msg, cur - self.starttime))