プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2023/05/23

MongoDB と 2106 年問題

event_note2023/05/23 2:46

ボタン電池がなくなり、RTC が遥か未来になったときに MongoDB が動作しなくなりました。(正確には、Python アプリにおいて、MongoDB の初期化を行う際にエラーとなりました。)

MongoDB のバージョンは 6.0.5 です。

調べてみると、MongoDB の ObjectID は先頭の4バイトがタイムスタンプ(UNIX タイム)となっているそうです。
MongoDB はこれを符号なし整数として扱っていて、その場合の上限は 4,294,967,295 であり、これは UTC で2106年2月7日6時28分16秒となります。
というわけで、MongoDB はいわゆる 2106 年問題を孕んでいることになります。

ちなみに、4バイトがタイムスタンプを符号付き整数として扱っている場合は 2038 年問題となります。