Hi, I am searching a way to save information on modified vertices and edges in a transactional way: either the modification is saved and so is the modification info, either none of them is saved.
By reading posts in this forum it seems that hooks are the way to go. I would just need some more info on how hooks work. 1/ where are dynamic hooks running? Some posts indicate that it is the "engine thread" that is running hooks ( https://groups.google.com/forum/#!newtopic/orient-database/orient-database/aE6mIf3A3H0 ) Other indicate that it is run client side ( https://groups.google.com/forum/#!searchin/orient-database/hooks$20transaction|sort:relevance/orient-database/gfBtY_VC7ko/OjMijNQdPKoJ ) I suppose that by "client side" you mean the thread answering client requests, server side. Otherwise the nodejs client would not be able to run them. 2/ Are modification performed by hooks part of the transaction that triggers them. If a conflict happens, are hooks modifications rollbacked with the rest of the transaction? It seems that this is the case but I prefer to be sure. 3/ is dynamic hook addition using MVCC? For example: - client A is modifying, in a transaction, a vertex of class MyClass - client B adds a onBeforeUpdate hook to MyClass - client A saves the transaction. Does the transaction conflict? 4/ Is there a performance impact by just subclassing OTriggered without adding hooks? 5/ Is there a benchmark showing the performance impact of dynamic hooks? 6/ Is the dynamic hooks performance problem due to the functions language (currently javascript if I understand correctly)? If yes, will it be better with Groovy functions once they are possible ( https://github.com/orientechnologies/orientdb/issues/2821)? Kind regards, -- --- 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.
