永続性保証の設定

デフォルトでは、書込み操作はCOMMIT_NO_SYNCの永続性保証で実行されます。これは、永続性保証を作成および使用することでオーバーライドできます。

new Durability()を使用して、Durabilityオブジェクトを作成します。new WriteOptions()を使用してWriteOptionsオブジェクトを作成し、それに永続性ポリシーを含めます。

最後に、パラメータとしてWriteOptionsオブジェクトを指定したstore.Put()メソッドを使用して、ストアで書込み操作を実行します。

たとえば、「表の行への書込み」に示すコード・フラグメントは、次の方法で永続性ポリシーを使用するようにリライトできます。

public void putRow(IKVStore store, String tableName, int id, String loginId, String password)
{
	Durability durability = new Durability(
			SyncPolicy.SYNC, //Master sync
			SyncPolicy.NO_SYNC, //Replica sync
			ReplicaAckPolicy.SIMPLE_MAJORITY //Ack policy
			);
	WriteOptions writeoptions = new WriteOptions(durability,
			3 //0 is the default timeout
			);
	IRow insertedRow = null;
	var row = store.CreateRow(tableName);
	row["id"] = id;
	row["loginId"] = loginId;
	row["password"] = password;
	insertedRow = store.Put(row, writeoptions);
	Console.WriteLine(insertedRow);
}

Putトランザクションすべてに対して永続性保証を設定するには、ストアへの接続のコード・フラグメントの次の内容(KVDriver.Create()の前)を追加します。

Durability durability = new Durability(
		SyncPolicy.SYNC, //Master sync
		SyncPolicy.NO_SYNC, //Replica sync
		ReplicaAckPolicy.SIMPLE_MAJORITY //Ack policy
);
WriteOptions writeoptions = new WriteOptions(durability,
		3 //0 is the default timeout
);
dict.Add(Options.OPTIONS_WRITE_DEFAULT, writeoptions);