Versions Compared

Key

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

...

Discussion threaddev discussion

JIRACASSANDRA-16052

Released: Unreleased

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Storage Attached Indexing (SAI) is a new secondary index for the Apache Cassandra® distributed database system.

Goals

A SAI is a new index implementation that builds on the advancements made with SASI. To provide It's goals are roughly the following:

  • Provide a solution that enables users to index multiple columns on the same table without suffering scaling problems, especially at write time.

...

  • Achieve feature parity with existing 2i,

...

  • then eventually extend to SASI features and beyond.

...

  • Perform well enough to replace entirely both legacy 2i and SASI. (This would entail deprecation of and then the complete removal of SASI, which is currently experimental.)

Non-Goals

  • Replace a search engine like Elastic or Solr
  • Tokenization
  • Prefix/wildcard/regex
  • Geo
  • Sorting

...

The SASI codebase was used as inspiration during the development of SAI. Architecturally SASI provides many benefits over the native 2i implementation.

Timeline

Post 4SAI will target 5.0, however, a proposed implementation could be open-sourced earlier for reviewwith development proceeding in a trunk-based feature branch under the CASSANDRA-16052 Jira epic.

Step 1: Merge Index and related interface changes to Apache Cassandrafeature branch (see CASSANDRA-16092).

Step 2: Merge full SAI implementation into Apache Cassandrafeature branch.

Step 3: Replace SASI or 2I when SAI is considered production ready: Merge SAI to trunk as an experimental feature once testing/validation is complete. (It may not require a feature flag, given all secondary index usage is optional.)

Step 4: Deprecate SASI in 5.0 (given it is already experimental), and remove it in 6.0.

Step 5: Make SAI the default secondary index implementation in DDL space in 5.0, deprecate legacy 2i as well, and remove it in 6.0.

Mailing list / Slack channels

...