[
https://issues.apache.org/jira/browse/MNEMONIC-464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16361925#comment-16361925
]
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
(v7.6.3#76005)