データベースに ACID セマンティクスを提供する必要があるプロジェクトの研究を開始しています。
データの性質上、一般的な市販のシステム (リレーショナルまたはキー値) での保存には適していません。
ACID セマンティクスを提供する必要があるシステムを実装する方法についての優れたリソースは何ですか?
私の典型的な Google 検索では、そのようなシステムの実装方法ではなく、既に ACID セマンティクスを提供しているシステムに関するより多くの情報が返されます。
データベースに ACID セマンティクスを提供する必要があるプロジェクトの研究を開始しています。
データの性質上、一般的な市販のシステム (リレーショナルまたはキー値) での保存には適していません。
ACID セマンティクスを提供する必要があるシステムを実装する方法についての優れたリソースは何ですか?
私の典型的な Google 検索では、そのようなシステムの実装方法ではなく、既に ACID セマンティクスを提供しているシステムに関するより多くの情報が返されます。
ARIES は、ACID データベースを実装するための一般的なアルゴリズムです (たとえば、SQL Server はこのアルゴリズムを使用します)。
あなたがドイツ語を知っているなら、私はお勧めします
「はじめに」を意味する「Einführung」は、ひどく控えめな表現です。この本には、データを物理的にレイアウトする方法、WAL(ログ先行書き込み)、シリアル化可能な履歴とシリアル化不可能な履歴、障害後の再起動などに関するいくつかの章があります。
しかし、あなたが本当にそのようなものを書きたいとは思わない。理論的には、リレーショナルモデルの上に任意のデータ構造をモデル化できることを思い出してください。
楽観的並行性を見てください。ロックの代わりに STM (ソフトウェア トランザクショナル メモリ) アプローチを使用します。はるかに高速かつ簡単に実装できます。SERIALIZABLE 分離レベルを使用すると、1 秒あたり 10,000 または 100,000 の ACID トランザクションを持つことができます。トランザクションの分離性を緩和する必要はありません。
また、メモリ内キャッシュと、場合によってはディスク上のデータにも、部分的に永続的なデータ構造を使用することを検討することをお勧めします。これにより、書き込み操作によってブロックされることのないリーダーが可能になります。
私が取り組んでいるデータベースについては、http://bergdb.com/を参照してください。この興味深いトピックについて話し合うために、私に連絡してください。/ フランス・ランドバーグ
そして、不適切に定義された ACID プロパティに対する私の見解については、次のとおりです。
http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html