FoundationDb:FDBException的含义:事务太旧,无法执行读取或提交

时间:2019-12-27 16:37:29

标签: foundationdb

我正在尝试在fdbCli中执行getRange命令,但失败 FDBException: Transaction is too old to perform reads or be committed 这个特殊异常的含义是什么? 这是否意味着查询需要5秒钟以上才能完成?

1 个答案:

答案 0 :(得分:0)

Fdb保留5秒钟内开始的事务列表。另外,数据节点仅保留最近5秒的版本。因此,如果读取的版本小于dataNode保留的最后一个版本,则dataNode无法回答请求。这就是fdb引发此异常的原因。避免此类异常的诀窍是将大量的交易花费在许多小额交易上。我还注意到,如果事务时间<300ms,fdb的性能将非常好。