On 08/lug/2013, at 12:54, Chetan Mehrotra wrote:

> Hi,
> 
> I tried to integrate Apache DirectMemory as Second level cache (L2).
> It uses Kryo  [2] for serializing/derserializing objects from the off
> heap memory managed by DirectMemory. Initial test based on this show
> quite a bit of saving in terms of memory taken
> 
> Below stats (sum of all MongoMK related cache) are taken when L2
> memory is enabled after restarting a CQ instance and some basic access
> done.
> 
> On Heap
>    No of entries    - 138288
>    Memory Taken - 217.3 MB
> Off Heap
>    No of entries    - 113012
>    Memory Taken - 42.8 MB
>    Hit Count 1257
>    Total Load Time 80253030
>    Avg Load Time 63844.8926014320
> 
> If I completely serialize the Document cache (the biggest of 3 )
> - Document Cache - On Heap 134.7 MB for 43935 entries
> - Document Cache - Off Heap 27.5 MB for 43935 entries. Takes 555.5 ms
> to deserialize all 43935 entries
> 
> So far I can make following observation
> -- Storing cache objects in serialized form provides a more compact storage
> -- Deserializtion cost is low
> -- Using Off heap memory would be helpful compared to on heap memory
> -- Even if we do not use DirectMemory we can look into storing the
> data in serialized form
> -- L2 cache can be added as an optional feature. Oak Core can still be
> used in absence of L2 cache
> 
> Caveats
> -- DirectMemory project is still in very early phase and I have to use
> the latest snapshot version with some local fixes to get it work
> 
> The required changes to be done can be checked at [3]
> 
> So would it be worthwhile to add this as an optional feature in Oak.
> If user require they can enable L2 cache otherwise we only use the
> Guava Cache as L1 cache
> 
> Thoughts?

I think it makes sense, probably as an optional feature with a pluggable 
implementation (can be DM or some other mechanism).
Regarding DM I think I the community would be happy to support our use case 
(and I'd be happy to help on that).

Regards,
Tommaso

> 
> Chetan Mehrotra
> 
> [1] http://directmemory.apache.org/
> [2] https://code.google.com/p/kryo/
> [3] 
> https://github.com/chetanmeh/jackrabbit-oak/compare/apache:ab955ffd40e23a9f8aee87f9076bc045b643e35d...offheap

Reply via email to