cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefania (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-8897) Remove FileCacheService, instead pooling the buffers
Date Tue, 26 May 2015 10:32:17 GMT


Stefania commented on CASSANDRA-8897:

[~benedict] I resumed work on this today. A few questions:

- Your latest suggestions have reverted this:

bq. We could consider making the chunks available for reallocation before they are fully free,
since there's no different between a partially or fully free chunk now for allocation purposes

Also the chunks are not recycled right now because the owner is not null but I can add this.

- The cas on the buffer attachment is to protect against two threads simultaneously freeing
the same buffer. Without it we have two unit tests that trigger the assertion in free(): testMultipleThreadsReleaseDifferentBuffer()
and testMultipleThreadsReleaseSameBuffer(). Shall I remove the unit tests and accept we have
a race or restore the cas?

- The burn test reports this sort of errors with {{if (index == 64)}} in get():

ERROR 09:29:40 Got exception null, latest size 21241, current chunk [slab java.nio.DirectByteBuffer[pos=0
lim=27068 cap=65536], slots bitmap 11101111111111111000000000000000000000000000, capacity
65536, free 16384]
	at java.nio.Buffer.limit(
	at org.apache.cassandra.utils.memory.BufferPool$Chunk.get(
	at org.apache.cassandra.utils.memory.BufferPool$Chunk.get(
	at org.apache.cassandra.utils.memory.BufferPool$LocalPool.get(
	at org.apache.cassandra.utils.memory.BufferPool.takeFromPool(
	at org.apache.cassandra.utils.memory.BufferPool.get(
	at org.apache.cassandra.utils.memory.LongBufferPoolTest$
	at org.apache.cassandra.utils.memory.LongBufferPoolTest$
	at java.util.concurrent.ThreadPoolExecutor.runWorker(
	at java.util.concurrent.ThreadPoolExecutor$

> Remove FileCacheService, instead pooling the buffers
> ----------------------------------------------------
>                 Key: CASSANDRA-8897
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Benedict
>            Assignee: Stefania
>             Fix For: 3.x
>         Attachments: 9240_test_results.txt, snapshot-1431582436640-cpu-backtraces.png,
snapshot-1431582436640-cpu-calltree-compression-8897.nps, snapshot-1431582436640-cpu-calltree-compression-trunk.nps
> After CASSANDRA-8893, a RAR will be a very lightweight object and will not need caching,
so we can eliminate this cache entirely. Instead we should have a pool of buffers that are

This message was sent by Atlassian JIRA

View raw message