【发布时间】:2021-07-01 11:22:08
【问题描述】:
对于Mongo Bson类型的Timestamp,有一个构造函数:BsonTimestamp(final int seconds, final int increment),如何理解increment?设计考虑是什么?
【问题讨论】:
对于Mongo Bson类型的Timestamp,有一个构造函数:BsonTimestamp(final int seconds, final int increment),如何理解increment?设计考虑是什么?
【问题讨论】:
Timestamp 是 MongoDB 使用的内部 BSON 类型,用于反映 replication oplog 中条目的操作时间 (ts)。
BSON Timestamp 类型专为记录有序批次的基于时间的操作的特定用例而设计:
time_t) 是一个整数值,表示自 Unix 纪元以来的秒数ordinal),表示给定秒内的排序Timestamps 的设计要求是基于保持 oplog 条目的严格排序而不是时间精度(例如毫秒或微秒)。领先时间分量给出了以秒为单位的课程粒度;附加一个递增的ordinal value 可确保在给定秒内对唯一时间戳值进行严格排序。使用有序序列而不是时间精度可以避免降低可能在同一毫秒(或微秒)内发生的两个操作的潜在冲突。
对于应用程序用例,您应该使用BSON Date 类型而不是时间戳。 BSON Date 与 Timestamp 的大小(以位为单位)相同,但提供了更多的时间粒度:
BSON 日期是一个 64 位整数,表示自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。这导致过去和未来大约 2.9 亿年的可表示日期范围。
【讨论】: