- nebula version: 3.5
- Deployment method: stand-alone
- Installation method: RPM
- Whether to use the production environment: N
- Hardware information: memory 62G
- Specific description of the problem When doing a query, it can still be queried when the data volume is at the level of one million, but it cannot be queried when the amount of data is at the level of 100 million. 10 minutes or so are timed out.
What I understand is that the efficiency of querying through vid will be higher. If there is an index, the query should not time out. Is there a problem with my writing method? Is there any room for optimization? I hope to get advice from you guys!
The current amount of data in nebula:
Query statement 1:
match p = (s:securityop)-[ov:overring]->(o:`order`)-[re:refund]->(t:tender)
where id(t) == '111'
and id(s) == '222'
with id(s) as sid,s.securityop.name as sname,s.securityop.phone as sphone,collect(id(o)) as list_order_number, o.`order`.store_code as store_code, t,count(re) as over_count, id(t) as tid, t.tender.is_empy as t_is_empy,collect(distinct o.`order`.business_day) as business_day
where over_count > 3
match (s)-[ov]->()-[re]->(t)-[pa:pay]->(o2:`order`)-[e]->(y:yumid)
where id(o2) in list_order_number
with sid,sname,sphone,list_order_number,store_code,over_count,tid,t_is_empy,business_day,collect(distinct id(y)) as yid
return sid,sname,sphone,list_order_number, store_code, over_count, tid,t_is_empy,business_day, yid
order by over_count desc
Log of query statement 1:
der_number, store_code, over_count, tid,t_is_empy,business_day, yid order by over_count desc
I20230816 09:48:30.786085 24135 FunctionUdfManager.cpp:93] Load UDF so library: /home/nebula/dev/nebula/udf/
E20230816 09:48:30.786172 24135 FunctionUdfManager.cpp:41] UDF Folder doesn't Exist!
I20230816 09:53:30.786302 24135 FunctionUdfManager.cpp:93] Load UDF so library: /home/nebula/dev/nebula/udf/
E20230816 09:53:30.786404 24135 FunctionUdfManager.cpp:41] UDF Folder doesn't Exist!
I20230816 09:54:13.822791 3668 SwitchSpaceExecutor.cpp:45] Graph switched to `new_xbr_main', space id: 44
I20230816 09:58:30.786639 24135 FunctionUdfManager.cpp:93] Load UDF so library: /home/nebula/dev/nebula/udf/
E20230816 09:58:30.786741 24135 FunctionUdfManager.cpp:41] UDF Folder doesn't Exist!
E20230816 10:02:15.162722 3864 StorageClientBase-inl.h:224] Request to "127.0.0.1":9779 time out: TTransportException: Timed out
E20230816 10:02:15.166168 3668 StorageClientBase-inl.h:143] There some RPC errors: RPC failure in StorageClient with timeout: TTransportException: Timed out
E20230816 10:02:15.173378 3668 StorageAccessExecutor.h:47] Traverse failed, error E_RPC_FAILURE, part 1
E20230816 10:02:15.173727 3673 QueryInstance.cpp:151] Storage Error: RPC failure, probably timeout., query: match p = (s:securityop)-[ov:overring]->(o:`order`)-[re:refund]->(t:tender) where id(t) == '111' and id(s) == '222' with id(s) as sid,s.securityop.name as sname,s.securityop.phone as sphone,collect(id(o)) as list_order_number, o.`order`.store_code as store_code, t,count(re) as over_count, id(t) as tid, t.tender.is_empy as t_is_empy,collect(distinct o.`order`.business_day) as business_day where over_count > 3 match (s)-[ov]->()-[re]->(t)-[pa:pay]->(o2:`order`)-[e]->(y:yumid) where id(o2) in list_order_number with sid,sname,sphone,list_order_number,store_code,over_count,tid,t_is_empy,business_day,collect(distinct id(y)) as yid return sid,sname,sphone,list_order_number, store_code, over_count, tid,t_is_empy,business_day, yid order by over_count desc
Query statement 2:
match p = (s:securityop)-[ov:overring]->(o1:`order`)-[re:refund]->(t:tender)-[pa:pay]-(o2)-[e]->(y:yumid)
where id(s) == '222'
and id(t) == 111'
return p
;
Log of query statement 1:
I20230816 10:10:02.869058 3690 SwitchSpaceExecutor.cpp:45] Graph switched to `new_xbr_main', space id: 44
I20230816 10:10:20.432194 3673 SwitchSpaceExecutor.cpp:45] Graph switched to `new_xbr_main', space id: 44
I20230816 10:11:03.673588 3690 SwitchSpaceExecutor.cpp:45] Graph switched to `new_xbr_main', space id: 44
I20230816 10:12:05.917109 3639 SwitchSpaceExecutor.cpp:45] Graph switched to `new_xbr_main', space id: 44
I20230816 10:13:30.787408 24135 FunctionUdfManager.cpp:93] Load UDF so library: /home/nebula/dev/nebula/udf/
E20230816 10:13:30.787499 24135 FunctionUdfManager.cpp:41] UDF Folder doesn't Exist!
I20230816 10:18:30.787657 24135 FunctionUdfManager.cpp:93] Load UDF so library: /home/nebula/dev/nebula/udf/
E20230816 10:18:30.787750 24135 FunctionUdfManager.cpp:41] UDF Folder doesn't Exist!
E20230816 10:20:10.769313 3903 StorageClientBase-inl.h:224] Request to "127.0.0.1":9779 time out: TTransportException: Timed out
E20230816 10:20:10.771517 3641 StorageClientBase-inl.h:143] There some RPC errors: RPC failure in StorageClient with timeout: TTransportException: Timed out
E20230816 10:20:10.779794 3641 StorageAccessExecutor.h:47] Traverse failed, error E_RPC_FAILURE, part 1
E20230816 10:20:10.780009 3669 QueryInstance.cpp:151] Storage Error: RPC failure, probably timeout., query: match p = (s:securityop)-[ov:overring]->(o1:`order`)-[re:refund]->(t:tender)-[pa:pay]-(o2)-[e]->(y:yumid) where id(s) == '222' and id(t) == '111' return p ;