最近のアクセス:
GeneXus でのリードレプリカの使用

リードレプリカは、データベースにアクセスするアプリケーションのパフォーマンスを向上させるために使用されるデータベースのコピーです。 
リードレプリカは、プライマリデータベース (「プライマリ データベース インスタンス」とも呼ばれます) のコピーを作成し、データレプリケーション技術を使用して同期を保つことで機能します。プライマリインスタンスでデータの更新や挿入が実行されると、それは自動的にリードレプリカに複製されます。 
したがって、読み取り/書き込みデータベース環境では、書き込み要求をプライマリ データベース インスタンスに送り、読み取り要求を 1 つ以上のリードレプリカに送ることができます。   
リードレプリカは、データベースのパフォーマンスとスケーラビリティを向上させるために使用されます。読み取り要求をプライマリインスタンスではなく、リードレプリカに送ることで、プライマリインスタンスの負荷が軽減され、データベースがより多くの要求をより効率的に処理できるようになります。また、リードレプリカはデータの読み取りのみに使用されるため、書き込み要求を処理する必要がなく、データの読み取りがより効率的になります。
リードレプリカは、以下のような環境でよく使用されます:
  • 分散データベース環境
  • 大規模なデータセットへの高速かつ効率的なアクセスが必要なアプリケーション
  • 大きなデータ読み取り容量

GeneXus でのリードレプリカの使用方法

GeneXus リードレプリカを使用するには、以下の手順に従います:
  1. 新しいデータストアを作成するか、既存のデータストアを開きます。
  2. データストアのプロパティに進み、 [ Read Replica ] プロパティを "Default Data Store" に設定します。
  3. Data Selector オブジェクトを作成し、その [ Use Read Replica ] プロパティに、リードレプリカとして動作するように定義したいずれかのデータストアの名前を設定します。 
  4. 手順 3 で作成したデータセレクターを呼び出す USING 節を含む For Each コマンドを使用して、Procedure オブジェクトを定義します。

:
  • リードレプリカにアクセスするデータセレクターは、For Each コマンドだけで使用できるのではなく、パネルのグリッド、Web パネルのグリッド、データプロバイダーのグループステートメントなどでのデータベース要求でも使用できます。
  • インライン式ナビゲーションが、リードレプリカを使用しているナビゲーション内に含まれている場合、その式もそのリードレプリカを使用します。USING 節を使用して、特定のリードレプリカにアクセスするように式内で定義することはできません。
  • エラー spc0238 を避けるために、データセレクターでリードレプリカを使用し、その中で別のリードレプリカを使用するデータセレクターが定義されているという状況は避けてください。

GeneXus でのリードレプリカ - よくある質問

どのようなシナリオでリードレプリカを使用すると便利ですか?
リードレプリカの使用は、データベースの容量が上限に達し、そのアクティビティを管理することが重要なシナリオで有益です。リードレプリカはメインデータベースの負荷を軽減します。これは、データベースにアクセスして CPU ピークを発生させるような複雑なバッチタスクの場合に特に有効です。
レプリカを使用することで、これらの操作はすべてレプリカに向けられ、メインデータベースに影響を与えることはありません。
さらに、リードレプリカの使用は、メインデータベースで発生するクラッシュを軽減するのにも有効です。これらの利点を組み合わせることで、場合によっては、ソリューションが対応できるスケーラビリティや並行処理のレベルを大幅に変えることができます。
リードレプリカを使用する際に考慮すべき点は何ですか?
アプリケーションでリードレプリカを使用する際には、重要な考慮事項がいくつかあります:
  • 情報が古い可能性: レプリカを元のデータベースと同期させるのに時間がかかるため、レプリカの情報の更新に若干の遅れが生じる場合があります。つまり、レプリカのデータが数秒古くなっている可能性があります。多くの場合、この遅延はシステムの重大な問題にはなりません。
  • レプリカを有効にする場所を慎重に選ぶ: アプリケーション全体とすべてのオブジェクトに対するリードレプリカの有効化には、リスクを伴う可能性があります。開発者は、どこでリードレプリカを有効にするかを注意深く選び、意識する必要があります。古い情報が一貫性を欠き、問題を引き起こす可能性がある場所を理解することが重要です。
  • 影響を受けやすい操作への影響: 複雑な計算、数式の実行、データの挿入など、アプリケーションの一部の操作は、元のデータベースで利用可能な最新の情報に依存する場合があります。最新でないレプリカからの読み出しは、データの一貫性の問題を引き起こし、システムの整合性に影響を与える可能性があります。
このメカニズムはどのオブジェクトで使われるのが一般的ですか?
高いスケーラビリティが要求されるようなオブジェクトでは、(数秒) 古いデータを表示しても問題ないと想定されます。単にデータを表示するだけのオブジェクトや、API を多用するオブジェクトは、レプリカを使用する対象になるでしょう。これは、多くのデータ更新や保存されたデータに基づく計算を伴うオブジェクトには当てはまりません。
リードレプリカは元のデータベースのコピーですか? 構造に変更があった場合、同期のメンテナンスは必要ですか?
はい。定義上、リード レプリカ データベースは元のデータベースとまったく同じコピーです。同期に関しては、データベース管理システムによって自動的に処理されます。元のデータベースの構造に変更があった場合、レプリカも更新してその変更を反映する必要があります。クラウドのような環境では、ワンクリックでレプリカが作成され、クラウド サービス プロバイダーが自動的に同期を処理するため、メンテナンスが容易になります。

適用範囲

ジェネレーター: .NET.NET FrameworkJava

使用可能バージョン

この機能は GeneXus 18 Upgrade 3 以降で利用できます。


サブページ
Created: 24/03/25 23:57 by Admin Last update: 24/12/18 16:11 by Admin
カテゴリ
Powered by GXwiki 3.0