You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2014/01/12 02:02:33 UTC

[jira] [Commented] (CASSANDRA-6574) key cache shrinks on restart

    [ 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)