Sequoiadb中怎么指定OID为Date类型

开发技术 作者:Leah 2024-03-27 02:55:01
今天就跟大家聊聊有关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类型有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注捷杰建站行业资讯频道,感谢大家的支持。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_597.html
oid sequoiadb date