def _get_merged_catchup_txns(existing_txns, new_txns):
"""
Merge any newly received txns during catchup with already received txns
:param existing_txns:
:param new_txns:
:return:
"""
idx_to_remove = []
for i, (seq_no, _) in enumerate(existing_txns):
if seq_no < new_txns[0][0]:
continue
if seq_no > new_txns[-1][0]:
break
idx_to_remove.append(seq_no - new_txns[0][0])
for idx in reversed(idx_to_remove):
new_txns.pop(idx)
return list(heapq.merge(existing_txns, new_txns,
key=operator.itemgetter(0)))
评论列表
文章目录