From f8a76b2f9bd2b6234b8d1c54dbccda043b610e3b Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Sat, 28 Oct 2023 07:50:33 -0400 Subject: [PATCH 01/25] Add files via upload Signed-off-by: Christopher Sharkey Signed-off-by: Christopher Sharkey --- .../change_refresh_1.png | Bin 0 -> 25376 bytes .../get_refresh_0.png | Bin 0 -> 25366 bytes .../manual_refresh_2.png | Bin 0 -> 25009 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/media/blog-images/2023-10-28-optimize-refresh-interval/change_refresh_1.png create mode 100644 assets/media/blog-images/2023-10-28-optimize-refresh-interval/get_refresh_0.png create mode 100644 assets/media/blog-images/2023-10-28-optimize-refresh-interval/manual_refresh_2.png diff --git a/assets/media/blog-images/2023-10-28-optimize-refresh-interval/change_refresh_1.png b/assets/media/blog-images/2023-10-28-optimize-refresh-interval/change_refresh_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff3a4795d976373f30903d509b1e53c3584cbc54 GIT binary patch literal 25376 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 Qae7S-sw9*5%;@9)1Ay8bEdT%j literal 0 HcmV?d00001 diff --git a/assets/media/blog-images/2023-10-28-optimize-refresh-interval/get_refresh_0.png b/assets/media/blog-images/2023-10-28-optimize-refresh-interval/get_refresh_0.png new file mode 100644 index 0000000000000000000000000000000000000000..39f0c498af63f45dbc016093a527d3638ff80458 GIT binary patch literal 25366 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 SCD;y~gMzFIyy$_^tN#M<$IvJM literal 0 HcmV?d00001 diff --git a/assets/media/blog-images/2023-10-28-optimize-refresh-interval/manual_refresh_2.png b/assets/media/blog-images/2023-10-28-optimize-refresh-interval/manual_refresh_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ec4d41982809f3e3c8050be8134e5034b1d595 GIT binary patch literal 25009 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 p`S-r(`7r-!;s-B=S_yulP?T{{i?Ky`umC literal 0 HcmV?d00001 From e65eb8ec7e491cb8d64dc70e90bec722825a1391 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Sat, 28 Oct 2023 07:51:42 -0400 Subject: [PATCH 02/25] Add files via upload Signed-off-by: Christopher Sharkey Signed-off-by: Christopher Sharkey --- _posts/optimize-refresh-interval.markdown | 65 +++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 _posts/optimize-refresh-interval.markdown diff --git a/_posts/optimize-refresh-interval.markdown b/_posts/optimize-refresh-interval.markdown new file mode 100644 index 0000000000..dfe8c4b39e --- /dev/null +++ b/_posts/optimize-refresh-interval.markdown @@ -0,0 +1,65 @@ +--- +layout: post +title: "Optimize OpenSearch Refresh Interval" +authors: + - ev2900 + - awssamit +date: 2023-10-28 +categories: + - technical-posts +meta_keywords: OpenSearch index, OpenSearch refresh, refresh interval optimization, optimize OpenSearch index performance +--- + +This blog post will discuss optimizing the refresh interval of an OpenSearch index. Optimizing the refresh interval will allow you to get the best performance from OpenSearch. + +## Introduction +In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch utilizes to store and retrieve documents. Once the documents are housed in these segments, they become searchable. + +The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indices that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. + +## Why Adjust the Default Index Refresh Interval +Refresh operations are resource intensive. The procedure of transferring data into new segments and rendering them searchable demands CPU, memory, and I/O resources. Consequently, fewer refresh operations can conserve these resources for other tasks. + +However, less frequent refreshes also imply a longer wait for newly indexed documents to become searchable. If your use case necessitates near real-time searchability of new data, infrequent refreshes may not be appropriate. On the other hand, if your operations can accommodate a delay between the indexing of data and its searchability, reducing the frequency of refreshes can liberate resources. This could potentially lead to increased indexing throughput and faster indexing speeds. + +## View the Refresh Interval +The frequency of refresh operations is dictated by the refresh interval set for an OpenSearch index. By default, the refresh interval for an index is set to 1 second. This implies that a refresh operation will be executed every second, provided the index is active. An index is considered active if it has received one or more search requests within the last 30 seconds. + +Assuming we are using an index named sample_data we can check what the refresh interval is for this index by running the following API command + +```GET /sample_data/_settings/index.refresh_interval``` + +In this example the refresh interval of the sample_data index is 1 second + +get_refresh{: .img-fluid } + +Note if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. + +## Change the Refresh Interval +You can adjust the refresh interval for an index by using ```_settings API```. In the example below, the refresh interval of the *sample_data* is set to 60 seconds. + +``` +PUT /sample_data/_settings +{ + "index" : { + "refresh_interval" : "60s" + } +} +``` + +change_refresh{: .img-fluid } + +It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario an index will need to be refreshed manually using the ```_settings``` API. + +The example API call below will manually trigger a refresh on the index sample_data + +```POST sample_data/_refresh``` + +manual_refresh{: .img-fluid } + +You have the option to disable automatic refreshes prior to initiating a known write-intensive workload, and then manually trigger a refresh upon its completion. For instance, if you're uploading new data to OpenSearch daily through a batch process, it might be beneficial to disable automatic refreshes just before the batch process begins. After the process concludes, you can manually initiate a refresh. + +## Conclusion and other Resources +Modifying the default refresh interval to strike a balance between the speed at which new documents become searchable and the CPU and I/O costs of the refresh operation can enhance OpenSearch performance. While a shorter refresh interval, which implies more frequent refreshes, allows documents to become searchable more rapidly post-indexing, it does so at the expense of increased resource utilization. + +If you prefer to learn about this topic in the format of a video instead of a blog post check out the YouTube video: [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository: [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval) \ No newline at end of file From 7c008603b62cd4505e4bd2ee79e753a30e51c6f2 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Sat, 28 Oct 2023 08:12:38 -0400 Subject: [PATCH 03/25] Delete _posts/optimize-refresh-interval.markdown Signed-off-by: Christopher Sharkey Signed-off-by: Christopher Sharkey --- _posts/optimize-refresh-interval.markdown | 65 ----------------------- 1 file changed, 65 deletions(-) delete mode 100644 _posts/optimize-refresh-interval.markdown diff --git a/_posts/optimize-refresh-interval.markdown b/_posts/optimize-refresh-interval.markdown deleted file mode 100644 index dfe8c4b39e..0000000000 --- a/_posts/optimize-refresh-interval.markdown +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: post -title: "Optimize OpenSearch Refresh Interval" -authors: - - ev2900 - - awssamit -date: 2023-10-28 -categories: - - technical-posts -meta_keywords: OpenSearch index, OpenSearch refresh, refresh interval optimization, optimize OpenSearch index performance ---- - -This blog post will discuss optimizing the refresh interval of an OpenSearch index. Optimizing the refresh interval will allow you to get the best performance from OpenSearch. - -## Introduction -In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch utilizes to store and retrieve documents. Once the documents are housed in these segments, they become searchable. - -The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indices that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. - -## Why Adjust the Default Index Refresh Interval -Refresh operations are resource intensive. The procedure of transferring data into new segments and rendering them searchable demands CPU, memory, and I/O resources. Consequently, fewer refresh operations can conserve these resources for other tasks. - -However, less frequent refreshes also imply a longer wait for newly indexed documents to become searchable. If your use case necessitates near real-time searchability of new data, infrequent refreshes may not be appropriate. On the other hand, if your operations can accommodate a delay between the indexing of data and its searchability, reducing the frequency of refreshes can liberate resources. This could potentially lead to increased indexing throughput and faster indexing speeds. - -## View the Refresh Interval -The frequency of refresh operations is dictated by the refresh interval set for an OpenSearch index. By default, the refresh interval for an index is set to 1 second. This implies that a refresh operation will be executed every second, provided the index is active. An index is considered active if it has received one or more search requests within the last 30 seconds. - -Assuming we are using an index named sample_data we can check what the refresh interval is for this index by running the following API command - -```GET /sample_data/_settings/index.refresh_interval``` - -In this example the refresh interval of the sample_data index is 1 second - -get_refresh{: .img-fluid } - -Note if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. - -## Change the Refresh Interval -You can adjust the refresh interval for an index by using ```_settings API```. In the example below, the refresh interval of the *sample_data* is set to 60 seconds. - -``` -PUT /sample_data/_settings -{ - "index" : { - "refresh_interval" : "60s" - } -} -``` - -change_refresh{: .img-fluid } - -It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario an index will need to be refreshed manually using the ```_settings``` API. - -The example API call below will manually trigger a refresh on the index sample_data - -```POST sample_data/_refresh``` - -manual_refresh{: .img-fluid } - -You have the option to disable automatic refreshes prior to initiating a known write-intensive workload, and then manually trigger a refresh upon its completion. For instance, if you're uploading new data to OpenSearch daily through a batch process, it might be beneficial to disable automatic refreshes just before the batch process begins. After the process concludes, you can manually initiate a refresh. - -## Conclusion and other Resources -Modifying the default refresh interval to strike a balance between the speed at which new documents become searchable and the CPU and I/O costs of the refresh operation can enhance OpenSearch performance. While a shorter refresh interval, which implies more frequent refreshes, allows documents to become searchable more rapidly post-indexing, it does so at the expense of increased resource utilization. - -If you prefer to learn about this topic in the format of a video instead of a blog post check out the YouTube video: [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository: [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval) \ No newline at end of file From 0c5ff0970d5b93251400f80aa52dc2ccd717d3a9 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Sat, 28 Oct 2023 08:12:56 -0400 Subject: [PATCH 04/25] Add files via upload Signed-off-by: Christopher Sharkey --- ...3-10-28-optimize-refresh-interval.markdown | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 _posts/2023-10-28-optimize-refresh-interval.markdown diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown new file mode 100644 index 0000000000..896e2ae175 --- /dev/null +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -0,0 +1,65 @@ +--- +layout: post +title: "Optimize OpenSearch Refresh Interval" +authors: + - ev2900 + - awssamit +date: 2023-10-28 +categories: + - technical-posts +meta_keywords: OpenSearch index, OpenSearch refresh, refresh interval optimization, optimize OpenSearch index performance +--- + +This blog post will discuss optimizing the refresh interval of an OpenSearch index. Optimizing the refresh interval will allow you to get the best performance from OpenSearch. + +## Introduction +In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch utilizes to store and retrieve documents. Once the documents are housed in these segments, they become searchable. + +The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indices that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. + +## Why adjust the default index refresh interval +Refresh operations are resource intensive. The procedure of transferring data into new segments and rendering them searchable demands CPU, memory, and I/O resources. Consequently, fewer refresh operations can conserve these resources for other tasks. + +However, less frequent refreshes also imply a longer wait for newly indexed documents to become searchable. If your use case necessitates near real-time searchability of new data, infrequent refreshes may not be appropriate. On the other hand, if your operations can accommodate a delay between the indexing of data and its searchability, reducing the frequency of refreshes can liberate resources. This could potentially lead to increased indexing throughput and faster indexing speeds. + +## View the refresh interval +The frequency of refresh operations is dictated by the refresh interval set for an OpenSearch index. By default, the refresh interval for an index is set to 1 second. This implies that a refresh operation will be executed every second, provided the index is active. An index is considered active if it has received one or more search requests within the last 30 seconds. + +Assuming we are using an index named sample_data we can check what the refresh interval is for this index by running the following API command + +```GET /sample_data/_settings/index.refresh_interval``` + +In this example the refresh interval of the sample_data index is 1 second + +get_refresh{: .img-fluid } + +Note if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. + +## Change the refresh interval +You can adjust the refresh interval for an index by using ```_settings API```. In the example below, the refresh interval of the *sample_data* is set to 60 seconds. + +``` +PUT /sample_data/_settings +{ + "index" : { + "refresh_interval" : "60s" + } +} +``` + +change_refresh{: .img-fluid } + +It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario an index will need to be refreshed manually using the ```_settings``` API. + +The example API call below will manually trigger a refresh on the index sample_data + +```POST sample_data/_refresh``` + +manual_refresh{: .img-fluid } + +You have the option to disable automatic refreshes prior to initiating a known write-intensive workload, and then manually trigger a refresh upon its completion. For instance, if you're uploading new data to OpenSearch daily through a batch process, it might be beneficial to disable automatic refreshes just before the batch process begins. After the process concludes, you can manually initiate a refresh. + +## Conclusion and other resources +Modifying the default refresh interval to strike a balance between the speed at which new documents become searchable and the CPU and I/O costs of the refresh operation can enhance OpenSearch performance. While a shorter refresh interval, which implies more frequent refreshes, allows documents to become searchable more rapidly post-indexing, it does so at the expense of increased resource utilization. + +If you prefer to learn about this topic in the format of a video instead of a blog post check out the YouTube video: [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository: [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval) \ No newline at end of file From 72b28f30c22e2050b8f759bec94a82923f0c83a1 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Sat, 28 Oct 2023 08:22:43 -0400 Subject: [PATCH 05/25] Update 2023-10-28-optimize-refresh-interval.markdown Signed-off-by: Christopher Sharkey Signed-off-by: Christopher Sharkey --- ...3-10-28-optimize-refresh-interval.markdown | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 896e2ae175..4ab5283c84 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -15,28 +15,28 @@ This blog post will discuss optimizing the refresh interval of an OpenSearch ind ## Introduction In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch utilizes to store and retrieve documents. Once the documents are housed in these segments, they become searchable. -The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indices that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. +The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indexes that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. ## Why adjust the default index refresh interval Refresh operations are resource intensive. The procedure of transferring data into new segments and rendering them searchable demands CPU, memory, and I/O resources. Consequently, fewer refresh operations can conserve these resources for other tasks. -However, less frequent refreshes also imply a longer wait for newly indexed documents to become searchable. If your use case necessitates near real-time searchability of new data, infrequent refreshes may not be appropriate. On the other hand, if your operations can accommodate a delay between the indexing of data and its searchability, reducing the frequency of refreshes can liberate resources. This could potentially lead to increased indexing throughput and faster indexing speeds. +However, less frequent refreshes also imply a longer wait for newly indexed documents to become searchable. If your use case necessitates near real-time searching of new data, infrequent refreshes may not be appropriate. On the other hand, if your operations can accommodate a delay between the indexing of data and its searching, reducing the frequency of refreshes can liberate resources. This could potentially lead to increased indexing throughput and faster indexing speeds. ## View the refresh interval The frequency of refresh operations is dictated by the refresh interval set for an OpenSearch index. By default, the refresh interval for an index is set to 1 second. This implies that a refresh operation will be executed every second, provided the index is active. An index is considered active if it has received one or more search requests within the last 30 seconds. -Assuming we are using an index named sample_data we can check what the refresh interval is for this index by running the following API command +Assuming we are using an index named ```sample_data``` we can check what the refresh interval is for this index by running the following API command ```GET /sample_data/_settings/index.refresh_interval``` -In this example the refresh interval of the sample_data index is 1 second +In this example the refresh interval of the ```sample_data``` index is 1 second -get_refresh{: .img-fluid } +get refresh{: .img-fluid } Note if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. ## Change the refresh interval -You can adjust the refresh interval for an index by using ```_settings API```. In the example below, the refresh interval of the *sample_data* is set to 60 seconds. +You can adjust the refresh interval for an index by using ```_settings API```. In the example below, the refresh interval of the ```sample_data``` is set to 60 seconds. ``` PUT /sample_data/_settings @@ -47,19 +47,19 @@ PUT /sample_data/_settings } ``` -change_refresh{: .img-fluid } +change refresh{: .img-fluid } It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario an index will need to be refreshed manually using the ```_settings``` API. -The example API call below will manually trigger a refresh on the index sample_data +The example API call below will manually trigger a refresh on the index ```sample_data``` ```POST sample_data/_refresh``` -manual_refresh{: .img-fluid } +manual refresh{: .img-fluid } You have the option to disable automatic refreshes prior to initiating a known write-intensive workload, and then manually trigger a refresh upon its completion. For instance, if you're uploading new data to OpenSearch daily through a batch process, it might be beneficial to disable automatic refreshes just before the batch process begins. After the process concludes, you can manually initiate a refresh. ## Conclusion and other resources Modifying the default refresh interval to strike a balance between the speed at which new documents become searchable and the CPU and I/O costs of the refresh operation can enhance OpenSearch performance. While a shorter refresh interval, which implies more frequent refreshes, allows documents to become searchable more rapidly post-indexing, it does so at the expense of increased resource utilization. -If you prefer to learn about this topic in the format of a video instead of a blog post check out the YouTube video: [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository: [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval) \ No newline at end of file +If you prefer to learn about this topic in the format of a video instead of a blog post check out the YouTube video: [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository: [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval) From a466a24f0f12410167ae1e08fc0894ab4292a203 Mon Sep 17 00:00:00 2001 From: awssamit <104651578+awssamit@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:24:54 -0400 Subject: [PATCH 06/25] uploading image for awssamit Signed-off-by: Samit Kumbhani Signed-off-by: awssamit <104651578+awssamit@users.noreply.github.com> --- assets/media/authors/awssamit.jpg | Bin 0 -> 19123 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/media/authors/awssamit.jpg diff --git a/assets/media/authors/awssamit.jpg b/assets/media/authors/awssamit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f618c84329ca08ffe05b0b9b34a8e3efceca890b GIT binary patch literal 19123 zcmbTdc~p{V95(Dsd$vrgrBlvWTDeYYFs13VsF|5rp{XI$;sybgDVhi~Et-}&YDmhc zlUXW=<^m`vRBk1rxu6LmE=jonBFPeq@6-Fe=l#z4{`%hc5zg@(9`wGS`@Vm_>vvt( zZ}H>esL4+!y?wn+e)!=BlRtqUlSQG)F_RyE_~HBOe_czKE%|;eU%GV3vK7l$toZ(3 zxyp3a%9X2Eu2`{p?dsL0Yk+ITs&(tvu37i}_wRq?``5pJ3wW(rxnkw_JO0nE#n&bq zR+_vvd9&mPE0Z5L{IF!h4~s1(mL?`YECWXSeZc?g`r*eVOP4JNhP2ugxPkT)F#IJ; zegp=)Z0S#5LFRie;vDx|WtY<5C9j$(|$A%qzbxsMH$mx9{`%!DPw*Gp+wUv;WV$HURVb5msSV&#K?7+U0U~Zp-DHJ*&6wb{(@;e4pC?oZ0`s ziQW0Xn%V!J*#A2(fytUBKLCrjWP^#PiQzZ@t&1i{kVmK07gBv29xsb_IaGIs$?4ER za94%(NG&@^q^1NnvrQF_&x=Lj(<8gXc>9aRh-G)AW)CVVSWx1mmV^>b#4~Jdsr-iGbzhESjW;1}^bw{^rn} z5G4hxI77AYXW*e+?{wGTAfG$}&L=VwNmXO?{7_w};`jas{&u&I*&5ip;%E+m5Pq1h zO22lVp)T_WA>lV^(LvSw?ZQ@w!8{h+AYdg3P^lI%XWG$+>!QmP zZQ1fXjB|}NQcEW%%CCU~}HYE!R zE#A}6KS6zC@o}*cuD*x1{|Q|*v8}0W6E(1*nMRphMQ$rXTM0w%F>4Np^g*x@pp5cjfX<=Oe)$6m$%J(`B^-Qwq>7qOod$UxG|but<~A_aRpHI4NF+u}2My;!&`gRNzShmRPjC0)K;8AuY$#f6-8%S9%7PG4(h4y~jyJ{9 zmUq^Oo`Q-uhnXOxEFDAlb z9IKr~V<8ZnN<>wYCeh3~ggK$<>y0778x^`*O0e-k)_O>(^DZC>lERoYszt(cUv65x zt8PXnUf=z3{uxd1s8d*U4K`;f2dl}{jMmD`m)(;*82p+(tQS z=D+d16Ibah7YH#@k+EyKDVgfcTrY^aGj9>+ll$w<$1-tCX9rhJx>-ZPV+{FSk9FSJ zU!WI5F8a8-73W@X?JkVa#!Iy%ya=W-4a(Z{lvAD%@cwa^1%g&nlXJ5*B5JGrpoqTP zcU~62nP(_aLFF_Gg6BAH8deZ=Vke)7dTT{U3;za@^Hw?PI0qQtw zjT7)VQ5{tcB;d@f6S44u=ep%@Dkl8gxXtUPAZM57{tl`Xv(HVUNwFxwds>(w|FctN zqucri_S7gEyXcI#nn$P-Fz|6bgOj=nv7?-*6CW^t5hr927{y&H}*he5Ryv6vy7^dEUek{m_t}~ zRq01T`>pgjUwb(9##WyA5Ppdr%BU7=5pLf7_6uuWr19s%40-sTi2ZDJ=1s#;U@%-y znU^k_jFX>RCHe`XQvS&4dhAuWX`}q#R;7!Fl*dRyLA3N5sg{uYZ!UYgmfX z!D3lRQFZX7(Q>RTAVqey-U;z?>PCte%<;qq#&M3FqnId>H_#1Y6}-fAL-qJxB&XKh z-_>DrrCP!-z5^C?u@N<7sWyaRm~Lb{^(|0O4#xyehql&rvk_$*LT%855Xg3VG3q7@ zKLl4Fel{_0&KZ)7TRJ05&l_E1H!|OmS$RdVD43ee&U`U4RgoE+6q$<&$PVX2u4?l_ z7!)j};dYf8K70s~X!9}r9!SZ4zpS@I$N-7+*syVk)(mltY(6>GD^Cv(*N()!trG0k z?qJl~xj1!lX#^aM#gG{!|C#2xShr`Rkk@2h%_q55PTiczAT7pG0wZcT4>e@}J$|VH zU~j%-wdJ?t&m4xb&S@A(ExmG}BCatL+E;3hRp%U|G#+x6T7PcNQkl@@qRFPhXcBwqy` zV#n!heiZ3_x}f>Jh3aM0aE&vUkyKNoXK_XrO+HX8yyhLQh+V;3H@qg-FwtT)J18

