社会人2年目にして人生の意義を見失いつつあるので、ここはひとつ「データベースシステムを自作してみる」という目標を打ち立てます。 この目標を打ち立てたのは、学生時代にトランザクション処理について研究していたため、ちょっとした基礎知識があるからという理由です。 トランザクション系の論文を読んでいると様々な前提条件があり、それを実際のシステムにどう落とし込むのかという疑問が常々ありました。 やっと重い腰をあげて、その疑問を解消したいと思います。 どんなものを作るかという要求は以下の項目を考えています。 RDBMS SQLを実行する どこまでやるかは要検討 Range queryはサポートしたい トランザクション処理をやる 分離レベルはSerializable インメモリ ロギングをやって永続性を担保する Concurrent treeを使う or 実装する スナップショット やらないかもしれない