Tao Jie commented on MNEMONIC-464:

[~johnugeorge] [~qichfan]Thank you for reply. Our use case is to move java 
objects that occupying large heap space to non-volatile storage to save java 
heap space and improve gc performance. Actually in our case, we are not too 
concern about volatile object b being destroyed, because we have other 
reference to object b. What we need is to obtain object b through Durable 
object A. However if we keep a  Map<B_ID, B>, the overhead would be quite high 
and we have no idea if it is worthy.

> Support normal java object field in durable type
> ------------------------------------------------
>                 Key: MNEMONIC-464
>                 URL: https://issues.apache.org/jira/browse/MNEMONIC-464
>             Project: Mnemonic
>          Issue Type: New Feature
>    Affects Versions: 0.11.0
>            Reporter: Tao Jie
>            Assignee: Tao Jie
>            Priority: Major
> Today, we define a durable type(eg: DurableA), we may define a normal object 
> field(B b). When we restore a DurableA object a(eg: we put a into a 
> DurableHashMap and get it from the map later), its reference of b would lost. 
> As discussed with [~qichfan] offline, one solution is that we maintain a 
> Map<B_ID, B> to keep the reference of B and have a B_ID(long type) field in 
> DurableA. Then we can find the object b from restored object A.
> We can do this in the Mnemonic framework, and add a new type (maybe 
> DurableReference?) to support this situation. like:
> {code}
> class DurableA {
>  @DurableGetter
>   public abstract DurableReference<B> getFieldB();
>   @DurableSetter
>   public abstract void setFieldB(DurableReference<B> b, boolean destroy) 
> }
> {code}
> Then we can get object b by
> {code}
> a.getFieldB().get()
> {code}
> Any thought?

This message was sent by Atlassian JIRA

Reply via email to