Again they are used to skip index files if the search query specifies a partition key. Subsequent rounds of query (if any) will spread out to other nodes eventually Let's hope that this temporary hack will be removed once the Query Plan get fully integrated into Cassandra.
Index Mode is just the chosen index mode (PREFIX, CONTAINS or SPARSE) Has Partial is a boolean flag introduced by CASSANDRA-11434 for backward compatibility and to enable prefix and equality match when using index mode CONTAINS with Terms Count represents the number of terms (indexed values) in the next Term Block. On each local node, SASI will load the On Disk Index files into system page cache using memory mapped buffer () to speed up reading and search.
The stitching process will help sorting the term globally and merge all the Token Trees together to create the final index file. If you want to look into the index structure and see how data are really organized on disk, just apply the SASI Debug Patch. Somehow one wants to compare SASI with classical search engines like Elastic Search, Solr or Datastax Enterprise Search. Despite its convenience and the fact that SASI is strongly integrated to Cassandra and CQL, it has a number of drawbacks when compared to real search engines.
The Header Block contains general meta data information. Warning, the patch has been created from Cassandra 3.6-SNAPSPHOT. If you decide to try SASI in production, please keep in mind that SASI does impact your write/flush throughput, compaction throughput as well as repair and streaming operations.
However, you’ll be able to search user whose account has been created between a wide range of date ( is called, it will trigger the stitching of index segments together, if there are more than 1 segments. The reason is that the source code is quite abstract (frequent use of generics and polymorphism to mutualise code, which is very good) and very low level (usage of bit operators for performance). But above a LIMIT threshold, adding more predicates is beneficial because you reduce the number of returned rows thus limit Cassandra sequential scans.