You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mutations via GraphQL which I introduced recently, won't work the same way as our bulk loader does. Because these mutations would need to go over the network; while our bulk loader, even in distributed state, does not. The general idea to do mutations is as follows:
Step 1: Network calls to assign Uids for all Xids.
Step 2: Distributed based on predicates, and multiple network calls to reach all corresponding servers. One RPC each server to load up the edges.
Step 3: Wait for success. If success, return or run the query part of GraphQL. In case of failure, return to client; and let them retry. Later, we can add a retry loop here. Note that without transactions, some of these would have been applied; without any particular way to revert their changes (potential overwrites over data before this change was made). *
The transactional behaviour would fall under distributed transactions, which we don't intend to support at least until v1.0. So, for now, we'll have this issue where a failure would result in some unapplied RDFs -- in general, until distributed transactions, we don't provide atomicity over multiple RDFs. Each RDF is applied atomically; and independently from others.
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
Mutations via GraphQL which I introduced recently, won't work the same way as our bulk loader does. Because these mutations would need to go over the network; while our bulk loader, even in distributed state, does not. The general idea to do mutations is as follows:
Step 1: Network calls to assign Uids for all Xids.
Step 2: Distributed based on predicates, and multiple network calls to reach all corresponding servers. One RPC each server to load up the edges.
Step 3: Wait for success. If success, return or run the query part of GraphQL.
In case of failure, return to client; and let them retry. Later, we can add a retry loop here. Note that without transactions, some of these would have been applied; without any particular way to revert their changes (potential overwrites over data before this change was made). *
The text was updated successfully, but these errors were encountered: