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
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)