switch to multi collection, change readme

This commit is contained in:
elee
2022-03-18 21:51:16 -05:00
parent 1cea6c73d3
commit 411c0df3fe
5 changed files with 217 additions and 170 deletions

View File

@@ -3,7 +3,6 @@
database: https://github.com/arangodb/arangodb
go driver: https://github.com/arangodb/go-driver
options:
```
@@ -11,40 +10,43 @@ options:
enabled=true
db_name="seaweedfs"
servers=["http://localhost:8529"]
#basic auth
user="root"
pass="test"
# whether to enable fulltext index
# this allows for directory prefix query
fulltext=true
# tls settings
insecure_skip_verify=true
```
supports buckets with an extra field in document.
omitempty means extra space is not used.
i test with
i test using this dev database:
`docker run -p 8529:8529 -e ARANGO_ROOT_PASSWORD=test arangodb/arangodb:3.9.0`
## todo
performance test
## features i don't personally need but are missing
[ ] provide tls cert to arango
[ ] authentication that is not basic auth
[ ] synchronise endpoint interval config
[ ] automatic creation of custom index
[ ] configure default arangodb collection sharding rules
[ ] configure default arangodb collection replication rules
## thoughts
should there be one collection per bucket? this would make deleting a bucket O(1) instead of O(n)
## comparison
## complexity
ok, so if https://www.arangodb.com/docs/stable/indexing-index-basics.html#persistent-index is correct
it should be log time to the number of files in the directory
O(1)
- InsertEntry
- UpdateEntry
- FindEntry
- DeleteEntry
- KvPut
- KvGet
- KvDelete
and constant time if you have full directory + file
O(log(BUCKET_SIZE))
- DeleteFolderChildren
deleting a folder should be log time to number of folders + files that need to be deleted
O(log(DIRECTORY_SIZE))
- ListDirectoryEntries
- ListDirectoryPrefixedEntries