aboutsummaryrefslogtreecommitdiff
path: root/weed/filer/arangodb/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filer/arangodb/readme.md')
-rw-r--r--weed/filer/arangodb/readme.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/weed/filer/arangodb/readme.md b/weed/filer/arangodb/readme.md
index e189811fb..57a594592 100644
--- a/weed/filer/arangodb/readme.md
+++ b/weed/filer/arangodb/readme.md
@@ -22,6 +22,39 @@ i test using this dev database:
`docker run -p 8529:8529 -e ARANGO_ROOT_PASSWORD=test arangodb/arangodb:3.9.0`
+
+## database structure
+
+
+arangodb has a few restrictions which require the use of a few tricks in order to losslessly store the data.
+
+### filer store
+
+arangodb does not support []byte, and will store such as a uint64 array. this would be a waste of space. to counteract this, we store the data as a length prefixed uint64 byteset.
+
+### filer kv
+
+same as above
+
+### filer buckets
+
+s3 buckets are implemented through arangodb collection. this allows us to do very fast bucket deletion by simply deleting the collection
+
+
+arangodb collection name rules is character set `azAZ09_-` with a 256 character max. however the first character must be a letter.
+
+
+s3 bucket name rule is the set `azAZ09.-` with a 63 characters max.
+
+the rules for collection names is then the following:
+
+1. if the bucket name is a valid arangodb collection name, then nothing is done.
+2. if the bucket name contains a ".", the "." is replaced with "_"
+3. if the bucket name now begins with a number or "_", the prefix "xN--" is prepended to the collection name
+
+this allows for these collection names to be used.
+
+
## features i don't personally need but are missing
[ ] provide tls cert to arango
[ ] authentication that is not basic auth