Hi,
Got very confused with shared index reader strategy and infinispan pre-load option. Setup as you might have understood is Hibernate Search 5.4.0 with Infinispan 7.2.0 (JDBC Cache Store). I've set up
eviction max entries to 5000 with
preload to false for Caches from Cache Store.
When I restarted my server (after MassIndexer finished loading data), I could see Infinispan is pre-loading the entries even I said preload to false. I realised by debugging the code that it is shared reader doing all this in the background to some sort of warm-up exercise. I switched to not-shared strategy and it stopped loading segments at startup (as expected).
So here are my questions (
I will be very very very thankful to get answers as debugging code didn't help a lot so far):
If Infinispan is set to 1000 and as per "shared" strategy documentation
Quote:
This strategy only reopens segments that have been modified or created
after last opening and shares the already loaded segments from the previous instance
What will it do in below cases? a. Can it load more than 5000? If yes! As Infinispan will use the eviction strategy to keep at max 5000 BUT Will underline reader keep loading all segments (what it thinks to be loaded) in memory? How this marry up with infinispan.
b. I might be getting the basics wrong... Does this "reopens segments" really means loading in memory or some sort of cursors to underline Files or in my case JDBC CacheStore DB?
c. What happens if we've just finished MassIndexer's job. Will it consider all segments are candidates to be loaded next startup OR
is it strictly reader that marks the segments opened and candidate to be re-opened next time? I am assuming MassIndexer has nothing to do with reader stuff.
Once again please do answer this for me as it is becoming pain unless I get to know of these.