[
https://issues.apache.org/jira/browse/CASSANDRA-2521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13050611#comment-13050611
]
Peter Schuller commented on CASSANDRA-2521:
-------------------------------------------
@jbellis The *unlink* is fine (just like with files that are opened w/o mmap),
but the actual deletion has to be postponed for fundamental reasons: How would
the userland application be informed of an attempted access? You could segfault
of course, or similar delivery of an asynchronous event, but that's not very
useful to most applications.
This closely relates to why Java doesn't allow forced munmap to begin with;
having to do some kind of synchronization to allow safe access to munmapped
memory in a way that doesn't violate the Java sandbox, would be very costly
given that a large point of mmap is to utilize the CPU's MMU in the
non-faulting case for a minimum of overhead.
(I'm very much +1 on not using the GC for external resources like sstables (for
trunk).)
@jbellis And yes we can do our "own" mmap:ing with JNA as an alternative, but
given that tjake's solution should work for Sun JVM:s even without JNA that
seems preferable to me. Longer term support for non-hotspot JVM:s seems like a
lesser concern. Cassandra isn't really something you want to run on an
"arbitrary" JVM anyway.
> Move away from Phantom References for Compaction/Memtable
> ---------------------------------------------------------
>
> Key: CASSANDRA-2521
> URL: https://issues.apache.org/jira/browse/CASSANDRA-2521
> Project: Cassandra
> Issue Type: Improvement
> Components: Core
> Reporter: Chris Goffinet
> Assignee: Sylvain Lebresne
> Fix For: 1.0
>
> Attachments:
> 0001-Use-reference-counting-to-decide-when-a-sstable-can-.patch
>
>
> http://wiki.apache.org/cassandra/MemtableSSTable
> Let's move to using reference counting instead of relying on GC to be called
> in StorageService.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira