Hey all,

I've been working on a SOLR set up with some heavy customization (using
the adminHandler as a way into the system) for a research project @
Imperial College London, however I now see there has been a substantial
push towards a NoSQL.  For this, there needs to be some kind of optimistic
fine-grained concurrency control on updates. As we have document versioning
in-built into Lucene (and therefore Solr) this shouldn't be too difficult,
however the push has been more of a focus on single core optimistic
LOCKING.

I would like to take this toward a multi-core (and multi-node) distributed
optimistic lock-free mechanism. This is gives us the ability to provide
stronger guarantees than NoSQL wrt distributed transaction isolation and as
we can now do soft-commits, we can also provide specific version rollbacks
(http://java.dzone.com/articles/exploring-transactional-0). Some more
interesting reading on this topic: (read-)snapshot isolation
(http://pages.cs.wisc.edu/~cs764-1/critique.pdf) and even stronger
guarantees with a slight performance hit with write-snapshot isolation
(http://www.fever.ch/usbkey_eurosys12/papers/p155-yabandehA.pdf). People
are starting to realize that we don't have to sacrifice guarantees for
better performance and scalability (like NoSQL) but rather relax them very
minimally.

What I need is for someone to shed some light on this feature and the
future plans of Solr wrt this is? Am I correct in thinking that a
multiversion concurrency control (MVCC) locking mechanism now exist for a
single core or is it lock-free and multi-core?

Many thanks,
Nicholas Ball (aka incunix)

Reply via email to