Elasticsearch makes heavy use of threading. A Java thread must be mapped to
an execution pipeline in the CPU. The more Java threads an application
creates, the more resources the CPU must provide. The "hyperthreading"
feature of Intel CPUs is a core with two execution pipelines instead of
one. So, for thread pooling, it helps to manage Java threading more
efficiently. (In reality, it also depends on the compiler that was used for
building the JVM, if the compiler can not exploit the power of CPU features
like hyperthreading, it is useless for Java)
Jörg
On Fri, Jul 18, 2014 at 9:57 PM, Nikolas Everett nik9000@gmail.com wrote:
Does hyper threading help Elasticsearch/Lucene? I'm looking for an answer
like:
Never
Always
Depends on workload
Doesn't hurt
It would also depends on the caching abilities and that the currently
paralelized threads are not sharing a resource. In the end, like with all
Computer Science stuff, the answer is "it depends"
Elasticsearch makes heavy use of threading. A Java thread must be mapped
to an execution pipeline in the CPU. The more Java threads an application
creates, the more resources the CPU must provide. The "hyperthreading"
feature of Intel CPUs is a core with two execution pipelines instead of
one. So, for thread pooling, it helps to manage Java threading more
efficiently. (In reality, it also depends on the compiler that was used for
building the JVM, if the compiler can not exploit the power of CPU features
like hyperthreading, it is useless for Java)
Jörg
On Fri, Jul 18, 2014 at 9:57 PM, Nikolas Everett nik9000@gmail.com
wrote:
Does hyper threading help Elasticsearch/Lucene? I'm looking for an
answer like:
Never
Always
Depends on workload
Doesn't hurt
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.