On  Feb 16, 2009, at 15:06, Sanne Grinovero wrote:

Hi all,
to solve HSEARCH-284 (Lucene locks left around in application restart/crash) I am investigating the differences in all Lucene's LockFactory implementations; some of them are interesting and I would like to add a configuration option to
replace the default one in Hibernate Search.

1) property name:
I'm naming the property key "locking_strategy", scoped for each
DirectoryProvider.

sounds good



2) values:
At first I was planning to use the usual design to be able to specify
any implementation
by specifying the qualified class name, but actually only 4
implementations make sense
and if someone really needed the flexibility to implement their own
they can define
their own DirectoryProvider and use whatever they want.

hum, does that makes our codebase more complex to support custom LockFactories? I would like this flexibility/


Also 2 of the base Lucene implementations are missing a public no-args
constructor,
so I would use only simple names:

simple -> org.apache.lucene.store.SimpleFSLockFactory
native  -> org.apache.lucene.store.NativeFSLockFactory
single  -> org.apache.lucene.store.SingleInstanceLockFactory
none   -> org.apache.lucene.store.NoLockFactory

yes, simple names for those that make sense and fqcn for the others. We might also support a "factory" so that impl wo no-arg constructor can be used, but that's an enhancement we can do later if needed.



3) support for "none":
I don't think we should let the user select something which is not compatible with H.Searche's design, so I am still trying to figure out if the NoLockFactory could be an option in case Search is the only process accessing the index. Currently inside search the IndexReaders/Searchers are read-only, and at most
one IndexWriter is using the DP, so the locking strategy could be set
to "none" IMHO.
opinions?

that sounds reasonable but how does that differ from SingleInstanceLockFactory?



4) default:
The current default is "simple", which has the problem as reported in
HSEARCH-284,
so I was puzzled by the idea to define the "native" as the default one to have
Search beginners avoid the locking problem, but I am hitting some
problems under load testing,
so I think the default should stay to "simple" at least for now.

OK

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to