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

ASF subversion and git services commented on GEODE-982:
-------------------------------------------------------

Commit 3087c86f729785ad9fa021f4437d25ca5ef9231d in incubator-geode's branch 
refs/heads/develop from [~dschneider]
[ https://git-wip-us.apache.org/repos/asf?p=incubator-geode.git;h=3087c86 ]

GEODE-982: refactor off-heap

- removed unused MemoryChunk implementations
- collapsed OffHeapCacheDeserializable into StoredObject
- Added Slab, SlabFactory, SlabImpl, and AddressableMemoryManager.
- collapsed MemoryChunkWithRefCount into StoredObject
- methods that access and modify the data now have Data in their name
- collapsed AddressableStoredObject into StoredObject
- changed product code to use the StoredObject interface
  instead of internal class implementations of it
- renamed DataAsAddress to TinyStoredObject
- renamed ObjectChunk to OffHeapStoredObject
- renamed ObjectChunkWithHeapForm to OffHeapStoredObjectWithHeapForm
- renamed allocateChunk to allocateOffHeapStoredObject
- renamed FakeChunk to SearchMarker
- renamed ObjectChunkSlice to OffHeapStoredObjectSlice
- renamed SyncChunkStack to OffHeapStoredObjectAddressStack
- renamed ChunkValueWrapper to OffHeapValueWrapper


> Remove unused MemoryChunk classes and make need for memory address more clear
> -----------------------------------------------------------------------------
>
>                 Key: GEODE-982
>                 URL: https://issues.apache.org/jira/browse/GEODE-982
>             Project: Geode
>          Issue Type: Improvement
>          Components: offheap
>            Reporter: Darrel Schneider
>            Assignee: Darrel Schneider
>
> The current implementations of MemoryChunk include unsafe, byte array, and 
> byte buffer. But the product can only use the unsafe implementation. Both the 
> byte array and byte buffer do not provide a memory address that can be used.
> They were created for some early performance experimentation but the off-heap 
> implementation has since moved on and now requires a MemoryChunk that exposes 
> addressable memory.
> The other confusing thing about MemoryChunk it is used for two things:
> 1. a raw slab of memory that just has an address, a size, and can be released.
> 2. a chunk of memory that has an off-heap object header that can be reference 
> counted, and can be used to store a java object.
> The current MemoryChunk interface has too much on it for #1 (slabs) and too 
> little on it for #2 (chunks). I think it would be helpful to split these up 
> into two different interfaces instead of trying to have the common 
> MemoryChunk interface they both share.
> It would also be helpful if all the places that used static method to 
> read/write memory at a given address used an interface dedicated to that.  It 
> could be called AddressableMemoryManager. All the "unsafe" code for the 
> off-heap implementation should be in the AddressableMemoryManager. We could 
> then try alternate implementations of it without needing to change all of our 
> other code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to