-
Notifications
You must be signed in to change notification settings - Fork 4
chore: Add support for persistent store contract tests. #502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
2edfc8d
baeb833
eb918dd
d960e6f
14b2e22
d09ca12
b9a13e4
9a95f3e
bdcb385
8d4e39c
e5bf095
cc44864
6cf1a3c
3fe6eb3
fc75921
d308c56
620d32b
8b4f028
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| # The SDK's store integrations are read-only sources for the Lazy Load data | ||
| # system, so it can't write data it receives, and a store can't be combined | ||
| # with a data source (the data system method is one of Lazy Load, Background | ||
| # Sync, or FDv2). | ||
|
|
||
| persistent data store/redis/read-write/initializes store when data received | ||
| persistent data store/redis/read-write/applies updates to store | ||
| persistent data store/redis/read-write/evaluation reflects streaming updates | ||
| persistent data store/redis/read-write/data source updates respect versioning | ||
| persistent data store/redis/read-write/data source deletions respect versioning | ||
| persistent data store/redis/read-write/ignores direct database modifications | ||
| persistent data store/redis/read-write/ignores dropped flags | ||
| persistent data store/redis/store mode read-write - with data source/no cache - ignores database until init key is set | ||
| persistent data store/redis/store mode read-write - with data source/no cache - ignores database when ds sends data | ||
| persistent data store/redis/store mode read-write - with data source/infinite cache - ignores database until init key is set | ||
| persistent data store/redis/store mode read-write - with data source/infinite cache - ignores database when ds sends data | ||
| persistent data store/redis/store mode read-write - with data source/ttl cache - ignores database until init key is set | ||
| persistent data store/redis/store mode read-write - with data source/ttl cache - ignores database when ds sends data | ||
| persistent data store/redis/store mode read - with data source/no cache - ignores database until init key is set | ||
| persistent data store/redis/store mode read - with data source/no cache - ignores database when ds sends data | ||
| persistent data store/redis/store mode read - with data source/infinite cache - ignores database until init key is set | ||
| persistent data store/redis/store mode read - with data source/infinite cache - ignores database when ds sends data | ||
| persistent data store/redis/store mode read - with data source/ttl cache - ignores database until init key is set | ||
| persistent data store/redis/store mode read - with data source/ttl cache - ignores database when ds sends data | ||
|
|
||
| persistent data store/dynamodb/read-write/initializes store when data received | ||
| persistent data store/dynamodb/read-write/applies updates to store | ||
| persistent data store/dynamodb/read-write/evaluation reflects streaming updates | ||
| persistent data store/dynamodb/read-write/data source updates respect versioning | ||
| persistent data store/dynamodb/read-write/data source deletions respect versioning | ||
| persistent data store/dynamodb/read-write/ignores direct database modifications | ||
| persistent data store/dynamodb/read-write/ignores dropped flags | ||
| persistent data store/dynamodb/store mode read-write - with data source/no cache - ignores database until init key is set | ||
| persistent data store/dynamodb/store mode read-write - with data source/no cache - ignores database when ds sends data | ||
| persistent data store/dynamodb/store mode read-write - with data source/infinite cache - ignores database until init key is set | ||
| persistent data store/dynamodb/store mode read-write - with data source/infinite cache - ignores database when ds sends data | ||
| persistent data store/dynamodb/store mode read-write - with data source/ttl cache - ignores database until init key is set | ||
| persistent data store/dynamodb/store mode read-write - with data source/ttl cache - ignores database when ds sends data | ||
| persistent data store/dynamodb/store mode read - with data source/no cache - ignores database until init key is set | ||
| persistent data store/dynamodb/store mode read - with data source/no cache - ignores database when ds sends data | ||
| persistent data store/dynamodb/store mode read - with data source/infinite cache - ignores database until init key is set | ||
| persistent data store/dynamodb/store mode read - with data source/infinite cache - ignores database when ds sends data | ||
| persistent data store/dynamodb/store mode read - with data source/ttl cache - ignores database until init key is set | ||
| persistent data store/dynamodb/store mode read - with data source/ttl cache - ignores database when ds sends data |
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Currently this SDK doesn't support read-write mode. It supports a purely lazy system for use with daemon mode.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. With FDv2 support we will want to standardize this with the FDv2 behavior. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # The SDK's store integrations are read-only sources for the Lazy Load data | ||
| # system, so it can't write data it receives back to the store. | ||
| persistent data store/redis/read-write/initializes store when data received | ||
| persistent data store/redis/read-write/applies updates to store | ||
| persistent data store/redis/read-write/data source updates respect versioning | ||
| persistent data store/redis/read-write/data source deletions respect versioning | ||
| persistent data store/redis/read-write/cache mode infinite/does not cache flag miss | ||
| persistent data store/redis/read-write/cache mode infinite/sdk reflects data source updates even with cache | ||
| persistent data store/redis/read-write/cache mode infinite/ignores direct database modifications | ||
| persistent data store/redis/read-write/cache mode infinite/ignores dropped flags | ||
| persistent data store/redis/read-write/cache mode ttl/does not cache flag miss | ||
| persistent data store/redis/read-write/cache mode ttl/sdk reflects data source updates even with cache | ||
| persistent data store/redis/read-write/cache mode ttl/ignores direct database modifications | ||
| persistent data store/redis/read-write/cache mode ttl/ignores dropped flags | ||
| persistent data store/dynamodb/read-write/initializes store when data received | ||
| persistent data store/dynamodb/read-write/applies updates to store | ||
| persistent data store/dynamodb/read-write/data source updates respect versioning | ||
| persistent data store/dynamodb/read-write/data source deletions respect versioning | ||
| persistent data store/dynamodb/read-write/cache mode infinite/does not cache flag miss | ||
| persistent data store/dynamodb/read-write/cache mode infinite/sdk reflects data source updates even with cache | ||
| persistent data store/dynamodb/read-write/cache mode infinite/ignores direct database modifications | ||
| persistent data store/dynamodb/read-write/cache mode infinite/ignores dropped flags | ||
| persistent data store/dynamodb/read-write/cache mode ttl/does not cache flag miss | ||
| persistent data store/dynamodb/read-write/cache mode ttl/sdk reflects data source updates even with cache | ||
| persistent data store/dynamodb/read-write/cache mode ttl/ignores direct database modifications | ||
| persistent data store/dynamodb/read-write/cache mode ttl/ignores dropped flags |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v2tests, and one forv3, which includes fdv2. But I think these new workflows only cover thev2tests without fdv2. If we add redis/dynamodb as a second dimension, should we set up a test matrix with all the combinations, or...?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Both good catches — addressed in 8b4f028.
It was partly redundant: the store jobs also re-ran the whole non-persistence v2 suite that
libs/server-sdkalready runs. They now pass-run=persistent.data.store, so each job only runs the persistence suite (the store-specific dimension). I also dropped the rediscontract-tests-curljob — the HTTP backend has no bearing on store behavior andlibs/server-sdkalready covers curl.Each store workflow is now a matrix over harness
v2/v3, which required a code fix: the v3 harness nests the store config underdataSystem.store.persistentDataStore(plusstoreMode), so previously every v3 persistence test failed. The service now reads either location. Current per-store results:The v3 suppressions (
persistence-suppressions-fdv2.txt) are the read-write tests plus allwith data sourcecases — the data system method is a variant (Lazy Load or Background Sync or FDv2), so a store can't be combined with a data source, and the store integrations are read-only sources. Both are SDK gaps rather than harness/test-service gaps.One caveat with
-run: if the harness ever renames thepersistent data storegroup, these jobs would pass while running zero tests.