Search:

Search all manuals
Search this manual
Manual
Couchbase Server 1.8 マニュアル
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
1.3 アーキテクチャと概念
Chapter Sections
Chapters

1.3.6. ディスクストレージ

パフォーマンスを得るために、Couchbase Serverはクライアントが利用する全ての情報をRAMに保存しようとします。低レイテンシをサポートするように、データの"ワーキングセット"はRAMに格納して直ちにアクセス可能な状態にすることが必要です。

Couchbase Serverは、ディスクへドキュメントを保存する機能を提供しています。これは、次の理由のためです:

RAMからディスクにデータを移動するプロセスはejectionと呼ばれ、Couchbaseクラスタ内のバケットに設定された閾値に応じて自動的に実行されます。

クライアントがリクエストしたドキュメントIDに対応する情報が存在するか否かが分かる必要がありますが、ディスクストレージを利用する場合、これが問題になります。Couchbase Serverはメタデータ構造を利用してこれを実現しています。メタデータはデータベースに保存された各ドキュメントの情報をRAMに保持します。これによりサーバが常に"ドキュメントIDが見つからない"ことを判定できます。また、RAMからでも(この場合即座に返却されます)、ディスクからでも(遅延の後、あるいはタイムアウトになったら)、ドキュメントのデータを返すことができます。

ディスクとの間で情報を移動するプロセスは非同期です。サーバがアクティブなリクエストを処理している間に、バックグラウンドでメモリからディスクへデータを退避します。退避要求は、バックグラウンドでディスクに書き込まれるように退避キューに書き込まれます。データベースへの書込みの負荷が高い場合は、サーバが十分なデータをメモリからディスクへ退避するまでの間、一時的なメモリ不足をクライアントへ通知する可能性があります。

同様に、サーバがメモリ上に存在しないアイテムをディスクからロードする場合、その処理はロードキューを処理するバックグラウンドプロセスによって実行され、ディスクから読み取ったデータはメモリへと返されます。クライアントは、サーバがデータをメモ​​リにロードし、情報を返すまで待たされます。

この非同期による特性とキューの利用によって、読取りと書込みを非常に高速に処理でき、Couchbase Serverを起動しているサーバのパフォーマンス劣化を引き起こす、典型的な負荷と性能のピークを抑えることができます。