Category: Database, Data

Nebula Graph is no exception as a distributed graph database. Thanks to the separation between query and storage layers, Nebula Graph only exposes simple kv interfaces in the storage layer.

Seen from the figure above, the three operations, write 1 by client 1 (i.e. 1: write1), write 4 by client 3 (i.e. 3: write4), and read 1 by client 4 (i.e. 4: read1), overlapped in processing time.

Here’s how: The initial value is empty yet client 4 gets 1 for its read request, which indicates that the read operation by client 4 must have begun after the write 1 operation by client 1 and that write 4 by client 3 must have happened before write 1, or the older value 4 would be returned for the read request by client 4.

After request write 2 is sent by the client, the leader processes it based on the previously described process, informs the client of a successful write, and is then killed.

Related Articles