You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Marko A. Rodriguez (JIRA)" <ji...@apache.org> on 2015/04/01 21:46:52 UTC

[jira] [Created] (TINKERPOP3-607) Extend the concept of DetachedXXX

Marko A. Rodriguez created TINKERPOP3-607:
---------------------------------------------

             Summary: Extend the concept of DetachedXXX
                 Key: TINKERPOP3-607
                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-607
             Project: TinkerPop 3
          Issue Type: New Feature
          Components: io, structure
    Affects Versions: 3.0.0.GA
            Reporter: Marko A. Rodriguez


Many moons ago we had {{ReferencedVertex}}, {{ReferencedEdge}}, etc. These were extremely simply objects of the form:

{noformat}
public ReferenceVertex implements Vertex { 
  private final Object id;
  ...
}
{noformat}

We got rid of these in favor of having ONLY {{DetachedVertex}}, {{DetachedEdge}}, etc. However, I think there is more to the story of "detachment." Here is the landscape I see:

*DETACH SEMANTICS*

* Detach for reference -- detach a vertex so it can later be attached to the same graph.
* Detach for adding -- detach a vertex so it can later be added to another graph.

*ATTACH SEMANTICS*

* Attach to an existing graph -- find the actual vertex that is referenced by this detached vertex and return the actual vertex.
* Add to an existing graph -- add the detached vertex to the graph.

If, lets say, a property is detached "for adding" then the only information it needs to have is its {{String}} key and {{Object}} value. There is no need to have a reference to its original element, etc.

Likewise, if, lets say, a vertex is detached "for adding" then the only information it needs to have is its {{Object}} id and {{String}} label. However, if its detached "for reference" then all it needs is its {{Object}} id.

These subtleties are important when considering how much big the {{DetachedXXX}} objects are and how regularly they are used in Gremlin OLAP and Gryo. We should really consider the minimal amount of data needed in all these areas....



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)