Hi cablepuff,
Quote:
my expected result is somewhere around 20 minutes.
I can't promise anything of course as it depends on way too many factors, but I believe
you could go much faster, you have to check and tweak some more settings:
a)creator and lastEditor fields should be loaded in the criteria, so to scroll on the Post entities without having to load embedded fields later on (unless you are trying to have the users in a cache, but it depends on how much different users are expected to be active and the cache configuration)
The choice about caching the users may also depend on how expensive it is to load one, I suggest that if they don't have other fields going to be loaded you avoid the cache and load them in same scrollable.
b)merge factor = 256 doesn't necessarily make you faster, higher is better but you should try also lower values. I've had good results with 10000.
c)you gave a hint of 1GB ram to the indexer, did you remember to allocate more ram to your JVM? what are your JVM switches? You say 1GB to your application server, but you shouldn't allocate all jvm available ram to the indexer, it will slow down a lot because of GC triggering all the time.
BTW don't set it go 4GB if you don't have it, it really will kill performance; you're saving yourself because of flushToIndexes occurring before the trigger.
d) the .setFetchSize(BATCH_SIZE) doesn't need to match your ((index % BATCH_SIZE) == 0).
Quote:
i want to be able to index asynchronously on different server. (the index are build in batch process like very day).
yes you can do that, did you read about the JMS indexing configuration in the reference?
reading the book may help too.[/code]