私はクライアントサーバーCorbaアプリケーションを持っています。いくつかの呼び出しでは、返されるデータが膨大であるため、ServerはイテレータオブジェクトをClientに提供します。現在の実装 - サーバは(MySQL)データベースからすべての関連データを取り出し、クライアントがすべてのデータの取得を完了するまでメモリに保存します(getNext_n()コール)。すでに、反復子の総数とその存続期間(エビクタパターン)には制限があります。ほとんどのオープンイテレータが膨大なデータを持っていると、今やServerはOut of Memoryになることがあります。Corba IteratorのためのMySQLからの一括データ取得
- このようなシナリオを処理するにはどうすればよいでしょうか?
- ローカルでキャッシュするのではなく、チャンク(制限を使用)でDBからデータをフェッチすることができます。しかし、他のスレッドがテーブルの行を挿入/削除すると、選択によって不整合なデータが返されます。一時テーブルを使用すると、追加のディスク使用量を意味します。 MySQLは、このようなシナリオを処理するための他のメカニズムを提供していますか?