私はそれを再び記録しませんでした、私は散発的な記憶でしか記録できません
- ナレッジ グラフについて知っていますか? システムのどの部分で使用されているか知っていますか?
- Tomcat のメモリ設定の大きさ。32 ビット システムに制限はありますか? 復習:あとで考えると、32ビットシステムのアドレス空間が限られていて、最大メモリが4Gということなのかもしれません
- gprc で使用するシリアル化方法は? A:プロトブフ。Q: ネットワーク通信プロトコルは HTTP または TCP ですか。レビュー: HTTP2
- Kafka で重複メッセージを処理する方法
- ElasticSearch クラスターの構築。インデックスは定期的に更新されますか、それともリアルタイムで更新されますか? エラスティックの公式ウェブサイト3を含むいくつかのドキュメント1 2
を参照します。
Elasticsearch とディスクの間にあるのは、ファイルシステム キャッシュです。メモリ内インデックス バッファ (図 1) 内のドキュメントは、新しいセグメント (図 2) に書き込まれます。新しいセグメントは最初にファイルシステム キャッシュに書き込まれ (これは安価です)、後でディスクにフラッシュされます (これは高価です)。ただし、ファイルがキャッシュに入った後は、他のファイルと同じように開いて読み取ることができます。
Elasticsearch では、新しいセグメントを書き込んで開くこのプロセスは更新と呼ばれます...次の方法で更新を制御できます:...更新間隔を待つ...
デフォルトでは、Elasticsearch は毎秒定期的にインデックスを更新します。これが、Elasticsearch がほぼリアルタイムの検索を備えていると言われる理由です
私は自分自身の簡単な要約を述べました (これは、2021 年の Leyan とのインタビューで es がほぼリアルタイムである理由の質問にも答えることができます): ES がデータを書き込むとき、最初にデータをメモリに書き込み、次にファイルシステム キャッシュに書き込みます
。 、そして最後にハードディスクに書き込みます。2 番目のステップ (ファイルシステムのキャッシュを書き込んで新しいセグメントを形成する。このステップはrefreshとも呼ばれます) の後、新しいデータを検索できます。更新はデフォルトで 1 秒に 1 回実行されます (実際、公式 Web サイトの原文には、過去 30 秒間にクエリ要求を受信したインデックスがあるという条件があります)。