Interface MultiIndexReader<PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,D extends io.datarouter.model.databean.Databean<PK,D>,IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,IE extends io.datarouter.model.index.multi.MultiIndexEntry<IK,IE,PK,D>>

All Superinterfaces:
IndexReader<PK,D,IK,IE>, NodeOps<IK,IE>, SortedStorageReader<IK,IE>

public interface MultiIndexReader<PK extends io.datarouter.model.key.primary.PrimaryKey<PK>,D extends io.datarouter.model.databean.Databean<PK,D>,IK extends io.datarouter.model.key.primary.PrimaryKey<IK>,IE extends io.datarouter.model.index.multi.MultiIndexEntry<IK,IE,PK,D>> extends IndexReader<PK,D,IK,IE>
Methods for reading from storage systems that provide secondary indexing. This interface provides powerful iterators for scanning through each IndexEntry in index order or to scan through the indexed table's databeans in the order of the index. Note that scanning through the main table's rows in order of a secondary index will be much slower than scanning the main table directly as it requires random instead of sequential IO and requires many more overall IO operations. RDBMS's provide secondary indexing on tables. Most document oriented stores provide it, like DynamoDB, Mongo, and CouchDB. Others include BerkeleyDB, BerkeleyDB Java, some HBase libraries, Google Cloud Datastore, Amazon SimpleDB, and possibly DynamoDB.
  • Method Details