Skip to content

[Blog] Improve OpenSearch cluster performance by separating search and indexing workloads #3772

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

Naarcha-AWS
Copy link
Contributor

Description

Check List

  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Naarcha-AWS Editorial review complete. Please see my comment and changes and tag me for approval when addressed. Thanks!


| | |Cluster 2(5P, 3R) |Cluster 3 (5P, 1R, 1S) |Difference |
|--- |--- |--- |--- |--- |
|Index Throughput |Median |58520.82413 |59818.80119 |2.16985 |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
|Index Throughput |Median |58520.82413 |59818.80119 |2.16985 |
|Index throughput |Median |58520.82413 |59818.80119 |2.16985 |

| |Maximum |59169.29297 |60240.02344 |1.77744 |
| | | | | |
| | | | | |
|Query Latency |p50 |6842.04297 |5358.19263 |-27.69311 |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
|Query Latency |p50 |6842.04297 |5358.19263 |-27.69311 |
|Query latency |p50 |6842.04297 |5358.19263 |-27.69311 |


### Result summary

From these comparisons, we can see that for simultaneous indexing and search workloads, Cluster 3 is slightly better (~2% improvement) and query latency in Cluster 3 is much lower (~34% improvement). This is achieved with ~8% less cost per hour compared to Cluster 1.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
From these comparisons, we can see that for simultaneous indexing and search workloads, Cluster 3 is slightly better (~2% improvement) and query latency in Cluster 3 is much lower (~34% improvement). This is achieved with ~8% less cost per hour compared to Cluster 1.
From these comparisons, we can see that Cluster 3 is slightly better (~2% improvement) for simultaneous indexing and search workloads and has much lower query latency (~34% improvement). This is achieved with ~8% lower cost per hour compared to Cluster 1.


## Conclusion

Separating indexing and search workloads in OpenSearch gives you greater control to scale, tune, and optimize your cluster. Whether you're prioritizing throughput, reducing latency, or managing costs, this approach helps meet the needs of modern applications.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Separating indexing and search workloads in OpenSearch gives you greater control to scale, tune, and optimize your cluster. Whether you're prioritizing throughput, reducing latency, or managing costs, this approach helps meet the needs of modern applications.
Separating indexing and search workloads in OpenSearch gives you greater control over scaling, tuning, and optimizing your cluster. Whether you want to prioritize throughput, reduce latency, or manage costs, this approach helps meet the needs of modern applications.


## Future work

Currently, coordinator nodes handle both search and indexing requests. For full separation, consider routing indexing and search traffic to distinct coordinator node groups.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Currently, coordinator nodes handle both search and indexing requests. For full separation, consider routing indexing and search traffic to distinct coordinator node groups.
Coordinator nodes currently handle both search and indexing requests. For full separation, consider routing indexing and search traffic to distinct coordinator node groups.

natebower
natebower previously approved these changes May 9, 2025
Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Naarcha-AWS LGTM!

@pajuric Please update the meta and this will be ready to publish.

@pajuric
Copy link

pajuric commented May 20, 2025

@Naarcha-AWS - Is there an open blog issue for this? If not, please open one now so you can be added to the publishing schedule.

@pajuric
Copy link

pajuric commented May 23, 2025

@Naarcha-AWS - for following the blog process, you guys just jumped to the front of the line. I'll add the meta, and we'll plan to publish this next Tuesday, May 27.

authors:
- naarcha
- pudyodu
date: 2025-05-09
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update to: 2025-05-27

categories:
- technical-posts
meta_keywords: OpenSearch, shard roles, indexing, search separation, performance tuning
meta_description: Learn how separating indexing and search workloads in OpenSearch can improve performance, scalability, and cost efficiency using dedicated roles and node types.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update meta with the following:

meta_keywords: OpenSearch cluster performance, index shards, search workloads, node roles, indexing and search separation, OpenSearch benchmark, performance tuning, optimizing your cluster

meta_description: Optimize OpenSearch cluster performance by separating indexing and search operations. Discover write/search replicas and dedicated search nodes, with benchmark data showing 34% lower query latency through workload separation.

@Naarcha-AWS
Copy link
Contributor Author

@pajuric: Adjusted.

@vinaykpud
Copy link

@pajuric we have open blog issue #3764


**Comparing Cluster 1 and Cluster 3**

| | |Cluster 1 (5P, 3R) |Cluster 3 (5P, 1R, 1S) |Difference |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Difference is in Percentage in this table and next table. Do we need to annotate it with %?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily, I think its implicit by the numbers. If we do make an update to the blog, I can add this to the list.

@pajuric
Copy link

pajuric commented Jun 20, 2025

Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@natebower natebower merged commit b4b39d5 into opensearch-project:main Jun 20, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants