Esempio n. 1
0
 def load(cls, root, path):
     ts, rev, hash = path.split("_")
     t = Transaction(rev)
     t.ts = ts
     f = open(root + '/transaction/%s' % path)
     d = f.read()
     for i in d.split('\n'):
         i = i.strip()
         if i:
             t.statements.append( Statement.from_json(i) )
     return t
Esempio n. 2
0
    def replay_compacted(self):
        compacted_transactions = os.listdir(self.data_path + '/compact/')
        compacted_transactions.sort()

        cur_trans = None
        for i in compacted_transactions:
            f = open(self.data_path + '/compact/' + i)
            for j in f.readlines():
                j = j.strip()
                if j.startswith('begin'):
                    # start transaction
                    if cur_trans:
                        self.commit_transaction(cur_trans, is_replay=True)
                    ts, rev, hash = j.split(' ')[1].split("_")
                    cur_trans = Transaction(rev)
                    cur_trans.ts = ts
                else:
                    cur_trans.statements.append( Statement.from_json(j) )
        if cur_trans:
            self.commit_transaction(cur_trans)