您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關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類型有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。