mirror of https://github.com/apache/cassandra
Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0: Don't allocate in ThreadLocalReadAheadBuffer#close()
This commit is contained in:
commit
84fdf2efd9
|
|
@ -183,6 +183,7 @@
|
||||||
* Add the ability to disable bulk loading of SSTables (CASSANDRA-18781)
|
* Add the ability to disable bulk loading of SSTables (CASSANDRA-18781)
|
||||||
* Clean up obsolete functions and simplify cql_version handling in cqlsh (CASSANDRA-18787)
|
* Clean up obsolete functions and simplify cql_version handling in cqlsh (CASSANDRA-18787)
|
||||||
Merged from 5.0:
|
Merged from 5.0:
|
||||||
|
* Don't allocate in ThreadLocalReadAheadBuffer#close() (CASSANDRA-20551)
|
||||||
* Ensure RowFilter#isMutableIntersection() properly evaluates numeric ranges on a single column (CASSANDRA-20566)
|
* Ensure RowFilter#isMutableIntersection() properly evaluates numeric ranges on a single column (CASSANDRA-20566)
|
||||||
* SAI marks an index as non-empty when a partial partition/row modifications is flushed due to repair (CASSANDRA-20567)
|
* SAI marks an index as non-empty when a partial partition/row modifications is flushed due to repair (CASSANDRA-20567)
|
||||||
* SAI fails queries when multiple columns exist and a non-indexed column is a composite with a map (CASSANDRA-19891)
|
* SAI fails queries when multiple columns exist and a non-indexed column is a composite with a map (CASSANDRA-19891)
|
||||||
|
|
|
||||||
|
|
@ -131,18 +131,21 @@ public final class ThreadLocalReadAheadBuffer
|
||||||
|
|
||||||
public void clear(boolean deallocate)
|
public void clear(boolean deallocate)
|
||||||
{
|
{
|
||||||
Block block = getBlock();
|
// avoid calling block() here to reduce unintended allocations
|
||||||
|
Block block = blockMap.get().get(channel.filePath());
|
||||||
|
if (block == null)
|
||||||
|
return;
|
||||||
|
|
||||||
block.index = -1;
|
block.index = -1;
|
||||||
|
if (block.buffer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
ByteBuffer blockBuffer = block.buffer;
|
ByteBuffer blockBuffer = block.buffer;
|
||||||
if (blockBuffer != null)
|
blockBuffer.clear();
|
||||||
|
if (deallocate)
|
||||||
{
|
{
|
||||||
blockBuffer.clear();
|
FileUtils.clean(blockBuffer);
|
||||||
if (deallocate)
|
block.buffer = null;
|
||||||
{
|
|
||||||
FileUtils.clean(blockBuffer);
|
|
||||||
block.buffer = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue