* filer: keep .system internal folder in the default SQL table
Bucket-table SQL stores read the first path segment under /buckets as a
bucket name. The ListBuckets owner index lives at /buckets/.system/..., so
every write there hit isValidBucket(".system") == false and returned
"invalid bucket name .system", flooding the filer log on the postgres/mysql
backends. Route dot-prefixed internal folders to the default table by their
full path, like any other non-bucket entry.
* filer: keep .system internal folder in the default leveldb3 DB
Same guard as the SQL stores: leveldb3 would otherwise open a separate DB
for the .system owner-index folder instead of keeping it in the default DB.
* filer: keep .system internal folder under the default ydb prefix
Skips a DescribeTable round trip per operation on the .system owner-index
path, which never resolves to a real bucket table.
* filer: keep .system internal folder in the default arangodb collection
Avoids creating a stray collection for the .system owner-index folder.
YDB
database: https://github.com/ydb-platform/ydb
go driver: https://github.com/ydb-platform/ydb-go-sdk
options:
[ydb]
enabled=true
dsn=grpcs://ydb-ru.yandex.net:2135/?database=/ru/home/username/db
prefix="seaweedfs"
useBucketPrefix=true
poolSizeLimit=50
dialTimeOut = 10
Authenticate produced with one of next environment variables:
-
YDB_SERVICE_ACCOUNT_KEY_FILE_CREDENTIALS=<path/to/sa_key_file>— used service account key file by path -
YDB_ANONYMOUS_CREDENTIALS="1"— used for authenticate with anonymous access. Anonymous access needs for connect to testing YDB installation -
YDB_METADATA_CREDENTIALS="1"— used metadata service for authenticate to YDB from yandex cloud virtual machine or from yandex function -
YDB_ACCESS_TOKEN_CREDENTIALS=<access_token>— used for authenticate to YDB with short-life access token. For example, access token may be IAM token -
YDB_CONNECTION_STRING="grpcs://endpoint/?database=database" -
i test using this dev database:
make dev_ydb