When using external-scheme what is still stored on-heap?
If I have a scheme like this...
</distributed-scheme>...when I put data into a cache what is still stored on the heap?
When I do a test I can see that obviously the data is not on the heap as I can add massively more entries before I run out of memory.
Using the VisualVM tool's memory sampler I can see a similar number of instances of com.tangosol.util.Binary as I have entries - so are they keys still on the heap?
If I add indexes then I can see that these are on the heap, so I will have keys and indexed values on the heap. I end up with twice as many instances of Binary as I have put entries, which makes sense as the index contains a references to the Binary keys.
The reason I ask is because I configured a "Dev" version of our application that uses <external-scheme> everywhere you would normaly use a <local-scheme> so we can run a version of our application for Dev testing on development machines with limited RAM. It needed a few tweaks and a custom DefaultConfigurableCacheFactory but seems to work fine. I am now trying to figure out just how much space we save and how much "data" is still on the heap.
So with an external scheme we will be able to save the amount of space taken by the cache values. Now if I could just shift the indexes (which take quite a bit of space) that would be a bonus. I know it sort of defeats the point of having an index but I am trying to run the app on a small Dev server so I am more interested that it works functionally than how fast it is. If the app was 3.6 I might be able to do something clever with custom indexes - then again we could just remove the indexes.