And another note on shards - indexing a shard is a single writer process.
If your drive tolerates parallel writes well (=SSD) having multiple primary shards per node helps scale indexing.
If your drive tolerates parallel writes well (=SSD) having multiple primary shards per node helps scale indexing.
A shard can handle concurrent writes from clients, there are multiple write threads scaling to the number of logical processors exposed to Elasticsearch, and we have invested in making Lucene accommodate this concurrency[0][1][2].
[0]: http://blog.mikemccandless.com/2011/05/265-indexing-speedup-... [1]: https://issues.apache.org/jira/browse/LUCENE-3023 [2]: http://blog.mikemccandless.com/2017/07/lucene-gets-concurren...
Disclaimer: I am an engineer on the Elasticsearch team; I welcome any and all feedback.