cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergio Bossa (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-9459) SecondaryIndex API redesign
Date Mon, 10 Aug 2015 21:51:46 GMT


Sergio Bossa commented on CASSANDRA-9459:


I've made a first review pass, for now focused on the management and write paths: things seem
good overall and the API is definitely nicer, I just have the following remarks so far:
* It seems we've lost CASSANDRA-9196.
* It would be useful to distinguish between a cleanup and a compaction at the {{Indexer}}
level, as indexes not backed by CFs will probably be do nothing during compaction.
* {{Cells#reconcile}} doesn't call {{Indexer#updateCell}} in case of counters, but what if
a third-party implementation wants to index them?
* {{SIM#indexPartition}} seems to miss to invoke {{Indexer#finish}}.
* Nit: comments and variable names refer to {{Indexer}} in several ways: handler, updater,
index, indexer...

I'll hopefully finish reviewing tomorrow and get back with some more feedback.

> SecondaryIndex API redesign
> ---------------------------
>                 Key: CASSANDRA-9459
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sam Tunnicliffe
>            Assignee: Sam Tunnicliffe
>             Fix For: 3.0 beta 1
> For some time now the index subsystem has been a pain point and in large part this is
due to the way that the APIs and principal classes have grown organically over the years.
It would be a good idea to conduct a wholesale review of the area and see if we can come up
with something a bit more coherent.
> A few starting points:
> * There's a lot in AbstractPerColumnSecondaryIndex & its subclasses which could be
pulled up into SecondaryIndexSearcher (note that to an extent, this is done in CASSANDRA-8099).
> * SecondayIndexManager is overly complex and several of its functions should be simplified/re-examined.
The handling of which columns are indexed and index selection on both the read and write paths
are somewhat dense and unintuitive.
> * The SecondaryIndex class hierarchy is rather convoluted and could use some serious
> There are a number of outstanding tickets which we should be able to roll into this higher
level one as subtasks (but I'll defer doing that until getting into the details of the redesign):
> * CASSANDRA-7771
> * CASSANDRA-8103
> * CASSANDRA-9041
> * CASSANDRA-4458
> * CASSANDRA-8505
> Whilst they're not hard dependencies, I propose that this be done on top of both CASSANDRA-8099
and CASSANDRA-6717. The former largely because the storage engine changes may facilitate a
friendlier index API, but also because of the changes to SIS mentioned above. As for 6717,
the changes to schema tables there will help facilitate CASSANDRA-7771.

This message was sent by Atlassian JIRA

View raw message