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.
