Skip to content
This repository was archived by the owner on Dec 13, 2023. It is now read-only.

Conversation

@Simran-B
Copy link
Collaborator

Exception: while parsing file '/work/ArangoDB/Documentation/DocuBlocks/Rest/Documents/post_create_document.md' error: Duplicate route

@Simran-B Simran-B added the 9 WIP label Sep 13, 2019

![Cluster Sharding](images/cluster_sharding.jpg)

From the outside this process is fully transparent: >ou talk to any _Coordinator_
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
From the outside this process is fully transparent: >ou talk to any _Coordinator_
From the outside this process is fully transparent: you talk to any _Coordinator_

From the outside this process is fully transparent: >ou talk to any _Coordinator_
and whenever you read or write data
it will automatically figure out where the data is stored (read) or to
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
it will automatically figure out where the data is stored (read) or to
it will automatically figure out where the data is (to be) stored.
From the outside this process is fully transparent: >ou talk to any _Coordinator_
and whenever you read or write data
it will automatically figure out where the data is stored (read) or to
be stored (write). The information about the _shards_ is shared across the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
be stored (write). The information about the _shards_ is shared across the
The information about the _shards_ is shared across the _Coordinators_ using the _Agency_.
Note however that if you change the shard keys from their default `["_key"]`, then finding
a document in the collection by its primary key involves a request to
every single shard. However this can be mitigate: All CRUD APIs and AQL
support taking the shard key values as a lookup hint.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do you hint the shard key in practice?

support taking the shard keys as a lookup hint.
every single shard. However this can be mitigated: All CRUD APIs and AQL
support taking the shard keys as a lookup hint. Just send them as part
of the update / replace or removal operation.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume the respective attributes need to be present in the request for the CRUD APIs?
In case of AQL, does it work with all syntax variants?

  • UPDATE "docKey" WITH { myShardAttribute: "foo", ... }
  • UPDATE { _key: "docKey", myShardAttribute: "foo", ...}
  • UPDATE { _key: "docKey", myShardAttribute: "foo" } WITH { ... } ???
  • UPSERT { _key: "docKey", myShardAttribute: "foo" } ... ?
  • UPSERT { _key: "docKey" } INSERT { myShardAttribute: "foo", ... } UPDATE { myShardAttribute: "foo", ... } ?
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes feel free to add it to the docs yourself. This always used to work reliably except for remove operations, new in 3.6 is only that it now does work everywhere

@jsteemann jsteemann removed the 9 WIP label Sep 27, 2019
@jsteemann jsteemann merged commit 9d6013b into master Sep 27, 2019
@jsteemann jsteemann deleted the feature/batch-api-refactor branch September 27, 2019 11:55
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

3 participants