How to measure the actual replication time in a Neo4j cluster?

13 views
Skip to first unread message

Nikolay Vasilev

unread,
Jul 1, 2016, 10:45:40 AM7/1/16
to Neo4j
Hi All,

I am working on the architecture of a new project and we are estimating whether Neo4j is the storage mechanism for us. 

The non-functional requirements are quite stringent, e.g. response time under 30ms for read and 50 ms for write.

We have already achieved read/write execution times way under the requirements, e.g. under 10ms, but these are measured in the slaves (for reads) and master (for write) only. (We are talking about a cluster of 1 master and two slaves, deployed on AWS, with database of 125 000 000 nodes and 150 000 000 relationships)

Right now we are trying to measure the exact (or the closest possible to runtime) replication time after a write (create/update/delete) on master to the slaves. 

I would like to ask whether there is a tool/framework, which measures this replication time or whether there is a clever way to intercept the replication and measure it. 

I couldn't find any and started thinking on solutions on my own, but I am not sure whether they are good (or precise enough).

The first thing is to use event sourcing mechanism internal for Neo4j (if there is such), which allows triggering of events on node/relationship modification which could be intercepted by my code and thus the replication time precisely measured on the slaves. I am afraid I cannot find anything like this though (except the GA's OGM transaction events, which are not useful in my case). 

The alternative is to repeatedly query the slaves after a write is executed on the master which would give us approximated replication time. I didn't see any tools which measure the replication in that way either, that is why I am curious whether you could recommend me any tool for measuring the replication time from master to slave or an idea how would you do it.

Regards,
Nikolay
Reply all
Reply to author
Forward
0 new messages