Details
-
Sub-task
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
None
Description
Stepping through a read response is made exceedingly difficult by the sheer depth of the call hierarchy, and how rapidly your context jumps around. This ticket intend to partially address that, by flattening one of the main causes of this: iterator transformations.
I have a patch that attempts to mitigate (but not entirely eliminate) this, through the introduction of a RowTransformer class that all transformations are applied through. If a transformation has already been applied, the RowTransformer class does not wrap a new iterator, but instead returns a new RowTransformer that wraps the original underlying (untransformed) iterator and both transformations. This can accumulate an arbitrary number of transformations and, quite importantly, can apply the filtration step Unfiltered -> Row in the same instance as well. The intention being that a majority of control flow happens inside this RowTransformer, so there is far less context jumping to cope with.
Attachments
Attachments
Issue Links
- breaks
-
CASSANDRA-11988 NullPointerException when reading/compacting table
- Resolved
- is duplicated by
-
CASSANDRA-9976 Flatten PartitionIterator call hierarchy with PartitionTransformer
- Resolved