mongo数据库的y2038问题
摘要:
查阅mongo for c driver 驱动源码,发现其 _id 是 12byte ,其中头4字节,调用time(NULL), 这个函数存在y2038问题。建议是修改为16byte ,前面8byte,用新的浮点日期格式,这个用delphi的tdatetime ,再保存为int64表示(是用int64保存double,不是真实的int64)。最终方案是16字节binary id转换成字符串表达为32byte hex string该算法可以用在现有的关系数据库,以及其他需要分布式生成key的场景。限制:delphi自己的处理,有9999年问题。目前够用了。by steven 原创。 阅读全文
posted @ 2014-02-12 14:26 stevenlaz 阅读(491) 评论(0) 推荐(0) 编辑