Sequoiadb中怎么指定OID为Date类型
今天就跟大家聊聊有关Sequoiadb中怎么指定OID为Date类型,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
【问题描述】
指定OID类型为Date,在高并发插入的场景下是否会导致oid值重复?如:
1. 创建线程,每个线程里面插入类型为Date的OID:
BSONObject obj = new BasicBSONObject();
Date now = new Date();
obj.put("date", now);
2. 同时启动多个线程,多并发插入的情况下oid是否重复?
【解决办法】
1. OID 为一个 12 字节的 BSON 数据类型,生成规则: 4 字节精确到秒的时间戳
3 字节系统(物理机)标示
2 字节进程 ID
3 字节由随机数起始的序列号
2. 由以上生成规则可知,OID 在集群环境中是全局唯一的
3. Java BSON 的 OID 的生成规则略有区别,Java OID的 12字节内容由三部分组成:
4 字节精确到秒的时间戳
4 字节系统(物理机)标示
4 字节由随机数起始的序列号
4. 因此,使用java驱动生成的 OID 可保证组内 OID 值唯一,不能保证在集群环境中全局唯一
看完上述内容,你们对Sequoiadb中怎么指定OID为Date类型有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341