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

ASF GitHub Bot commented on ARROW-1795:
---------------------------------------

pcmoritz commented on issue #1327: ARROW-1795: [Plasma] Create flag to make 
Plasma store use a single memory-mapped file.
URL: https://github.com/apache/arrow/pull/1327#issuecomment-345306499
 
 
   Hey, this following instruction will make sure that the big mmap memory file 
will be reused and no new one will be created: 
https://github.com/apache/arrow/blob/cacbacd439919742a0b6fbec27ee73b5af29347f/cpp/src/plasma/store.cc#L825
   If dlmemalign sees that there is not enough space and the mmap file is 
already at system_memory, it will return a null pointer and then we call the 
eviction policy to evict something (see the loop around dlmemalign).
   
   If hypothetically dlfree was called on the last object in the store, the 
mmap file might be unmapped and remapped when a new object is dlmemaligned; 
this would only happen in corner cases (i.e. if there is only one or very few 
large objects that are already released and they need to be evicted). We could 
prevent it by mallocing a very small object and the beginning and not freeing 
it. If you are concerned about this and can show it actually happens and want 
to submit a PR please go ahead, but it is not even clear that dlmalloc would 
unmap the last memory mapped file.
   
   Hope that helps!

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> [Plasma C++] change evict policy
> --------------------------------
>
>                 Key: ARROW-1795
>                 URL: https://issues.apache.org/jira/browse/ARROW-1795
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Plasma (C++)
>            Reporter: Lu Qi 
>            Assignee: Robert Nishihara
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 0.8.0
>
>
> case 1.say, we have total free memory 8 G , we have input 5G data, then comes 
> another 6G data, 
> if we choose to evict space 6G , it will throw exception saying that
> no object can be free. This is because we didn't count the 3G remaining free
> space .If we count this remaining 3G , we need to ask only 3G,thus
> we can evict the 5G data and we are still alive . 
> case 2. another situation is :  if we have free memory 10G , we input 1.5G 
> data ,then comes another
> 9G data , if we use  10*20% = 2G data to evict ,then we will crash . In this 
> situation we need to 
> use 9+1.5-10 = 0.5G data to evict  



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to