the-data-lab / GraphOne

"GraphOne: A Data Store for Real-time Analytics on Evolving Graphs", Usenix FAST'19
GNU General Public License v3.0
58 stars 31 forks source link

Is GraphOne able to use multiple threads to speed up the archiving? #24

Closed chenht2022 closed 1 year ago

chenht2022 commented 1 year ago

Dear authors,

Thanks for releasing the source code of GraphOne. I'm having some trouble when testing it. The situation is, I want to update 300,000 edges(half add and half delete) per second into the graph and a static view over that graph is updated once per second. But I get the result below which shows that the archiving process cannot keep up with the edge updating speed.

Threads Count = 16
update_view 1 start  time=1.00
----------------
Archived_edges = 1027932160
Non-archived edges : 223467
Degree Out of 1 = 319
----------------
update_view 1 ok  time=1.38

update_view 2 start  time=2.00
----------------
Archived_edges = 1027932160
Non-archived edges : 523467
Degree Out of 1 = 319
----------------
update_view 2 ok  time=2.35

update_view 3 start  time=3.00
----------------
Archived_edges = 1028128768
Non-archived edges : 626859
Degree Out of 1 = 319
----------------
update_view 3 ok  time=3.38

I have roughly read the source code and I guess that archiving is done by a single background thread. So, I am wondering if GraphOne is able to use multiple threads to speed up the archiving with some modifications on source code. Thanks!

pradeep-k commented 1 year ago

I will respond to you in 2 days. Thanks for the message.

pradeep-k commented 1 year ago

GraphOne is designed to use multiple threads for archiving. Does "top" command shows only 100% CPU or more. I have also added you to our latest version of graphone. Do let me know if that also does not work.

chenht2022 commented 1 year ago

This version of the code perfectly solves my question. Thank you very much!

pradeep-k commented 1 year ago

Thanks for the feedback.