4

私は Couchbase を使用する初心者で、Couchbase のワークフローについて質問したいと思います。

多くのアイテムを Couchbase (memcached ではない) データ バケットに入れています。これらのアイテムは、有効期限が切れるまでデータ バケットにあるというのは正しいですか? そして、それに到達すると、Couchbase がそれらを自動的に削除する方法はありません。アイテムの実際の削除は、クライアントがそのアイテムを要求した場合にのみ発生します。その場合、Couchbase はアイテムが期限切れであることを理解し、null を返し、メモリからアイテムを削除します。

これは、私のソリューションがキャッシュにないアイテムを理解する方法に大きく影響するため、私にとって重要です。すべてが思いどおりに機能する場合、アイテムがまだキャッシュに入れられていないか、有効期限が切れているか、メモリにあり、サーバーが再起動された場合にのみ、アイテムが失われます。また、Couchbase は、RAM の空き容量がなくなった場合でも、アイテムを常にキャッシュに入れます。HDD に入れるだけですよね?

サーバーが再起動された場合、RAM の不足により HDD に保存されたアイテムはどうなりますか? それらも消去されますか?

4

1 に答える 1

4

あなたが言ったように、データは有効期限に達するまで Couchbase にとどまります: - 有効期限が 0 に設定されている場合: アプリケーションが delete() 操作を呼び出すまでデータは保持されます - 有効期限が X に設定されている場合: データX(秒単位)に達するまでCouchbaseにとどまり、Couchbaseサーバーは自動的に値を無効にして削除します。

「そして、到達したときに、Couchbaseがそれらを自動的に削除する方法はありません」と言っている理由がわかりません.Couchbaseは、期限切れのアイテムにアクセスしようとするか、独自の内部プロセスを使用すると、期限切れのアイテムを自動的に削除します. http://www.couchbase.com/docs/couchbase-devguide-2.0/about-ttl-values.htmlをご覧ください

したがって、キーが存在しない場合 (作成されていないか、Couchbase から自動的に削除されるか、明示的な delete() を使用して削除される) の場合にのみ「ミス」(not_found) が発生すると言うのは正しいことです。

Couchbase はアイテムを最初に RAM に配置し、ディスクに書き込みます。Couchbase はメモリを管理し、最もよく使用されるアイテムをメモリに保持するのに最善を尽くします。そのため、RAM の容量よりも多くのデータを管理できることは明らかです。適切なバランスで作業して、優れたパフォーマンスを実現し、I/O を回避する必要があります。

サーバーが再起動されると、Couchbase はディスク上にすべてのデータを保持し、起動時にキーとメタデータをメモリに取り込みます。だからあなたは何も失うことはありません。

Couchbase アーキテクチャに関する次の興味深い記事/ドキュメントを読むことをお勧め します/2012/07/couchbase-architecture.html

さらに情報が必要な場合はお知らせください。

タグボート

于 2012-11-12T10:35:41.327 に答える