diff options
| author | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-05-12 12:23:02 +0500 |
|---|---|---|
| committer | Konstantin Lebedev <9497591+kmlebedev@users.noreply.github.com> | 2022-05-12 12:23:02 +0500 |
| commit | d12a423aa0c6d8244d4a46ed2ec8804ad64f2081 (patch) | |
| tree | 90d354a58c6e73a171738b9397e32d08d2ef843f /weed | |
| parent | e41b11b0045376700d4ab047a54a2758a69552ea (diff) | |
| download | seaweedfs-d12a423aa0c6d8244d4a46ed2ec8804ad64f2081.tar.xz seaweedfs-d12a423aa0c6d8244d4a46ed2ec8804ad64f2081.zip | |
refactor
add some tests
https://github.com/chrislusf/seaweedfs/pull/2996
Diffstat (limited to 'weed')
| -rw-r--r-- | weed/filer/ydb/ydb_store.go | 16 | ||||
| -rw-r--r-- | weed/filer/ydb/ydb_store_test.go | 19 |
2 files changed, 22 insertions, 13 deletions
diff --git a/weed/filer/ydb/ydb_store.go b/weed/filer/ydb/ydb_store.go index b06b35ac2..1e3a55a09 100644 --- a/weed/filer/ydb/ydb_store.go +++ b/weed/filer/ydb/ydb_store.go @@ -15,7 +15,6 @@ import ( "github.com/ydb-platform/ydb-go-sdk/v3" "github.com/ydb-platform/ydb-go-sdk/v3/sugar" "github.com/ydb-platform/ydb-go-sdk/v3/table" - "github.com/ydb-platform/ydb-go-sdk/v3/table/options" "github.com/ydb-platform/ydb-go-sdk/v3/table/result" "github.com/ydb-platform/ydb-go-sdk/v3/table/result/named" "github.com/ydb-platform/ydb-go-sdk/v3/table/types" @@ -28,7 +27,6 @@ import ( const ( defaultDialTimeOut = 10 - maxRowsInQuery = 1000 // Limit number of rows in query results https://cloud.yandex.com/en-ru/docs/ydb/concepts/limits-ydb ) var ( @@ -112,14 +110,13 @@ func (store *YdbStore) initialize(dirBuckets string, dsn string, tablePathPrefix func (store *YdbStore) doTxOrDB(ctx context.Context, query *string, params *table.QueryParameters, tc *table.TransactionControl, processResultFunc func(res result.Result) error) (err error) { var res result.Result if tx, ok := ctx.Value("tx").(table.Transaction); ok { - res, err = tx.Execute(ctx, *query, params, options.WithQueryCachePolicy(options.WithQueryCachePolicyKeepInCache())) + res, err = tx.Execute(ctx, *query, params) if err != nil { return fmt.Errorf("execute transaction: %v", err) } } else { err = store.DB.Table().Do(ctx, func(ctx context.Context, s table.Session) (err error) { - _, res, err = s.Execute(ctx, tc, *query, - params, options.WithQueryCachePolicy(options.WithQueryCachePolicyKeepInCache())) + _, res, err = s.Execute(ctx, tc, *query, params) if err != nil { return fmt.Errorf("execute statement: %v", err) } @@ -240,10 +237,6 @@ func (store *YdbStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPath } truncated := true eachEntryFuncIsNotBreake := true - shortLimit := limit - if limit > maxRowsInQuery { - shortLimit = maxRowsInQuery * 2 - } entryCount := int64(0) for truncated && eachEntryFuncIsNotBreake { if lastFileName != "" { @@ -253,15 +246,12 @@ func (store *YdbStore) ListDirectoryPrefixedEntries(ctx context.Context, dirPath } } restLimit := limit - entryCount - if maxRowsInQuery > restLimit { - shortLimit = restLimit - } queryParams := table.NewQueryParameters( table.ValueParam("$dir_hash", types.Int64Value(util.HashStringToLong(*shortDir))), table.ValueParam("$directory", types.UTF8Value(*shortDir)), table.ValueParam("$start_name", types.UTF8Value(startFileName)), table.ValueParam("$prefix", types.UTF8Value(prefix+"%")), - table.ValueParam("$limit", types.Uint64Value(uint64(shortLimit))), + table.ValueParam("$limit", types.Uint64Value(uint64(restLimit))), ) err = store.doTxOrDB(ctx, query, queryParams, roTX, func(res result.Result) error { var name string diff --git a/weed/filer/ydb/ydb_store_test.go b/weed/filer/ydb/ydb_store_test.go new file mode 100644 index 000000000..cb3c77018 --- /dev/null +++ b/weed/filer/ydb/ydb_store_test.go @@ -0,0 +1,19 @@ +//go:build ydb +// +build ydb + +package ydb + +import ( + "github.com/chrislusf/seaweedfs/weed/filer/store_test" + "testing" +) + +func TestStore(t *testing.T) { + // run "make test_ydb" under docker folder. + // to set up local env + if false { + store := &YdbStore{} + store.initialize("/buckets", "grpc://localhost:2136/?database=local", "seaweedfs", true, 10, 50) + store_test.TestFilerStore(t, store) + } +} |
