Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Gliffy Diagram
namev3-index-organization

Getting Iterators from Indexes and Index Repositories

The logic for getting iterators from indexes accommodates various optimizations including:

  • avoiding the management of multiple subiterators if this index has no sub indexes
  • for indexes having subiterators:
    • choosing sorted or non-sorted management of subiterators
    • doing a 1-time conversion to a "flat index" for snapshots (supporting sorted, set, and bag)

Gliffy Diagram
nameindexesToIterators

Organization of Streams over Indexes

...

Splititerator impls are defined in these classes:

  • FSSubtypesIndexImpl
  • FSBagIndex
  • FSSetIndex
  • FSSortedIndex

Organization of Iterators over Indexes

Gliffy Diagram
namev3-iterators

Class rename tables

Indexes

v3 namev2 name

FSIndex_subtypes

IndexImpl (in FSIndexRepo)

FSIndex_iicp

IndexIteratorCachePair

(in FSIndexRepo)

FsIndex_singletype

FSLeafIndexImpl

FsIndex_bag

FSBagIndex

FsIndex_set

FSRBTSetIndex

FsIndex_sorted

FSIntArrayIndex

FsIndex_flat

 

Iterators

v3 namev2 name
FsIterator_singletype 
FsIterator_subtypes 
FsIterator_subtypes_snapshotSnapshotPointerIterator
FsIterator_bagPointerIterator in FSBagIndex

FsIterator_set

PointerIterator in FSRBTSetIndex
FsIterator_sortedPointerIterator in FSIntArrayIndex
FsIterator_subtypes_list 
FsIterator_subtypes_orderedPointerIteratorOrdered
FsIterator_subtypes_unorderedPointerIteratorUnordered