[
https://issues.apache.org/jira/browse/CASSANDRA-1417?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906861#action_12906861
]
Matthew F. Dennis commented on CASSANDRA-1417:
----------------------------------------------
new patch attached
{quote}if you're going to organize imports, follow the order on
http://wiki.apache.org/cassandra/CodeStyle. also, looks like unused classes
like crypto.Data are being added{quote}
I've updated intellij again to match the order on the wiki
{quote}loadRowCache should probably be called by CFS constructor{quote}
loadRowCache depends on the table being fully constructed first so it's done
after the initial Table.open()
{quote}SavedCacheReader is a class with no fields, should probably just be a
static method somewhere (SSTable?). also, should return a new set rather than
taking one as parameter{quote}
It takes a parameter because the two places it's called pass it different set
implementations. In .7 the method creates a new TreeSet<byte[]>(BytesType) and
returns that.
{quote}should respect configured cache size and if saved cache is larger,
should log at info and oad as much as there is room for{quote}
The configured cache size depends on the results from reading all the indexes
when SSTableTrackers are created (which is the same place the cache is
populated so we don't iterate over all the index entries twice). For
percentages, we can't really get around this - we need to get a row count
before we can figure out the percentage. For cache settings that are fixed in
size, we could do that but given that cache sizes hardly ever change and even
when they do the cache will be set to the correct size after we have a row
count the extra code to handle this isn't worth it.
> add cache save/load
> -------------------
>
> Key: CASSANDRA-1417
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1417
> Project: Cassandra
> Issue Type: New Feature
> Components: Core
> Reporter: Jonathan Ellis
> Assignee: Matthew F. Dennis
> Fix For: 0.6.6
>
> Attachments: 1417-cassandra-0.6.txt
>
>
> Since mixing 0.7 nodes with 0.6 is looking increasingly unlikely to be
> supported because of the deep changes to the Thrift API, we should allow
> saving out the 0.6 cache and loading it on startup so that we don't inflict
> the pain of an entire cluster of cold cache on upgraders.
> The cache format should just be a list of row keys. Loading it is as simple
> as calling getColumnFamily (with a zero-column predicate) on each row, for
> row cache.
> Key cache is more complicated, but only a little. First is that you have to
> de-duplicate the row keys from multiple sstables. (Saving which sstable
> version it's associated with is less useful, since that will be obsoleted by
> compaction.) Second is that we don't need to actually read any row data, we
> just need to go through the index locator part of the read path (getPosition).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.