質問
データベースでACIDセマンティクスを提供する必要があるプロジェクトの研究を開始しています。
データの性質上、一般的な既製システム(リレーショナルまたはKey-Value)でのストレージには適していません。
ACIDセマンティクスを提供する必要があるシステムを実装する方法に関する優れたリソースは何ですか?
通常のGoogle検索では、ACIDセマンティクスを既に提供しているシステムについて、そのようなシステムの実装方法よりも詳細な情報が返されます。
解決
ARIESは、ACIDデータベースを実装するための一般的なアルゴリズムです(たとえば、SQL Serverはこのアルゴリズムを使用します)。
他のヒント
Timothy Leary-脳の操作方法
ドイツ語を知っているなら、お勧めします
- Alfons Kemperer:Datenbanksysteme-Eine Einf <!>#252; hrung、ISBN 3486576909
<!> quot; Einf <!>#252; hrung <!> quot;は、<!> quot; introduction <!> quot;を意味し、総体的な過小評価です。この本には、データの物理的なレイアウト、WAL(先読みロギング)、シリアル化可能履歴と非シリアル化可能履歴、障害後の再起動などに関する章がいくつかあります。
しかし、あなたは本当にそのようなものを書きたいとは思いません。理論的には、リレーショナルモデルの上に任意のデータ構造をモデル化できることを思い出す必要がありますか?
楽観的な同時実行性を見てください。ロックする代わりに、STM(ソフトウェアトランザクションメモリ)アプローチを使用します。実装がはるかに高速で簡単になります。 SERIALIZABLE分離レベルを使用すると、1秒あたり10,000または100,000のACIDトランザクションを保持できます。トランザクションの分離プロパティを緩和する必要はありません。
また、メモリ内キャッシュと、場合によってはディスク上のデータにも、部分的に永続的なデータ構造の使用を検討することをお勧めします。書き込み操作によってブロックされることのないリーダーを許可します。
作業中のデータベースについては、 http://bergdb.com/ をご覧ください。この興味深いトピックについてお気軽にご連絡ください。 / Frans Lundberg
また、不適切に定義されたACIDプロパティについて説明します:
http://blog.franslundberg.com/ 2013/12 / acid-does-not-make-sense.html