永続性保証の設定
デフォルトでは、書込み操作は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);