[Transactional Contrib] Introduce quick scanning row-based secondary indexes
----------------------------------------------------------------------------
Key: HBASE-2426
URL: https://issues.apache.org/jira/browse/HBASE-2426
Project: Hadoop HBase
Issue Type: New Feature
Components: contrib
Reporter: George P. Stathis
Priority: Minor
Fix For: 0.20.5, 0.21.0
RowBasedIndexSpecification is a specialized IndexSpecification class for
creating row-based secondary index tables. Base table rows with the same
indexed column value have their row keys stored as column qualifiers on the
same secondary index table row. The key for that row is the indexed column
value from the base table. This allows to avoid expensive secondary index table
scans and provides faster access for applications such as foreign key indexing
or queries such as "find all table A rows whose familyA:columnB value is X".
RowBasedIndexSpecification indices can be scanned using the API on
RowBasedIndexedTable. The metadata for RowBasedIndexSpecification differ from
IndexSpecification in that:
- Only a single base table column can be indexed per
RowBasedIndexSpecification. No additional columns are put in the index table.
and
- RowBasedIndexKeyGenerator, which constructs the index-row-key from the
indexed column value in the original column, is always used.
For a simple RowBasedIndexSpecification example, look at the
TestRowBasedIndexedTable unit test in
org.apache.hadoop.hbase.client.tableIndexed.
To enable RowBasedIndexSpecification indexing, modify hbase-site.xml to turn on
the
IndexedRegionServer. This is done by setting
- hbase.regionserver.class to
org.apache.hadoop.hbase.ipc.IndexedRegionInterface and
- hbase.regionserver.impl to
org.apache.hadoop.hbase.regionserver.tableindexed.RowBasedIndexedRegionServer
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.