Martin ...

The application that I'm building has a web front-end and a bunch of
backend processes that generate updates to the graph. Each update is
represented as a JSON document that defines the operations that will take
place (upsert, detach, delete), the nodes / edges that will be affected,
and any properties that will be modified.  There is a common Ingester that
is responsible for applying the updates to the graph in a transaction. In
our case, all nodes are upserted (update if the node exists, insert if it
doesn't) are applied first, then all edges are upserted, then edges are
detached, and finally nodes are deleted. We have indexes defined for each
class (nodes and edges) to ensure uniqueness. We use heavyweight edges
because (a) indexes, and (b) we have properties on our edges.

You can see a rough approximation of our algorithm here (
https://github.com/wcraigtrader/ogp); it only covers the upsert part of the
ingester, but the detach and delete operations are similar. (This prototype
was done for performance testing, which is why the schema is all
foo-bar-baz instead of real class names -- our actual schema/application is
proprietary.)

- Craig -

On Wed, Jun 17, 2015 at 12:32 PM, Martin Kuhn <[email protected]>
wrote:

> I would like to know a good strategy in terms of performance how to handle
> edges (via Java API)
>
> e.g. for  Vertex Item -> Edge TaggedAs -> Vertex Tag
>
> On update (e.g. triggered from a Web-application) I have to ensure data
> consistence (not to have orphans etc.).
>
> So I read the vertex "Item" and
>
>    - merge the tags manually (means reads edges and check if already
>    existent and so on...)
>    - remove all existing edges and create new ones
>    - other?
>
> Can you share your experience?
>
> TIA
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups
> "OrientDB" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to