[ 
https://issues.apache.org/jira/browse/CASSANDRA-6574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13868917#comment-13868917
 ] 

Jonathan Ellis commented on CASSANDRA-6574:
-------------------------------------------

I bet it's just skipping entries from sstables that have been compacted and are 
no longer relevant.  You could add a debug line here if you want to be sure:

{code}
        public Future<Pair<KeyCacheKey, RowIndexEntry>> 
deserialize(DataInputStream input, ColumnFamilyStore cfs) throws IOException
        {
            ByteBuffer key = ByteBufferUtil.readWithLength(input);
            int generation = input.readInt();
            SSTableReader reader = findDesc(generation, cfs.getSSTables());
            boolean promotedIndexes = input.readBoolean();
            if (reader == null)
            {
                if (promotedIndexes)
                    RowIndexEntry.serializer.skip(input, 
Descriptor.Version.CURRENT);
                return null;
            }
            RowIndexEntry entry = promotedIndexes
                                ? RowIndexEntry.serializer.deserialize(input, 
reader.descriptor.version)
                                : 
reader.getPosition(reader.partitioner.decorateKey(key), Operator.EQ, false);
            return Futures.immediateFuture(Pair.create(new 
KeyCacheKey(reader.descriptor, key), entry));
        }
{code}

> key cache shrinks on restart
> ----------------------------
>
>                 Key: CASSANDRA-6574
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6574
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>         Environment: 1.2.12 + patches
>            Reporter: Chris Burroughs
>         Attachments: key-cache-entries.png
>
>
> During a rolling restart the key number of entries the number of entries in 
> the key cache is shrinking.  That is far fewer entries are loaded than are 
> saved.  This has obvious bad consequences for post restart performance.
> {noformat}
> key_cache_size_in_mb: 48
> key_cache_save_period: 900
> # Number of keys from the key cache to save
> # Disabled by default, meaning all keys are going to be saved
> # key_cache_keys_to_save: 100
> row_cache_size_in_mb: 256
> row_cache_save_period: 300
> row_cache_keys_to_save: 50000
> row_cache_provider: SerializingCacheProvider
> saved_caches_directory: /home/cassandra/shared/saved_caches
> {noformat}
> Same log lines:
> {noformat}
>  INFO [CompactionExecutor:24543] 2014-01-11 11:35:47,783 AutoSavingCache.java 
> (line 289) Saved KeyCache (398028 items) in 1252 ms
> *** RESTART ***
>  INFO [main] 2014-01-11 11:44:59,608 AutoSavingCache.java (line 140) reading 
> saved cache /home/cassandra/shared/saved_caches/ks-cf1-KeyCache-b.db
>  INFO [main] 2014-01-11 11:45:00,509 AutoSavingCache.java (line 140) reading 
> saved cache /home/cassandra/shared/saved_caches/ks-cf2-RowCache-b.db
>  INFO [main] 2014-01-11 12:02:48,675 ColumnFamilyStore.java (line 452) 
> completed loading (1068166 ms; 50000 keys) row cache for ks.cf2
>  INFO [main] 2014-01-11 12:02:48,769 CassandraDaemon.java (line 291) 
> completed pre-loading (67760 keys) key cache.
>  INFO [main] 2014-01-11 12:02:48,769 CassandraDaemon.java (line 294) 
> completed pre-loading (50000 keys) row cache.
>  INFO [CompactionExecutor:1] 2014-01-11 12:02:49,133 AutoSavingCache.java 
> (line 289) Saved RowCache (50000 items) in 266 ms
>  INFO [CompactionExecutor:2] 2014-01-11 12:02:49,575 AutoSavingCache.java 
> (line 289) Saved KeyCache (67760 items) in 707 ms
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to