Some questions

Hi, Nebula team

Have a nice day.

I have some questions below:

  1. About the shell execution result, Got xxx rows, Time spent: t1 / t2 s, would you please explain what is the meaning of the t1 and t2 ?

  2. Do you have the performance report as a reference? (ex. n machine, extract m nodes, and y edges, elapsed time)

  3. I found that I have 3 graph machines, but my request is always executed on the only machine. Is is available to improve load balance?

  4. I use the nebula shell on the local nebula machine with a 3-node cluster, however, for 3 million edges of 3 hops bidirect GO query without any filter, it takes me 40 minutes. Is it any way to troubleshoot which component or stage is the bottleneck?

Looking forward to your message.

Nebula User

please reference the document here

Performance benchmark test on LDBC dataset is on the way. We will report it in the near future.

You can check whether all partition leaders are placed in that machine. If so, you can balance their distribution by the command: BALANCE LEADER. Reference document is here.

Does your graph have some big vertices which have too many out edges ? If so, you should limit the results of each hop. Here is how to configure the option.

1 Like

Hi, @yee

Thanks for your quick response.

Now, I have a performance issue below:

  1. I have 3 node cluster, 3 graphd, 3 stroaged
  2. I query for a node within 2 steps, the number of the result edges are between [1 - billions]
  3. Some of the queries’s result with hundreds or smaller than hundred edges spent the 5 - 10sec in the server time.

I think it is due to the worker and sub-task queuing time. Do you have any suggestion or hint to help me troubleshoot this issue?

For Nebula’s introudction, Nebula Graph is an open-source graph database unmatched in its ability to host super large-scale graphs using billions of vertices (nodes) and trillions of edges with milliseconds of latency. This empowers businesses to reveal untapped value buried in complex data.

My expectation is that the query under the limited multi-thread queries spend in milli-second.

Looking forward to your message.

Best Regards,
Nebula User

Thanks for your feedback.

First of all, how do you connect to NebulaGraph server? use console? or use nebula client, like nebula-java? If you use console, it’s time-consuming for outputting many results of query response to your screen.

Now nebula only allow all queries to read and write data from the leader of each partition. And the machine where leader is located will queue all requests when all threads of thread pool are busy. So these long term queries will occupy the thread resources for a long time. This will increase some queries latency. Nebula will introduce some resource isolation mechanism in next version to solve this issue.

According to your description, if your queries always return too many results, you should consider whether to change the graph model to avoid too many big vertices or whether to filter/sample some results within each step.

Best Wishes!

Hi, @yee

Thanks for your quick response.

I queried the Nebula DB via the sync Java client.

I would like to know any analysis tool or command to analyze the time cost distribution or slow queries from the system log or level?

Best Regards,
Nebula User

Hi @chenzx01

Sorry for the late reply.

Nebula has collected some runtime metrics for user to know performance information. You can see it here. But there is no a query analysis tool or slow query management system at present. So it maybe need some your effort to implement this function in client side temporarily according to each query response latency time.

Hope it’s useful for you.

Best Wishes.

Hi, @yee

Thanks for your quickly reply.

While restarting the Nebula service, how can I make sure the metad, graphd, and storaged are ready?

I encounter a problem is that some GO queries via Java Client got the Get dest/src prop failed, after restarting the all service.

Based on the error logs of the metad, graphd, and storaged, only see lots of the WAL error log.

Best Regards,
Nebula User

hi @chenzx01

While restarting the Nebula service, how can I make sure the metad, graphd, and storaged are ready?

You can execute SHOW HOSTS to make sure the services are ready.

I encounter a problem is that some GO queries via Java Client got the Get dest/src prop failed, after restarting all service.

Could you give the log of the graphd and storage?