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

Vijay edited comment on CASSANDRA-4860 at 4/12/13 4:00 AM:
-----------------------------------------------------------

This is my theory:

2M KV with Measure.measure() will take 96,000,000 or 96M (2 *24 * 2000000 
bytes) will fit in key cache.
2M KV with measureDeep() will take 96M + 48M (48 * 2000000 + 24 * 2000000) 
where 48 is the index min size and 24 is the key size.

Hence there is a eviction overhead on the keycache which you dont have in 
Measure.measure().
Give the above if you have the key cache of 300M and re test both v3 should 
show a better performance.

{code}
Completed warmup!, Number of Iteratoions: 1000000
Using reflection took: 8037
Using 4860-v3 took: 90
Using MemoryMeter meter.measure(key) took: 190
Using MemoryMeter meter.measureDeep(key) took: 1002
Using 4860-v3 RowIndexEntry took: 14
Using MemoryMeter meter.measure(RowIndexEntry(i)) took: 104
Using MemoryMeter meter.measureDeep(RowIndexEntry(i)) took: 459
Size of Meter.measure key: 24
Size of Meter.measure index: 24
Size of Meter.measureDeep key: 48
Size of Meter.measureDeep index: 24
Size of key: 48
Size of index: 24
{code}
                
      was (Author: vijay2...@yahoo.com):
    This is my theory:

2M KV with Measure.measure() will take 96,000,000 or 96M (2 *24 * 2000000 
bytes) will fit in key cache.
2M KV with measureDeep() will take 96M + 48M (48 * 2000000 + 24 * 2000000) 
where 48 is the index min size and 24 is the key size.

Give the above if you have the key cache of 300M and re test both v3 should 
show a better performance.

{code}
Completed warmup!, Number of Iteratoions: 1000000
Using reflection took: 8037
Using 4860-v3 took: 90
Using MemoryMeter meter.measure(key) took: 190
Using MemoryMeter meter.measureDeep(key) took: 1002
Using 4860-v3 RowIndexEntry took: 14
Using MemoryMeter meter.measure(RowIndexEntry(i)) took: 104
Using MemoryMeter meter.measureDeep(RowIndexEntry(i)) took: 459
Size of Meter.measure key: 24
Size of Meter.measure index: 24
Size of Meter.measureDeep key: 48
Size of Meter.measureDeep index: 24
Size of key: 48
Size of index: 24
{code}
                  
> Estimated Row Cache Entry size incorrect (always 24?)
> -----------------------------------------------------
>
>                 Key: CASSANDRA-4860
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4860
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.0, 1.2.3, 2.0
>            Reporter: Chris Burroughs
>            Assignee: Vijay
>             Fix For: 1.2.0 beta 3
>
>         Attachments: 0001-4860-v2.patch, 0001-4860-v3.patch, 
> 0001-CASSANDRA-4860-for-11.patch, 0001-CASSANDRA-4860.patch, 
> 4860-perf-test.zip, trunk-4860-revert.patch
>
>
> After running for several hours the RowCacheSize was suspicious low (ie 70 
> something MB)  I used  CASSANDRA-4859 to measure the size and number of 
> entries on a node:
> In [3]: 1560504./65021
> Out[3]: 24.0
> In [4]: 2149464./89561
> Out[4]: 24.0
> In [6]: 7216096./300785
> Out[6]: 23.990877204647838
> That's RowCacheSize/RowCacheNumEntires  .  Just to prove I don't have crazy 
> small rows the mean size of the row *keys* in the saved cache is 67 and 
> Compacted row mean size: 355.  No jamm errors in the log
> Config notes:
> row_cache_provider: ConcurrentLinkedHashCacheProvider
> row_cache_size_in_mb: 2048
> Version info:
>  * C*: 1.1.6
>  * centos 2.6.32-220.13.1.el6.x86_64
>  * java 6u31 Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to