The devil is often in the details. On the surface it looks simple. How specifically are the stale indexes ignored? Are the guaranteed to be no races? Is deletion handled correctly?Does it work with multiple versions? What happens when the client dies 1/2 way through an update? It's easy to do eventually consistent indexes. Truly consistent indexes without transactions are tricky.
Also, scanning an index and then doing point-gets against a main table is slow (unless the index is very selective. The Phoenix team measured that there is only an advantage if the index filters out 98-99% of the data). So then one would revert to covered indexes and suddenly is not so easy to detect stale index entries. I blogged about these issues here: http://hadoop-hbase.blogspot.com/2012/10/musings-on-secondary-indexes.html http://hadoop-hbase.blogspot.com/2012/10/secondary-indexes-part-ii.html Phoenix has a (pretty involved) solution now that works around the fact that HBase has no transactions. -- Lars ________________________________ From: Henning Blohm <henning.bl...@zfabrik.de> To: user <user@hbase.apache.org> Sent: Sunday, December 22, 2013 2:11 AM Subject: secondary index feature Lately we have added a secondary index feature to a persistence tier over HBASE. Essentially we implemented what is described as "Dual-Write Secondary Index" in http://hbase.apache.org/book/secondary.indexes.html. I.e. while updating an entity, actually before writing the actual update, indexes are updated. Lookup via the index ignores stale entries. A recurring rebuild and clean out of stale entries takes care the indexes are trimmed and accurate. None of this was terribly complex to implement. In fact, it seemed like something you could do generically, maybe not on the HBASE level itself, but as a toolbox / utility style library. Is anybody on the list aware of anything useful already existing in that space? Thanks, Henning Blohm *ZFabrik Software KG* T: +49 6227 3984255 F: +49 6227 3984254 M: +49 1781891820 Lammstrasse 2 69190 Walldorf henning.bl...@zfabrik.de <mailto:henning.bl...@zfabrik.de> Linkedin <http://www.linkedin.com/pub/henning-blohm/0/7b5/628> ZFabrik <http://www.zfabrik.de> Blog <http://www.z2-environment.net/blog> Z2-Environment <http://www.z2-environment.eu> Z2 Wiki <http://redmine.z2-environment.net>