Example #1
0
    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
Example #2
0
  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
Example #3
0
    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
Example #4
0
    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']
Example #5
0
  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']
Example #6
0
  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
Example #7
0
    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
Example #8
0
 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)
Example #9
0
 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)
Example #10
0
 def _debug_time(self, msg):
     cur = time.time()
     dbg.paxos_time("%s: %s" % (msg, cur - self.starttime))