JanusGraph / janusgraph-foundationdb

FoundationDB storage adapter for JanusGraph
Other
53 stars 18 forks source link

Usage patterns for foundation db #49

Closed vrunda-graph closed 3 years ago

vrunda-graph commented 3 years ago

Background: We are trying to use foundation db via janusgraph adaptor. We want to have a clarification on whether or not our usecase will work on foundation db. Can you please help us clarify?

  1. Our queries are long running queries as we detect patterns and likely to take 5-10 mins. Is there any way to by-pass the 5 sec timeout for such queries. Reference post https://forums.foundationdb.org/t/layer-for-read-write-transactions-lasting-longer-than-5-seconds/1318
  2. Graph stores vertices as objects (rows) and edges as properties (columns) in Hbase. We believe that will translate to large vertex object in foundation db. We are able to scan through all vertices by using boundaryKeys(). but if the graph has vertices with more edges (say 10,000) or more, then same code which worked before (scan through all vertices) is now giving "Transaction is too old to perform reads or be committed". Is there a work around?
  3. Index: Often we land up in creating new index post the data is loaded. Is there a way to run index on large database (in foundation db) without getting into transaction old / time out error?
rngcntr commented 3 years ago

The transaction time bounds are indeed one of the major concerns about FDB. Regarding your questions:

  1. Potentially possible for read-only queries. But currently not implemented.
  2. Objects in FDB should not grow extraordinarily large. Instead, the row and column keys are merged to form a unified key which will then only reference the amount of data that is stored within a column in other backend solutions. And again, your long running read query error can be solved by changing the isolation level of read-only requests.
  3. Creating an index needs write access. And sadly, that's a whole other story than read-only. Currently, I don't see a way to achieve this without dropping consitency.