您好,欢迎来到海洋目录网!网站收录,值得选择!长期招友情链接 QQ10212321

快审
当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

遇到的一则MongoDB objectid冲突的问题

来源:网站目录 浏览:8次 时间:2020-11-20

最近开发反馈sentry遇到mongodb写入报 objectid 重复的情况,类似下图:

image.png



我们生产用的是mongo3.4的版本

官方文档介绍3.4的 objectid生成规则如下:

https://docs.mongodb.com/v3.4/reference/method/ObjectId/

  • a 4-byte timestamp value, representing the ObjectId’s creation, measured in seconds since the Unix epoch  4 个字节表示时间戳, unixtime

  • a 5-byte random value  5 个字节随机数

  • a 3-byte incrementing counter, initialized to a random value 3 个字节表示一个自增的数



举例子:

24位的objectid,我们按照上面的规则来拆分成3段:

5ec428fca413e054714e7fb2拆分:

5ec428fc --> 1589913852 --> 2020-05-20 02:44:12

a413e05471-->704708105329

4e7fb2 --> 5144498


5ec428fca413e054714e7fb3拆分:

5ec428fc--> 1589913852 --> 2020-05-20 02:44:12

a413e05471 --> 704708105329

4e7fb3 --> 5144499


可以看到,上面的2个objectid只有最后的counter段有差异,生产上如果我们写入并发比较高,还是会出现objectid冲突的情况发生的。


附带,mongodb3.2的objectid生成规则(和3.4版本不同):

https://docs.mongodb.com/v3.2/reference/method/ObjectId/


  • a 4-byte value representing the seconds since the Unix epoch,

  • a 3-byte machine identifier,

  • a 2-byte process id, and

  • a 3-byte counter, starting with a random value.






参考: https://blog.wolfogre.com/posts/mongo-objectid-design/



推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net