ACID準拠のトランザクション


 

Oracle NoSQL Databaseが提供するACID準拠のトランザクションでは、作成、読取り、更新、削除(CRUD)の操作を完全にサポートしており、永続性と一貫性が確保された調整可能なトランザクションが保証されています。

また、操作の対象となっているレコードが同じ主要キー・パスを共有している限り、一連の操作を単一のアトミック単位として実行できます。 アトミック単位によって、操作のすべてが正常に実行された場合にみ成功となり、それ以外の場合は失敗ということになります。

 

たとえば、ユーザー・プロファイルの情報をデータベースに格納しており、あるユーザーの"誕生日"、"画像"、"電話番号"、"userID"の更新を単一のアトミック・トランザクションとして実行するとします。なお、ここでは説明の目的で、主要キー・パスをスラッシュ(“/”)で区切り、補助キー・パスをドット(".")で区切っています。  

 

Smith/Bob.birthdate

Smith/Bob.phonenumber

Smith/Bob.image

Smith/Bob.userID

Smith/Patricia.birthdate

Smith/Patricia.phonenumber

Smith/Patricia.image

Smith/Patricia.userID

 

効率的なトランザクション・メカニズムを提供するexecuteメソッドを使用すると、同じ主要キー・パスを共有するキーに関連付けられた一連の操作を実行できます。

広範な一貫性ポリシー

 Oracle NoSQL Databaseは、さまざまな異なる一貫性ポリシーを提供しています。 広範な一貫性ポリシーの一端では、アプリケーションが絶対的な一貫性を規定できます。これによって、すべての読取りが、指定されたキーに対応する最新の書込み値を返すことが保証されます。 広範な一貫性ポリシーのもう一端では、一貫性のないデータを許容するアプリケーションの能力で、一貫性の弱さを規定できます。これによって、データベースは、完全な最新データとはいえない場合でも効率的に値を返すことが可能になります。 対極にあるこれら2つのポリシーの間で、アプリケーションは、レコードの古さに制約を設けて時間に基づいた一貫性を規定すること、またはread-modify-write操作の原子性と読取りにおいて遡ることが許されるバージョンの指定を両方ともサポートするバージョンに基づいた一貫性を規定することができます。


広範な永続性ポリシー

Oracle NoSQL Databaseは、幅広い永続性ポリシーも提供しています。これらのポリシーは、クラッシュの発生後に何がシステム動作を保証するかを指定します。 広範なポリシーの一端では、アプリケーションは、すべてのコピーにおいてレコードが永続的なストレージに書き込まれるまで書込み要求をブロックするように、要求することができます。 広範なポリシーのもう一端では、アプリケーションは、システムが既存の書込みの記録を完了するとすぐに、データが永続的なストレージになかったとしても、書込み操作の再開を要求できます。