Pick of the Week at NebulaGraph - Release of NebulaGraph Studio v1.1.0-beta
Normally the weekly issue covers NebulaGraph Updates and Community Q&As. If something major happens, it will also be covered in the additional Events of the Week section.
Events of the Week
Studio v1.1.0-beta was uncovered with a major feature: supporting the
Besides, it is also armed with these updates:
- Supports vertex query by Index
- Supports pre-processing data to generate a VID for a vertex query
- Supports importing results of vertex query into Explore for visualized graph exploration
- Fixed the bug that the console cannot correctly display the result for a vertex query for a boolean property
You are more than welcome to give Studio a shot and raise issues. Here is where you can get it: https://github.com/vesoft-inc/nebula-web-docker
The updates of Nebula in the last week:
• When a query is partially successful, a warning message will appear to keep users informed of the failure. For more information, check this pull request: https://github.com/vesoft-inc/nebula/pull/2290
• Some configuration options are added for dynamically configuring RocksDB. For more information, check this pull request: https://github.com/vesoft-inc/nebula/pull/2291, which is contributed by @chenxu14
• Fixed the bug that multiple services cannot be started on the same node in some cases. For more information, check this pull request: https://github.com/vesoft-inc/nebula/pull/2289
• The snapshot design is enhanced. Snapshots are created only when necessary and the performance is improved. For more information, check this pull request: https://github.com/vesoft-inc/nebula/pull/2287
Q: How can the UUID() function of NebulaGraph ensure the universal uniqueness of the generated VIDs?
A: A UUID has 64 bits, of which the higher 32 bits are the result of the MurmurHash function and the lower 32 bits are the timestamps of the current time. For the implementation, see these source code.
Further push: In a distributed environment, which shares the same timestamp, can the MurmurHash function give unique values for UUIDs?
A: Here is how the UUID generation algorithm is implemented:
When a string is input, it is processed by the Hash function on the graphd side to get a temporary hash value, and then this value is processed by the MOD function to get the exact partition where the exact UUID calculation happens. On the storaged side, all reading and writing requests must be processed by the leader, so even though some strings may have the same hash value, they must wait for the storaged service to process the request, which will add different timestamps to the UUID, and the universal uniqueness is ensured.
We use the same MurmurHash function to process the input string and the higher 32 bits of the UUID, so after processed by the MOD function, the generated VID and the temporary Hash value mentioned above will be located in the same partition.
Recommendation for You
In this post, we will access the open source graph database NebulaGraph with NetworkX and visualize the complex character connections in _Game of Thrones_ with Gephi.