Penyimpanan Tembolok dan Konkurensi
Pahami mekanisme penyimpanan tembolok Elasticsearch dan cara mengelola konkurensi untuk menangani volume permintaan tinggi serta meningkatkan waktu tanggapan kueri.
Penyimpanan Tembolok dan Konkurensi adalah pelajaran Elasticsearch & Full Text Search Systems gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Elasticsearch & Full Text Search Systems, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Elasticsearch & Full Text Search Systems mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Boost Performance with Caching
Welcome to Caching and Concurrency! In this lesson, we'll explore how Elasticsearch uses caching to speed up searches and how it manages many requests at once.
Caching is like remembering past answers. If you ask the same question repeatedly, it's faster to recall the answer than to figure it out every time.
Why Caching is Crucial
For search engines, performance is key. Without caching, every query, even identical ones, would require Elasticsearch to re-read data from disk and re-process it.
This leads to higher CPU usage, increased I/O operations, and slower response times. Caching helps reduce this overhead significantly.
The Node Query Cache
Elasticsearch uses several caches. One important one is the Node Query Cache. This cache stores the results of frequently used filter queries.
It operates at the node level and is great for speeding up queries that use common filters, like "status": "active", without re-evaluating them.
GET /my_index/_search
{
"query": {
"bool": {
"filter": {
"term": {
"category.keyword": "electronics"
}
}
}
}
}How Node Query Cache Works
The Node Query Cache stores the *bitsets* representing which documents match a filter. When a filter is used again, Elasticsearch can quickly retrieve this bitset instead of scanning all documents.
It's optimized for queries that are small, frequently run, and don't involve complex aggregations or full-text analysis.
The Request Cache
Another vital cache is the Request Cache. This cache stores the *entire JSON response* of a search request for a specific shard.
It's useful for queries that are identical, including their aggregations, and are run often. It offers a significant speed boost by returning the pre-computed response.
GET /my_index/_search?request_cache=true
{
"size": 0,
"aggs": {
"categories": {
"terms": {
"field": "category.keyword"
}
}
}
}Doc Values: Modern Field Data
Historically, Elasticsearch used a 'Field Data Cache' for sorting and aggregations on text fields. This could consume a lot of memory.
Today, Elasticsearch uses Doc Values by default for numeric, boolean, date, IP, and keyword fields. Doc Values are stored on disk in a column-oriented fashion, making them very efficient for aggregations and sorting without heavy memory use.
PUT /products
{
"mappings": {
"properties": {
"price": {
"type": "float"
},
"status": {
"type": "keyword"
}
}
}
}Cache Invalidation
Caches are great, but they must be up-to-date. When you index, update, or delete a document in an index, Elasticsearch automatically invalidates (clears) the relevant cached entries for that shard.
This ensures that new searches always reflect the latest data, preventing stale results from being served.
Concurrency: Handling Many Requests
Beyond caching, Elasticsearch needs to handle many users querying and indexing data simultaneously. This is called concurrency.
Elasticsearch achieves concurrency by using multiple threads and thread pools, allowing it to process several operations at the same time without waiting for each one to finish sequentially.
Elasticsearch Thread Pools
Elasticsearch organizes tasks using different thread pools. Each pool handles a specific type of operation:
- Search pool: For executing search queries.
- Index pool: For indexing and updating documents.
- Bulk pool: For handling bulk indexing requests.
These pools prevent one slow operation from blocking others.
GET /_cat/thread_pool?vQueues and Rejection
When a thread pool is busy, incoming requests are placed into a queue. If the queue becomes full, Elasticsearch will start rejecting new requests for that operation type.
Rejected requests result in an error (e.g., HTTP 429 Too Many Requests). This mechanism is crucial for preventing the cluster from becoming overloaded and unstable.
Cache & Concurrency Check
Test your understanding of caching and concurrency in Elasticsearch.
Recap: Caching & Concurrency
In this lesson, we explored how Elasticsearch optimizes performance through caching and concurrency:
- Caching: The Node Query Cache and Request Cache store query results to avoid re-computation.
- Doc Values: An efficient, disk-based structure for aggregations and sorting.
- Concurrency: Elasticsearch uses thread pools to manage many simultaneous requests for search, indexing, and bulk operations.
- Queues: Requests are queued when busy, with rejection as a safeguard against overload.
Understanding these mechanisms helps you build faster and more resilient search applications!
Belajar Elasticsearch & Full Text Search Systems dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Penyimpanan Tembolok dan Konkurensi” gratis?
Ya — teks lengkap “Penyimpanan Tembolok dan Konkurensi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Elasticsearch & Full Text Search Systems, upgrade ke CoddyKit PRO. Kursus Elasticsearch & Full Text Search Systems mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Penyimpanan Tembolok dan Konkurensi”?
Pahami mekanisme penyimpanan tembolok Elasticsearch dan cara mengelola konkurensi untuk menangani volume permintaan tinggi serta meningkatkan waktu tanggapan kueri. Kamu berlatih Elasticsearch & Full Text Search Systems dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Elasticsearch & Full Text Search Systems?
Tidak diperlukan pengalaman sebelumnya. Elasticsearch & Full Text Search Systems di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Penyimpanan Tembolok dan Konkurensi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Elasticsearch & Full Text Search Systems ini?
Ya. Setiap pelajaran Elasticsearch & Full Text Search Systems menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Strategi Optimasi Kueri
- Praktik Terbaik Kinerja Pengindeksan
- Penyimpanan Tembolok dan Konkurensi
- Pembuatan Profil dan Log Kueri Lambat