You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2018/11/30 12:18:00 UTC

[jira] [Assigned] (CASSANDRA-14832) Other threads can take all newly allocated BufferPool chunks before original and cause reallocation

     [ https://issues.apache.org/jira/browse/CASSANDRA-14832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Benedict reassigned CASSANDRA-14832:
------------------------------------

    Assignee: Jon Meredith

> Other threads can take all newly allocated BufferPool chunks before original and cause reallocation
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14832
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14832
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jon Meredith
>            Assignee: Jon Meredith
>            Priority: Minor
>
> When BufferPool does not have any free Chunks to satisfy a request, the calling thread allocates a new large block of memory which it breaks up into chunks and adds to the free chunks queue, then pulls from the queue to satisfy it's own allocation.
> If enough other threads request chunks it is possible for the queue to be exhausted before the original allocating thread is able to pull of it's own allocation, causing the original allocator to loop and attempt to allocate more memory.  This is unfair to the original caller and may cause it to block on a system call to allocate more memory.
> Instead of the current behavior, allocateMoreChunks could hold back one of the chunks and return it to the caller instead so that it will at most call allocate once.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org