0
  • 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:

enter image description here

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 ;

0 Answers0