Hi Tinus,

The shared-memory functionality was removed many years ago.  It implemented an 
object memory in shared-memory and used what we called “copy sharing” to move 
objects between the heap and shared-memory.  A separate process managed garbage 
collection and other chores.

Geode currently has off-heap storage support for the cache.  Have you looked 
into that feature?
https://geode.apache.org/docs/guide/19/managing/heap_use/off_heap_management.html

From: Tinus Tate <tinust...@gmail.com>
Reply-To: "user@geode.apache.org" <user@geode.apache.org>
Date: Thursday, March 11, 2021 at 5:28 AM
To: "user@geode.apache.org" <user@geode.apache.org>
Subject: Shared memory segment?

Good afternoon,

Around 2005-2010 i used terracotta dso to write a distributed application. It 
made things quite easy by using managed objects that were shared between 
servers.

Quite recently i was asked a question if something similar is still around. I 
googled and found an old 
theserverside.com<https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftheserverside.com%2F&data=04%7C01%7Cbruces%40vmware.com%7C02766ff6be3d402f7d5a08d8e4919ca9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C637510661346992174%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=l48CNOveku88uLZBxn%2ByrpAV2u9y9cDlbLpU4f4%2FZwo%3D&reserved=0>
 article:
https://www.theserverside.com/discussions/thread/34294.html<https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.theserverside.com%2Fdiscussions%2Fthread%2F34294.html&data=04%7C01%7Cbruces%40vmware.com%7C02766ff6be3d402f7d5a08d8e4919ca9%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C637510661347002162%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=NjD6IW9R4B7AO2eRrjat%2BvBDwqAPMLZUZ2r7jf1c%2BZM%3D&reserved=0>

In one of the comments "Jags Ramnarayan" comments:
=====
This is actually quite similar to one of the options provided by GemFire. 
GemFire provides a mechanism to extend in some sense the memory model of the 
JVM to spill over to a shared memory segment. Basically any number of JVMs 
and/or 'C' processes can attach to a shared memory segment and share objects. 
Transparency is provided to the application developer through byte-code 
enhancement of the domain classes chosen for sharing (If byte-code enhancement 
is not preferred then objects are copied to shared memory). Applications simply 
instantiate these enhanced domain classes and modify fields. The updates are 
instantenously visible to all connected processes. So, the object creation in 
shared memory occurs before invoking the constructor and all field accesses are 
diverted to the shared object. Memory management in shared memory is somewhat 
similar to VM with object tables, compaction and a variety of GC algorithms 
except for a few key differences: Object reference management (and lifetime 
management) has to be global across all connected processes and a provision for 
spilling over to disk if available memory falls below a set threshold.
=====

I'm currently diving into geode but have not yet stumbled across this 
functionality. I admit the info is 15 year old, but i was just wondering, is 
this still around or has it maybe moved to the enterprise products at pivotal?

Kind regards,
Tinus

Reply via email to