J8zPiP-!i(7Wy6eU_V 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 literal 0 HcmV?d00001 From 9efd79727f08d57179d1a919af2c2be664f7b673 Mon Sep 17 00:00:00 2001 From: awssamit <104651578+awssamit@users.noreply.github.com> Date: Mon, 30 Oct 2023 17:27:00 -0400 Subject: [PATCH 07/25] Create awssamit.markdown Signed-off-by: Samit Kumbhani Signed-off-by: awssamit <104651578+awssamit@users.noreply.github.com> --- _authors/awssamit.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 _authors/awssamit.markdown diff --git a/_authors/awssamit.markdown b/_authors/awssamit.markdown new file mode 100644 index 0000000000..d86c50b4b8 --- /dev/null +++ b/_authors/awssamit.markdown @@ -0,0 +1,9 @@ +--- +name: Samit Kumbhani +short_name: awssamit +photo: '/assets/media/authors/awssamit.jpg' +github: awssamit +linkedin: https://www.linkedin.com/in/samitkumbhani/ +--- + +Samit is an AWS Sr. Solutions Architect in the New York City area. He has 18 years of experience building applications and focuses on Analytics, Business Intelligence, and Databases. He enjoys working with customers to understand and solve their challenges by creating innovative solutions using AWS services. Outside of work Samit loves playing cricket, traveling and biking. From 1778a92da55a8309d8cca2cb847a25126b9c2c20 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Tue, 31 Oct 2023 08:02:21 -0400 Subject: [PATCH 08/25] Update 2023-10-28-optimize-refresh-interval.markdown Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 4ab5283c84..50a6d13fad 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -7,7 +7,8 @@ authors: date: 2023-10-28 categories: - technical-posts -meta_keywords: OpenSearch index, OpenSearch refresh, refresh interval optimization, optimize OpenSearch index performance +meta_description: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at indexed information is available for search with CPU and I/O costs +meta_keywords: OpenSearch refresh interval, refresh interval optimization, optimie OpenSearch index performance --- This blog post will discuss optimizing the refresh interval of an OpenSearch index. Optimizing the refresh interval will allow you to get the best performance from OpenSearch. From d09fa7e063a228d451811c0fbe91243f1bbc14ca Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:15:46 -0400 Subject: [PATCH 09/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 50a6d13fad..47ce7998d8 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -4,7 +4,8 @@ title: "Optimize OpenSearch Refresh Interval" authors: - ev2900 - awssamit -date: 2023-10-28 +date: 2023-11-01 + categories: - technical-posts meta_description: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at indexed information is available for search with CPU and I/O costs From f3e883aea8d72906e7b1db15fd629d4a86ac1272 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:00 -0400 Subject: [PATCH 10/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 47ce7998d8..1b07cf2060 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -8,7 +8,8 @@ date: 2023-11-01 categories: - technical-posts -meta_description: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at indexed information is available for search with CPU and I/O costs +meta_description: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at which indexed information is available for search with CPU and I/O costs + meta_keywords: OpenSearch refresh interval, refresh interval optimization, optimie OpenSearch index performance --- From 000394c3d3b891d45094702bb3edae93b91f1c45 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:07 -0400 Subject: [PATCH 11/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 1b07cf2060..9b84e8a65a 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -10,7 +10,8 @@ categories: - technical-posts meta_description: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at which indexed information is available for search with CPU and I/O costs -meta_keywords: OpenSearch refresh interval, refresh interval optimization, optimie OpenSearch index performance +meta_keywords: OpenSearch refresh interval, refresh interval optimization, optimize OpenSearch index performance + --- This blog post will discuss optimizing the refresh interval of an OpenSearch index. Optimizing the refresh interval will allow you to get the best performance from OpenSearch. From 3058c214907f8c47c901774c19acc231caea71e0 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:15 -0400 Subject: [PATCH 12/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 9b84e8a65a..a1a27d2211 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -14,7 +14,8 @@ meta_keywords: OpenSearch refresh interval, refresh interval optimization, optim --- -This blog post will discuss optimizing the refresh interval of an OpenSearch index. Optimizing the refresh interval will allow you to get the best performance from OpenSearch. +This blog post discusses optimizing the refresh interval of an OpenSearch index and how the optimization enhances OpenSearch performance. + ## Introduction In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch utilizes to store and retrieve documents. Once the documents are housed in these segments, they become searchable. From 23e544b6bc85f70f23264e42df10f33384521a50 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:22 -0400 Subject: [PATCH 13/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index a1a27d2211..67e8a57f31 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -18,7 +18,8 @@ This blog post discusses optimizing the refresh interval of an OpenSearch index ## Introduction -In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch utilizes to store and retrieve documents. Once the documents are housed in these segments, they become searchable. +In OpenSearch, the process of indexing documents initially places them into a memory buffer. At this stage, the documents are not yet searchable. To make these documents searchable, a refresh operation is required. This operation transfers the documents from the memory buffer to new segments. Segments are specific data structures that OpenSearch uses to store and retrieve documents. Once the documents are housed in these segments, they become searchable. + The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indexes that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. From f70428ba66f0ca98ab5b2cd78128a01ef167d6c2 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:28 -0400 Subject: [PATCH 14/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 67e8a57f31..f63d0103ca 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -42,7 +42,8 @@ In this example the refresh interval of the ```sample_data``` index is 1 second Note if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. ## Change the refresh interval -You can adjust the refresh interval for an index by using ```_settings API```. In the example below, the refresh interval of the ```sample_data``` is set to 60 seconds. +You can adjust the refresh interval for an index by using ```_settings API```. In the following example, the refresh interval of the ```sample_data``` is set to 60 seconds: + ``` PUT /sample_data/_settings From d13357e2babd03c5c087b626ec6b96474b00517e Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:34 -0400 Subject: [PATCH 15/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index f63d0103ca..b8ee5bda42 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -56,7 +56,8 @@ PUT /sample_data/_settings change refresh{: .img-fluid } -It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario an index will need to be refreshed manually using the ```_settings``` API. +It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario, an index will need to be refreshed manually using the ```_settings``` API. + The example API call below will manually trigger a refresh on the index ```sample_data``` From 66c29b6f0ac40caef4e70f713bc693e69d582271 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:40 -0400 Subject: [PATCH 16/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index b8ee5bda42..70e53973db 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -59,7 +59,8 @@ PUT /sample_data/_settings It is also possible to disable automatic refreshes. Setting ```"refresh_interval" : "-1"``` will disable any automatic refreshing. In this scenario, an index will need to be refreshed manually using the ```_settings``` API. -The example API call below will manually trigger a refresh on the index ```sample_data``` +The following example API call manually triggers a refresh on the index ```sample_data```: + ```POST sample_data/_refresh``` From 17cd19e286c83522a6e0bd20c45aea25d241c3ef Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:47 -0400 Subject: [PATCH 17/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 70e53973db..ccac49f32f 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -66,7 +66,8 @@ The following example API call manually triggers a refresh on the index ```sampl manual refresh{: .img-fluid } -You have the option to disable automatic refreshes prior to initiating a known write-intensive workload, and then manually trigger a refresh upon its completion. For instance, if you're uploading new data to OpenSearch daily through a batch process, it might be beneficial to disable automatic refreshes just before the batch process begins. After the process concludes, you can manually initiate a refresh. +You have the option to disable automatic refreshes prior to initiating a known write-intensive workload and then manually trigger a refresh upon its completion. For instance, if you're uploading new data to OpenSearch daily through a batch process, it might be beneficial to disable automatic refreshes just before the batch process begins. After the process concludes, you can manually initiate a refresh. + ## Conclusion and other resources Modifying the default refresh interval to strike a balance between the speed at which new documents become searchable and the CPU and I/O costs of the refresh operation can enhance OpenSearch performance. While a shorter refresh interval, which implies more frequent refreshes, allows documents to become searchable more rapidly post-indexing, it does so at the expense of increased resource utilization. From 29b4f77182f961a535d47e4a6713006065df85fb Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Wed, 1 Nov 2023 11:16:54 -0400 Subject: [PATCH 18/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index ccac49f32f..c0ef068757 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -72,4 +72,5 @@ You have the option to disable automatic refreshes prior to initiating a known w ## Conclusion and other resources Modifying the default refresh interval to strike a balance between the speed at which new documents become searchable and the CPU and I/O costs of the refresh operation can enhance OpenSearch performance. While a shorter refresh interval, which implies more frequent refreshes, allows documents to become searchable more rapidly post-indexing, it does so at the expense of increased resource utilization. -If you prefer to learn about this topic in the format of a video instead of a blog post check out the YouTube video: [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository: [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval) +If you prefer to learn about this topic in the format of a video instead of a blog post, check out the YouTube video [OpenSearch - How to change the refresh interval of an index](https://www.youtube.com/watch?v=8uyemEfgcY8). This blog post is based on the GitHub repository [OpenSearch_Refresh_Interval](https://github.com/ev2900/OpenSearch_Refresh_Interval). + From 98ea8147a0bc65465f187ac83c9a266fe7fceb7f Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Thu, 9 Nov 2023 15:23:47 -0500 Subject: [PATCH 19/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index c0ef068757..8d0abcc139 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -24,7 +24,8 @@ In OpenSearch, the process of indexing documents initially places them into a me The refresh operation, which enables documents to become searchable by moving them into segments, is managed automatically by OpenSearch. By default, OpenSearch refreshes indexes that have received one or more search requests in the past 30 seconds, every 1 second. This means that documents written to an active index should typically become searchable within 1 second of being written to OpenSearch. While the default refresh frequency for an index is set to 1 second, this setting can be adjusted on a per-index basis. ## Why adjust the default index refresh interval -Refresh operations are resource intensive. The procedure of transferring data into new segments and rendering them searchable demands CPU, memory, and I/O resources. Consequently, fewer refresh operations can conserve these resources for other tasks. +Refresh operations are resource intensive. The procedure of transferring data into new segments and rendering them searchable demands CPU, memory, and input/output (I/O) resources. Consequently, fewer refresh operations can conserve these resources for other tasks. + However, less frequent refreshes also imply a longer wait for newly indexed documents to become searchable. If your use case necessitates near real-time searching of new data, infrequent refreshes may not be appropriate. On the other hand, if your operations can accommodate a delay between the indexing of data and its searching, reducing the frequency of refreshes can liberate resources. This could potentially lead to increased indexing throughput and faster indexing speeds. From d5d0e18f9f72dc584755f526c34133da8a79caec Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Thu, 9 Nov 2023 15:23:53 -0500 Subject: [PATCH 20/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 8d0abcc139..5f537a8561 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -32,7 +32,8 @@ However, less frequent refreshes also imply a longer wait for newly indexed docu ## View the refresh interval The frequency of refresh operations is dictated by the refresh interval set for an OpenSearch index. By default, the refresh interval for an index is set to 1 second. This implies that a refresh operation will be executed every second, provided the index is active. An index is considered active if it has received one or more search requests within the last 30 seconds. -Assuming we are using an index named ```sample_data``` we can check what the refresh interval is for this index by running the following API command +Assuming we are using an index named ```sample_data``` we can check what the refresh interval is for this index by running the following API command: + ```GET /sample_data/_settings/index.refresh_interval``` From 232b0f61b3b5050cd9b820d7e6debb37a601cc50 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Thu, 9 Nov 2023 15:24:00 -0500 Subject: [PATCH 21/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 5f537a8561..55fc412751 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -37,7 +37,8 @@ Assuming we are using an index named ```sample_data``` we can check what the ref ```GET /sample_data/_settings/index.refresh_interval``` -In this example the refresh interval of the ```sample_data``` index is 1 second +In this example the refresh interval of the ```sample_data``` index is 1 second. + get refresh{: .img-fluid } From 3e08fa2bc1fdf1ad63537187b7e38f6c14c83cb6 Mon Sep 17 00:00:00 2001 From: Christopher Sharkey Date: Thu, 9 Nov 2023 15:24:08 -0500 Subject: [PATCH 22/25] Update _posts/2023-10-28-optimize-refresh-interval.markdown Co-authored-by: Melissa Vagi Signed-off-by: Christopher Sharkey --- _posts/2023-10-28-optimize-refresh-interval.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index 55fc412751..eb4b7afcf1 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -42,7 +42,8 @@ In this example the refresh interval of the ```sample_data``` index is 1 second. get refresh{: .img-fluid } -Note if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. +Note that if a refresh interval is not manually set, the API call may not return any results. The default refresh interval is 1 second, but this property is not automatically added to the ```_settings``` API response unless it is manually set or adjusted. + ## Change the refresh interval You can adjust the refresh interval for an index by using ```_settings API```. In the following example, the refresh interval of the ```sample_data``` is set to 60 seconds: From 3fe533584005e0376322f65458b9c41790a3f7cb Mon Sep 17 00:00:00 2001 From: Nate Boot Date: Mon, 13 Nov 2023 09:46:12 -0800 Subject: [PATCH 23/25] For some reason the lack of an "excerpt" frontmatter has caused the entire contents of teh blog to be used as the excerpt, spilling it all over the front page from where we feature it. Just adding a quick excerpt to get this thing out. Signed-off-by: Nate Boot --- _posts/2023-10-28-optimize-refresh-interval.markdown | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index eb4b7afcf1..df7eebdce1 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -5,15 +5,12 @@ authors: - ev2900 - awssamit date: 2023-11-01 - categories: - technical-posts +excerpt: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at which indexed information is available for search with CPU and I/O costs meta_description: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at which indexed information is available for search with CPU and I/O costs - meta_keywords: OpenSearch refresh interval, refresh interval optimization, optimize OpenSearch index performance - --- - This blog post discusses optimizing the refresh interval of an OpenSearch index and how the optimization enhances OpenSearch performance. From 4672f85624c17c128ad65f7cd597d53a2fb65adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romain=20Tarti=C3=A8re?= Date: Mon, 13 Nov 2023 08:11:38 -1000 Subject: [PATCH 24/25] Fix date of next community meeting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In my time zone, the website says "Date: 14/11/2023 Time: 12:00:00", on meetup, I see "Tuesday, November 14, 2023 at 1:00 PM to Tuesday, November 14, 2023 at 2:00 PM UTC−10". Looks-like the TZ offset is not the good one. Signed-off-by: Romain Tartière --- _events/2023-1114-community-meeting.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_events/2023-1114-community-meeting.markdown b/_events/2023-1114-community-meeting.markdown index b8d08b2495..850376df7c 100644 --- a/_events/2023-1114-community-meeting.markdown +++ b/_events/2023-1114-community-meeting.markdown @@ -1,6 +1,6 @@ --- -eventdate: 2023-11-14 15:00:00 -0700 +eventdate: 2023-11-14 15:00:00 -0800 title: OpenSearch Community Meeting - 2023-11-14 online: true From 79d330a4a26a222772806609dc155c6d247cfca5 Mon Sep 17 00:00:00 2001 From: Nate Boot Date: Mon, 13 Nov 2023 11:05:48 -0800 Subject: [PATCH 25/25] Changing date to today's date so as to feature it. Signed-off-by: Nate Boot --- _posts/2023-10-28-optimize-refresh-interval.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-10-28-optimize-refresh-interval.markdown b/_posts/2023-10-28-optimize-refresh-interval.markdown index df7eebdce1..36f372b12f 100644 --- a/_posts/2023-10-28-optimize-refresh-interval.markdown +++ b/_posts/2023-10-28-optimize-refresh-interval.markdown @@ -4,7 +4,7 @@ title: "Optimize OpenSearch Refresh Interval" authors: - ev2900 - awssamit -date: 2023-11-01 +date: 2023-11-13 categories: - technical-posts excerpt: Learn how to optimize the refresh interval of an OpenSearch index and strike a balance between the speed at which indexed information is available for search with CPU and I/O costs