[
https://issues.apache.org/jira/browse/CASSANDRA-2313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sylvain Lebresne updated CASSANDRA-2313:
----------------------------------------
Attachment: 0002-Make-CommutativeRowIndexer-uses-AbstractCompactionRo.patch
0001-Introduce-CompactionController-to-handler-compaction.patch
Attaching patch against trunk.
This turns out to be slightly harder than expected because
(PreCompacted|LazilyCompacted)Row and SSTableIdentityIterator were relying on a
SSTableReader, but while rebuilding the index, we don't have one yet (and
faking one would probably be fragile).
Instead, a first patch introduces CompactionController, that is used to manage
the compaction options. This remove parts of the dependency mentioned above. I
also think that it cleans code and slightly optimize it in that it avoid
recreating a HashSet of the sstables for each given row.
The second patch modify CommutativeRowIndexer to use
(PreCompacted|LazilyCompacted)Row, which actually greatly simply the code there.
> CommutativeRowIndexer always read full row in memory
> ----------------------------------------------------
>
> Key: CASSANDRA-2313
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2313
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 0.8
> Reporter: Sylvain Lebresne
> Assignee: Sylvain Lebresne
> Fix For: 0.8
>
> Attachments:
> 0001-Introduce-CompactionController-to-handler-compaction.patch,
> 0002-Make-CommutativeRowIndexer-uses-AbstractCompactionRo.patch
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> CommutativeRowIndexer use CFSerializer.deserializeColumns() that read the
> full row in memory. We should use PreCompactedRow/LazilyCompactedRow instead
> to avoid this on huge row.
> As an added benefit, using PreCompactedRow will avoid a current seek back to
> write the row size.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira