更新の処理方法

データ・ドメイン・クラスタでは、索引におけるレコードに対する更新と構成に対する更新は、リーダー・ノードをホストするOracle Endeca Serverにルーティングされます。

リーダー・ノードは更新を処理してディスク上の索引にコミットします。完了時に、新規バージョンの索引が利用可能なことをフォロワ・ノードのすべてにクラスタ・コーディネータが通知します。リーダー・ノードとすべてのフォロワ・ノードは、引き続き旧バージョンの索引を使用して、そのバージョンに対して開始した問合せ処理を終了できます。

各ノードで問合せ処理が旧バージョンにおいて終了すると、参照を解放します。フォロワ・ノードが新規バージョンの通知を受信すると、読取り専用アクセス権を取得して使用を開始します。

外部トランザクションと更新の相互作用

外部トランザクションとは、他のリクエストに包含して単一の原子性操作としてそれらのすべてを処理できるEndeca Serverへのリクエストです。データ・ドメイン索引への更新を実行する際、外部トランザクションのリクエストを使用すると便利です。すべての更新を単位として成功するか失敗するには、データ・ドメイン・クラスタにおける更新をEndeca Serverへの外部トランザクション・リクエストにラップすることをお薦めしますが、これはオプションです。

次の文では、データ・ドメイン・クラスタにおける外部トランザクション・リクエストの動作を説明しています。
  • 外部トランザクションの開始リクエストは、Endeca Serverクラスタのノードに送信できます。Endeca Serverルーティング・サービスはリクエストをデータ・ドメイン・クラスタのリーダー・ノードに送信して、それによって処理します。
  • 外部トランザクションを処理中にDgraphリーダー・ノードで障害が発生すると、外部トランザクション・リクエストは適用されません。これは、データ・ドメイン索引はいかなる方法でも変更されないことを意味します。この場合、オープンなトランザクションが指定IDで見つからないことに関してメッセージが、データ・ドメインのリクエスト・ログに格納されていることがあります。トランザクションはデータ・ドメインで実行していないためです。Endeca Serverクラスタで新規Dgraphリーダー・ノードをデータ・ドメイン用に確立したら、外部トランザクションを再起動することをお薦めします。

外部トランザクションが機能する仕組みの詳細は、『Oracle Endeca Server開発者ガイド』を参照してください。