Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should I use graphd-client or storaged-client? #20

Closed
GG2002 opened this issue May 11, 2024 · 3 comments
Closed

Should I use graphd-client or storaged-client? #20

GG2002 opened this issue May 11, 2024 · 3 comments

Comments

@GG2002
Copy link

GG2002 commented May 11, 2024

General Question

I wanna add Nebula support for Opendal, so I need to treat Nebula as a KV-like database. I plan to do like this:

// create test space, its vid type should be str
CREATE SPACE test_kv(PARTITION_NUM = 20, VID_TYPE = FIXED_STRING(21));

// create kv tag
CREATE TAG kv(value string);

// insert key-value pair
INSERT VERTEX kv VALUES "test":("23");

// get value by key
FETCH PROP ON kv "test" YIELD kv.id as key, kv.value as value;
+-------+
| value |
+-------+
| "23"  |
+-------+

// delete key-value pair
DELETE VERTEX "test";

I found that there are three clients here.

I am curious whether using graphd-client or storaged-client is better. In terms of feeling, my requirement is very simple, may the latency of connecting to storaged server directly be smaller?

@GG2002
Copy link
Author

GG2002 commented May 11, 2024

I have tried to test the benchmark of these two methods, but I encountered the same problem #18 while the graphd-client worked correctly.

@wey-gu
Copy link

wey-gu commented May 11, 2024

Normally the storage client is for analytical query that scans all data per tag or edge type. While graphd client is the normal one takes graph queries.

So it really depends on what we'd like to achieve.

One pitfall for storage client is that, it requires to get list of storage host from metad and access storage host from the addresses maintained in metad(service discovery), thus those addresses may not always accessible from the client side(many clusters were deployed in a way treating meta and storage not exposed services).

Implementing graphd may be the goto path that will always work. While it won't be a scalable approach when OpenDAL towards NebulaGraph as ETL purposes (scanning whole graph data)

@GG2002
Copy link
Author

GG2002 commented May 12, 2024

One pitfall for storage client is that, it requires to get list of storage host from metad and access storage host from the addresses maintained in metad(service discovery), thus those addresses may not always accessible from the client side(many clusters were deployed in a way treating meta and storage not exposed services).

Implementing graphd may be the goto path that will always work. While it won't be a scalable approach when OpenDAL towards NebulaGraph as ETL purposes (scanning whole graph data)

Thanks for your reply. I'll think about these things carefully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants