Re: PerThreadIDAndVersionLookup - thread safety

2015-03-16 Thread joergpra...@gmail.com
Sorry for being unclear, the TermsEnum array is one (the most important) of the arrays for iteration, the other arrays are also not thread safe - you can view all the private class variables as a thread-private cache. NumericDocValues is the key component for retrieving the version. Jörg On Mon,

Re: PerThreadIDAndVersionLookup - thread safety

2015-03-16 Thread Paweł Róg
Hi, If only TermsEnum array is not thread safe, maybe it's worth to consider sticking only it (or all other required arrays) to a thread? Heap dump report showed me that a lot of space is taken by versions NumericDocValues array. -- Paweł W dniu poniedziałek, 16 marca 2015 00:03:59 UTC+1 użytko

Re: PerThreadIDAndVersionLookup - thread safety

2015-03-15 Thread joergpra...@gmail.com
It is not thread safe because of the TermsEnum array, which can not be shared between threads. By not sharing, a thread can reuse the array, which avoids expensive reinitialization. The utility class was introduced at https://github.com/elastic/elasticsearch/issues/6212 and from what I understan

PerThreadIDAndVersionLookup - thread safety

2015-03-15 Thread Paweł Róg
Hi, Can anyone shortly describe why class PerThreadIDAndVersionLookup is not thread safe and what is needed to make it thread safe? I'm wondering if it is possible to keep only single instance of VersionLookup and make it not stick to a thread. I see waste of big chunk of memory in JVM only because