Fuheng Zhao
07018eefe5
update parameter order
2022-08-16 13:16:38 -07:00
Dennis Zhou
5085c21d0d
blob: check if blob range exists and fail accordingly
2022-08-15 16:25:36 -07:00
Dennis Zhou
736ef4f2c9
blob: move blobrange command implementation to native api
2022-08-15 16:25:36 -07:00
Markus Pilman
eb16947860
Merge pull request #7844 from jzhou77/grv-error
...
Buggify GRV proxy to return errors and fix bugs found
2022-08-15 13:59:21 -06:00
Chaoguang Lin
3fed0456ca
Add an verify option for \xff\xff/worker_interfaces special keys ( #7873 )
...
* Add the verify option for \xff\xff/worker_interfaces
* Remove unused code
* update documentations
* update documentations
* solve comments from review
* update some of the comments to be more clear
2022-08-15 14:05:07 -04:00
Evan Tschannen
a9d3c9f9b3
Added throttling when a blob worker falls behind ( #7751 )
...
* throttle the cluster when blob workers fall behind
* do not throttle on blob workers if they are not enabled
* remove an unnecessary actor
* fixed a compile error
* fetch blob worker metrics at the same interval as the rate is updated, avoid fetching the complete blob worker list too frequently
* fixed another compilation bug
* added a 5 second delay before bw throttling to prevent false positives caused by the 100e6 version jump during recovery. Lower the throttling thresholds to react much quicker to bw lag.
* fixed a number of problems
* changed the minBlobVersionRequest to look at storage server versions since this will be a lot more efficient
* fix: do not let desired go backwards
* fix: track the version of notAtLatest changefeeds for throttling
* ratekeeper now throttled blob workers by estimating the transaction per second throughput of the blob workers
* added metrics for blob worker change feeds
* added a knob to disable bw throttling
* fixed the transaction options in blob manager
2022-08-12 13:15:56 -07:00
Jingyu Zhou
8fb6d59e94
Use error_code_grv_proxy_memory_limit_exceeded
...
instead of error_code_proxy_memory_limit_exceeded
2022-08-12 11:36:17 -07:00
Jingyu Zhou
ed1b7ef173
Add a client knob GRV_ERROR_RETRY_DELAY
2022-08-12 11:13:32 -07:00
Jingyu Zhou
317866fbbf
Add retry in waitForCommittedVersion for GRV error response
2022-08-12 11:13:32 -07:00
Jingyu Zhou
970105f318
Client needs to handle proxy_memory_limit_exceeded error
2022-08-12 11:13:32 -07:00
Xiaoge Su
0326d53965
Split proxy_memory_limit_exceeded to commit/grv specific exceptions
...
Currently GRV is reporting proxy_memory_limit_exceeded error which has
error message claiming Commit proxy failing. This split should remove
such confusion.
2022-08-12 00:45:57 -07:00
Josh Slocum
7c155f4521
Granule force purging ( #7846 )
...
* Granule purge cannot delete history entry for fully deleting granule until all children are completely done splitting
* Several purging fixes related to granule history
* Fixed typo in refactor
* fixing memory model for purgeRange
* formatting
* weakening granule purge test for now
* cleanup
* First version of force purging granules
* fixing issue in BW range assignment reporting
* Fixing incorrect assert with force purging
* Error handling when checking force purged state
* fixed force purging and recover/reassign range races and check
* Handling force purge + boundary change race
* more places to check for force purged status
* fixed manager restart in the middle of force purge bug
* fixing same-BM purge and assignment races in all cases
* weakening orphaned granule history check a bit because of difficult to solve races
* fixing txn options on retry
* loading force purged ranges at start to avoid resuming a merge that is being force purged
* cleanup
* Enabling purging in granule tests, and adding check for leaked change feeds in force purge
* formatting
* missed parameter in merge conflicts
* Fixing leaked change feed race with merge and force purge
* adding change feed cleanup when new blob manager recovers in-progress merge that raced with force purge
* added forcepurge fdbcli command
2022-08-11 15:22:32 -07:00
Fuheng Zhao
28469196b5
add comments
2022-08-10 15:45:15 -07:00
Fuheng Zhao
d24a52952c
update readOption struct
2022-08-10 10:16:26 -07:00
Josh Slocum
735b78cd0c
Several Assorted Blob Granule/Change Feed bug fixes ( #7842 )
...
* fixing another actor cancelled callback issue in change feed stream
* remove wait for on move, to ensure stream can't read from a shard the SS no longer owns
* fixing key alignment after downsampling split
* Fixing out-of-date granule reporting itself as a merge candidate
* fix formatting
2022-08-10 08:28:09 -07:00
Fuheng Zhao
1a5b8fbd30
resolve conflicts
2022-08-09 09:57:11 -07:00
Fuheng Zhao
e4fb565057
use readOptions to pass type and cacheResult
2022-08-08 15:30:56 -07:00
Markus Pilman
02b69e3c66
Merge pull request #7806 from sfc-gh-ajbeamon/fix-unknown-tenant-handling
...
When a transaction operation gets an unknown tenant error, it needs to reset the tenantID
2022-08-08 10:33:10 -06:00
Vaidas Gasiunas
79571dd2b4
Testing upgrades to a future version of FDB ( #7780 )
...
* Enable configuring the next future protocol version as the current protocol version in FDB client, fdbserver, and fdbcli
* Auto format python files used in upgrade tests
* Add a test for upgrading to a future FDB version
* Emphasize that the options for using future protocol version are intended for test purposes only
* Make the global variable for current protocol version visible only locally
* Refactirng to avoid using currentProtocolVersion() in static intialization
* Update go bindings
2022-08-08 17:29:49 +02:00
A.J. Beamon
17858cf8a0
When a transaction operation gets an unknown tenant error, it needs to reset the tenant ID so it can be updated in the next tenant lookup request.
2022-08-06 13:13:46 -07:00
Josh Slocum
ddbf32d35e
adding knob and fixing blobrange cli check bug with too many granules ( #7793 )
2022-08-05 11:19:17 -05:00
Fuheng Zhao
d5c3679046
merge upstream main and resolve conflicts
2022-08-04 12:15:00 -07:00
Fuheng Zhao
dccf0c5fd7
add readType to other requests
2022-08-02 15:47:15 -07:00
A.J. Beamon
1b693a588a
Merge branch 'main' into feature-metacluster
2022-08-01 14:43:14 -07:00
A.J. Beamon
ea76eb2beb
Transactions could change tenant ID part way through. The dummy transaction could set a new tenant ID but use the old tenant prefix.
2022-07-30 16:16:18 -07:00
A.J. Beamon
e8e4f3ad3a
Merge branch 'main' into feature-metacluster
...
# Conflicts:
# fdbclient/include/fdbclient/Tenant.h
2022-07-28 16:53:29 -07:00
Dan Lambright
83d23512d2
Track when version not found in version vector. ( #7653 )
...
* Track when version not found in version vector.
* Respond to comments
* include vv in event
* Respond to review comments.
* Fix bug where we logged too many lines
2022-07-28 18:26:15 -04:00
Junhyun Shim
c6342a6e5b
Merge branch 'main' into features/authz
2022-07-27 20:51:32 +02:00
Junhyun Shim
27e2bf60c6
Handle case where exception is thrown before tenant prefix is prepended
2022-07-27 20:13:25 +02:00
A.J. Beamon
7c6b3fb0b8
Merge branch 'main' into feature-metacluster
2022-07-27 08:55:10 -07:00
Josh Slocum
77956dc7ae
Merge pull request #7639 from sfc-gh-jslocum/cf_metadata_rewrite
...
Change Feed Metadata Rewrite and adding targeted fault injection
2022-07-26 18:10:37 -05:00
Junhyun Shim
5169616b16
Fix unresolved merge conflicts
2022-07-27 00:38:16 +02:00
Junhyun Shim
e2a3fedfc7
Merge branch 'main' into features/authz
2022-07-27 00:08:57 +02:00
Josh Slocum
8b5b7a9b92
Merge pull request #7689 from sfc-gh-jslocum/purge_fixes
...
Granule Purge Fixes
2022-07-26 17:02:24 -05:00
Josh Slocum
ba31229797
addressing review comments
2022-07-26 16:37:06 -05:00
Junhyun Shim
6f9c87f2a5
Move dummy transaction flag to TransactionState
...
Also add more description of what the flag does and when it's set
2022-07-26 23:27:46 +02:00
A.J. Beamon
4c4eb3fc48
Merge pull request #7704 from sfc-gh-ajbeamon/add-comments-to-tenant-function
...
Add comments explaining the use of the TransactionState tenant() and hasTenant() functions
2022-07-26 14:01:50 -07:00
Junhyun Shim
adc601e8a3
Simplify tenant-aware dummy transaction
2022-07-26 21:30:44 +02:00
A.J. Beamon
d31324102d
Add comments explaining the use of the TransactionState tenant() and hasTenant() functions
2022-07-26 10:17:57 -07:00
Fuheng Zhao
32ab7421e1
add readtype to requests
2022-07-26 10:12:54 -07:00
A.J. Beamon
7c2ed53aef
Fix: during recovery, it was possible for tenant operations to briefly fail because the tenant mode is not known
2022-07-25 13:03:15 -07:00
Junhyun Shim
553e6aba75
Make dummy transaction commits tenant-aware
...
Dummy transaction commits are made when earlier transaction returned
commit_unknown_result or request_maybe_delivered, to affirm the status
of earlier transaction. Without tenant-awareness, these transactions
will fail due to lack of authorization in case of untrusted clients.
2022-07-25 18:20:37 +02:00
Josh Slocum
ee1b0cdd43
making purge failures fail test
2022-07-23 13:10:03 -05:00
A.J. Beamon
41c1bef3bf
Merge branch 'feature-tenant-groups' into feature-metacluster
2022-07-22 14:26:02 -07:00
Xiaoge Su
25d9fa856c
fixup! Update code per comments
2022-07-21 23:14:31 -07:00
Xiaoge Su
32b4968835
Add TraceEvent to the construction/destruction of DatabaseContext
...
This is to figure out why huge databaseLogger related TraceEvents
generated after 7.1 released.
2022-07-21 19:38:59 -07:00
A.J. Beamon
3e1763e7ac
Merge branch 'main' into feature-metacluster
2022-07-21 14:48:53 -07:00
A.J. Beamon
410f27412b
Merge pull request #7620 from sfc-gh-ajbeamon/make-tuple
...
Add a Tuple::makeTuple function to easily construct a tuple
2022-07-20 17:09:10 -07:00
A.J. Beamon
fee131f24d
Merge pull request #7591 from sfc-gh-ajbeamon/key-backed-types-range-read-more
...
Add support for returning a more flag from key backed types' range reads
2022-07-20 15:57:50 -07:00
A.J. Beamon
279296c29f
Merge branch 'tenant-metadata-change' into feature-metacluster
...
# Conflicts:
# fdbclient/SystemData.cpp
# fdbclient/Tenant.cpp
# fdbclient/include/fdbclient/SystemData.h
# fdbclient/include/fdbclient/Tenant.h
# fdbclient/include/fdbclient/TenantManagement.actor.h
# fdbserver/TenantCache.actor.cpp
# fdbserver/storageserver.actor.cpp
# fdbserver/workloads/TenantManagementWorkload.actor.cpp
2022-07-20 09:18:27 -07:00
Josh Slocum
fd9201f60b
Merge branch 'main' into cf_metadata_rewrite
2022-07-20 07:55:00 -05:00
A.J. Beamon
537ceff8ac
Remove the ability to configure a tenant subspace. Rename the prefixes used for tenant metadata.
2022-07-19 14:32:05 -07:00
A.J. Beamon
190ad8c7e9
Convert existing tuple usages to use Tuple::makeTuple()
2022-07-19 13:45:59 -07:00
Markus Pilman
1de37afd52
Make TEST macros C++ only ( #7558 )
...
* proof of concept
* use code-probe instead of test
* code probe working on gcc
* code probe implemented
* renamed TestProbe to CodeProbe
* fixed refactoring typo
* support filtered output
* print probes at end of simulation
* fix missed probes print
* fix deduplication
* Fix refactoring issues
* revert bad refactor
* make sure file paths are relative
* fix more wrong refactor changes
2022-07-19 13:15:51 -07:00
A.J. Beamon
3ceb2a0639
Merge branch 'main' into feature-metacluster
2022-07-19 13:04:54 -07:00
Fuheng Zhao
2322730345
fix issues related to terminate storage server
2022-07-19 11:19:30 -07:00
Dan Lambright
775ab3323e
update tag client cache on getKeyLocation ( #7613 )
2022-07-19 11:24:17 -04:00
Josh Slocum
2573c0018c
cleanup after passing tests
2022-07-19 08:00:25 -05:00
Josh Slocum
4540e2879c
Change Feed Metadata refactor to fix races, simplify model, and clean up code
2022-07-18 12:46:11 -05:00
Junhyun Shim
ca29cd9f41
Make RequestStreams accept empty TenantInfo
...
+ Make Authz tokens survive Transaction resets
+ Make tokens explicitly resettable by assigning empty value to authz token TR option
+ Fill out missing trace for some failed token verifications
+ Trace non-sensitive token parts upon failed verification
2022-07-18 13:30:55 +02:00
Fuheng Zhao
312e160a12
use PriorityMultiLock in storage server
2022-07-14 15:29:54 -07:00
A.J. Beamon
30afc35439
Merge branch 'key-backed-types-range-read-more' into feature-metacluster
2022-07-13 16:00:01 -07:00
A.J. Beamon
91949439d2
Add support for returning whether a key-backed type range read has more results or not.
2022-07-13 15:46:10 -07:00
A.J. Beamon
cb499fa5db
Merge branch 'main' into feature-metacluster
2022-07-13 15:28:34 -07:00
Junhyun Shim
03a496c0e0
Make auth token survive transaction resets
2022-07-13 20:34:01 +02:00
Josh Slocum
0b0ac16a4c
Merge branch 'main' into granule_merging
2022-07-12 09:09:30 -05:00
Markus Pilman
2edbcf2c65
Merge pull request #44 from apple/main
...
Merge main
2022-07-12 07:51:22 -06:00
Jingyu Zhou
58aa5a9e1d
Merge pull request #7539 from sfc-gh-fzhao/SetFetchKey
...
set isFetchKeys for getRangeStreamFragment
2022-07-11 13:25:24 -07:00
Junhyun Shim
dbf8f98481
Apply Clang format
2022-07-11 17:10:45 +02:00
Junhyun Shim
61f3d14ec6
Add TokenCache test
...
Add function authz::jwt::TokenRef::toStringRef() for token tracing
Add StringRef::toStringView()
2022-07-11 13:42:41 +02:00
Markus Pilman
2ae17233d8
addressed review comments
2022-07-08 11:19:14 -06:00
Markus Pilman
f268265d96
Apply suggestions from code review
...
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
Co-authored-by: Junhyun Shim <junhyun.shim@snowflake.com>
2022-07-08 10:42:44 -06:00
He Liu
bc5bfaffda
Shard based move ( #6981 )
...
* Shard based move.
* Clean up.
* Clear results on retry in getInitialDataDistribution.
* Remove assertion on SHARD_ENCODE_LOCATION_METADATA for compatibility.
* Resolved comments.
Co-authored-by: He Liu <heliu@apple.com>
2022-07-07 20:49:16 -07:00
Fuheng Zhao
207082f03e
comment out setting isFetchKeys
2022-07-07 12:55:25 -07:00
Fuheng Zhao
6e7603aa35
set isFetchKeys for getRangeStreamFragment
2022-07-07 11:14:11 -07:00
A.J. Beamon
1519f24f77
Merge branch 'main' into feature-metacluster
2022-07-07 09:35:40 -07:00
A.J. Beamon
c4b0f6eaae
Add an internal C API to support connection to a cluster using a connection string ( #7438 )
...
* Add an internal C API to support memory connection records
* Track shared state in the client using a unique and immutable cluster ID from the cluster
* Add missing code to store the clusterId in the database state object
* Update some arguments to pass by const&
2022-07-07 10:12:49 +02:00
Markus Pilman
56541167c2
send token with tenant info object
2022-07-06 20:58:17 -06:00
A.J. Beamon
c9b553663e
Merge branch 'main' into feature-metacluster
...
# Conflicts:
# bindings/java/src/main/com/apple/foundationdb/TenantManagement.java
# fdbcli/TenantCommands.actor.cpp
# fdbclient/NativeAPI.actor.cpp
# fdbclient/TenantSpecialKeys.actor.cpp
# fdbclient/include/fdbclient/KeyBackedTypes.h
# fdbclient/include/fdbclient/RunTransaction.actor.h
# fdbclient/include/fdbclient/SpecialKeySpace.actor.h
# fdbserver/workloads/TenantManagementWorkload.actor.cpp
2022-07-06 15:44:21 -07:00
A.J. Beamon
1e8225a19e
Merge pull request #7511 from sfc-gh-ajbeamon/add-subrange-support-to-tenant-special-keys
...
Update the tenant special keys submodule to support multiple sub-ranges
2022-07-06 10:33:14 -07:00
A.J. Beamon
2eae95aabe
Merge branch 'main' into feature-metacluster
2022-07-01 14:07:34 -07:00
Sreenath Bodagala
037c06a688
Merge remote-tracking branch 'apple-upstream/main'
2022-07-01 04:51:17 +00:00
A.J. Beamon
aea4d802c6
Merge branch 'main' into feature-metacluster
2022-06-30 15:08:09 -07:00
A.J. Beamon
2f67328a0c
Update the tenant special keys submodule to support multiple sub-ranges. This will enable future work that allows configuring tenants at the same time as creating them.
2022-06-30 15:03:37 -07:00
Josh Slocum
48bcf6eaba
parameterizing min split size instead of hardcoding it to min_shard_bytes ( #7404 )
2022-06-30 12:28:22 -07:00
Sreenath Bodagala
c74710f6d5
- Address a review comment
...
- Optiize out the code in DatabaseContext::getLatestCommitVersions()
in the case where the feature is turned off.
2022-06-29 10:13:08 +00:00
A.J. Beamon
e1a93988ef
Merge branch 'main' into feature-metacluster
2022-06-28 14:58:07 -07:00
Markus Pilman
9d16260822
Merge remote-tracking branch 'origin/main' into features/authz
2022-06-28 13:13:51 -06:00
sfc-gh-tclinkenbeard
086e4bff06
Merge remote-tracking branch 'origin/main' into global-tag-throttling3
2022-06-28 10:18:13 -07:00
Sreenath Bodagala
0da13a7797
- Optimize out the version vector specific code (on the client)
...
when the version vector feature is disabled.
2022-06-28 09:17:53 +00:00
Renxuan Wang
4452e53342
Fix a problem caused by missing state.
2022-06-27 23:52:54 -04:00
Xiaoxi Wang
62d4ac550a
Merge branch 'main' of https://github.com/apple/foundationdb into feature/ddtxn
2022-06-27 11:35:22 -07:00
Markus Pilman
3aaae9c521
Merge remote-tracking branch 'origin/main' into features/authz
2022-06-27 11:07:14 -06:00
Markus Pilman
8af056e7b0
fdbclient now compiling
2022-06-23 18:05:36 -06:00
Markus Pilman
ffaf15c12a
moved wellknownendpoints and fixed some includes
2022-06-23 17:03:53 -06:00
Xiaoxi Wang
a5054b2beb
move getServerListAndProcessClasses to NativeAPI
2022-06-23 15:28:45 -07:00
Markus Pilman
d35445a868
enforce include modularization in cmake
2022-06-23 14:37:35 -06:00
A.J. Beamon
9f3819752f
Change the command to create a metacluster from using 'configure tenant_mode=management' to 'metacluster create <NAME>'. Distribute this name to all processes in a metacluster. Eliminate the tenant mode entirely from metacluster clusters, instead relying on a metacluster registration key.
2022-06-22 12:15:43 -07:00
sfc-gh-tclinkenbeard
2391e58fb2
Merge remote-tracking branch 'origin/main' into global-tag-throttling3
2022-06-21 10:09:15 -07:00
sfc-gh-tclinkenbeard
bcd8785767
Remove old debug tracing
2022-06-20 00:59:22 -07:00
Josh Slocum
34e6a8f942
Merge pull request #7399 from sfc-gh-jslocum/bg_tenant_improvements
...
Bg tenant improvements
2022-06-17 11:19:41 -05:00
Josh Slocum
1cc466e068
fixes and review comments
2022-06-17 08:17:44 -05:00
Josh Slocum
b3597ef3a8
Added plumbing for tenant-aware purge granules
2022-06-16 13:04:34 -05:00
Markus Pilman
13d8b13722
Migrated Authz code to use JWT
2022-06-13 18:20:27 -06:00
Markus Pilman
799fe32346
Merge remote-tracking branch 'origin/main' into features/authz
2022-06-13 18:02:11 -06:00
Andrew Noyes
207e0bc105
Fix a few places we weren't doing exponential backoff ( #7349 )
...
* Fix a few places we weren't doing exponential backoff
We re-create the transaction every iteration of each of these retry
loops, so we need to manage exponential backoff here ourselves.
Closes #7301
* Remove former Backoff definition
2022-06-13 13:18:58 -07:00
sfc-gh-tclinkenbeard
df71a49bf6
Merge remote-tracking branch 'origin/main' into global-tag-throttling3
2022-06-13 10:03:10 -07:00
sfc-gh-tclinkenbeard
75c858eb2c
Differentiate between different quotas in GlobalTagThrottling workload
2022-06-13 10:01:55 -07:00
Josh Slocum
710612442c
small fixes
2022-06-09 17:21:21 -05:00
Josh Slocum
d6920cde28
Implemented blob granule merging
2022-06-09 10:50:53 -05:00
Josh Slocum
a3289f9cab
adding tenant prefix to bg ranges call
2022-06-06 14:09:10 -05:00
A.J. Beamon
2907aafa60
Merge branch 'main' into feature-metacluster
2022-06-02 12:18:42 -07:00
Ray Jenkins
8cc51064a5
Add NAPI: prefix to VerifyCausalReadRisky span. ( #7285 )
2022-06-01 11:47:28 -05:00
sfc-gh-tclinkenbeard
29ebcdbfa9
Merge remote-tracking branch 'origin/main' into global-tag-throttling3
2022-05-31 14:53:51 -07:00
Vaidas Gasiunas
4d6ec7663f
Close file at the end of runNetwork rather than in stopNetwork in order to avoid a race condition,
...
also in order to continue tracing the pending network thread activity.
Poll event throttler only in the network thread in order to avoid a race condition.
2022-05-31 13:59:09 +02:00
Lukas Joswiak
4c07064632
Fix reference cycle in GlobalConfig
2022-05-27 10:25:29 -07:00
Renxuan Wang
cd2a575e02
Move the resolve of coordinator hostname from getCoordinatorProtocol() to getClusterProtocolImpl(). ( #7245 )
...
* Move the resolve of coordinator hostname from getCoordinatorProtocol() to getClusterProtocolImpl().
* Guard DNS Cache behind a knob.
2022-05-26 09:45:54 -07:00
Josh Slocum
458e8018e1
review comments
2022-05-25 17:16:56 -05:00
Josh Slocum
fd7b662767
cleaning up
2022-05-25 17:16:56 -05:00
Josh Slocum
dd637dd6a7
passes tenant simulation test
2022-05-25 17:16:56 -05:00
Josh Slocum
e3a570d50d
Blob worker tenant integration mostly works
2022-05-25 17:16:56 -05:00
Josh Slocum
4015b5b2a0
Several Blob Granule bug fixes found in nightlies ( #7170 )
...
* Fixing simulation validation assert that was tripping incorrectly
* Commenting out debugging prints
* Fixed multiple error propagation issues in blob worker
2022-05-23 10:07:16 -07:00
Markus Pilman
16cf087667
Allow fetching invalid tenant id for getKeyLocation
2022-05-23 10:00:27 -06:00
A.J. Beamon
d784173f7f
Add first implementation of tenant creation and deletion in a metacluster
2022-05-20 15:21:21 -07:00
Chaoguang Lin
5e8c3130e6
Extend the reboot interface to accept comma-delimited string;
...
Only fetch requested worker interfaces in rebootWorkerActor
Add killall test to multiprocess_fdbcli_tests
Make the rebootWorker only sends requests if all the requested workers are valid
Add comments; Organize print texts; Fix the bug clear the map every time run kill/suspend/expensive_data_check
2022-05-20 12:06:33 -07:00
He Liu
61490022b4
Enabled checkpoint, restore test for RocksDB format.
2022-05-19 13:27:21 -07:00
A.J. Beamon
69261f9f10
Merge branch 'main' into feature-metacluster
...
# Conflicts:
# fdbclient/MultiVersionTransaction.actor.cpp
# fdbclient/MultiVersionTransaction.h
# fdbserver/tester.actor.cpp
2022-05-19 09:11:30 -07:00
A.J. Beamon
993a79b42c
Restart protocol monitoring logic when we cycle the coordinator, even if its the same coordinator. Add some defensive code in case we fetch the protocol version for an absent peer. ( #6397 )
2022-05-19 10:00:23 +02:00
Hao Fu
f00606fd71
Enable MATCHED and UNMATCHED mode for index prefetch ( #7162 )
...
* Enable MATCHED and UNMATCHED mode for index prefetch
MATCHED mode returns index entries whose secondary KVs are present,
UNMATCHED mode returns index entries whose secondary KVs are absent.
Note that the conflict read range of this txn is set in 2 steps:
* Set the conflict range for primary query according to request
* Set the conflict ranges for secondary queries according to responses.
As a result, conflicts of different match_index mode are taken care of.
* Fix c binding
2022-05-18 09:16:28 -07:00
A.J. Beamon
e8e26c9f7c
Remove the internal special key-space mechanism (at least for now), instead relying on the local logic to implement the metacluster functions. Add ability to force remove a cluster. Improve idempotency of register operation.
2022-05-18 08:18:25 -07:00
Hao Fu
853e6a346b
Optimization: support removing index conditionally ( #7116 )
2022-05-13 10:10:43 -07:00
sfc-gh-tclinkenbeard
58c818985d
Apply clang-format to several files
2022-05-10 11:21:45 -07:00
Vishesh Yadav
051bd3102d
Revert bad merge change
2022-05-09 14:54:51 -07:00
Vishesh Yadav
f88cbf9309
Address review comments
2022-05-09 14:54:51 -07:00
Vishesh Yadav
f14baf2af8
clang-format changes
2022-05-09 14:54:51 -07:00
Vishesh Yadav
9173e2e19b
Move GlobalConfig to DatabaseContext
2022-05-09 14:54:51 -07:00
Vishesh Yadav
7578d5ebc7
Create GlobalConfig object for each database instance
...
Currently, GlobalConfig is a singleton that means for each process there is only
one GlobalConfig object. This is bug from clients perspective as a client can
keep connections to several databases. This patch tracks GlobalConfig for each
database using an unordered_map in flowGlobals.
We discovered this bug while testing multi-version client, where the client got
stuck. This was lucky, as normally it'd just write down config to the wrong
database.
2022-05-09 14:54:51 -07:00
A.J. Beamon
d6ac3e57a4
Add internal metacluster special key-space modules
2022-05-07 20:14:03 -07:00
sfc-gh-tclinkenbeard
c9a5b6d789
Avoid re-adding transaction tags in ReadWriteWorkload
2022-05-07 15:58:05 -07:00
Sreenath Bodagala
154ae7559e
- If getRange() is called with "latestVersion" as the read version
...
then both GetKeyValuesFamilyRequest and getRangeFallback should do
reads at the same version.
2022-05-06 18:10:37 +00:00
A.J. Beamon
7c3b99f5bd
Add support for connection to clusters via a connection string. Start work on multi-cluster operations with data cluster registration.
2022-05-06 09:53:53 -07:00
A.J. Beamon
0c41225d76
Add support for setting and storing the tenant group for a tenant
2022-05-05 08:57:01 -07:00
Sreenath Bodagala
2102ed1eaa
- Remove "stale_version_vector" error code.
2022-05-03 21:56:11 +00:00
A.J. Beamon
7e860dc92c
Some initial metacluster implementation
2022-05-03 12:53:35 -07:00
Sreenath Bodagala
484558250b
- Do not consult version vector if the client has obtained the read
...
version from its GRV cache.
2022-05-03 19:23:37 +00:00
Ray Jenkins
dc9e782ccc
OpenTelemetry Tracing Perf Fixes ( #6990 )
2022-05-02 14:56:51 -05:00
Renxuan Wang
c69a07a858
Check in the new Hostname logic. ( #6926 )
...
* Revert #6655 .
20220407-031010-renxuan-c101052c21da8346 compressed=True data_size=31004844 duration=4310801 ended=100000 fail_fast=10 max_runs=100000 pass=100000 priority=100 remaining=0 runtime=1:04:15 sanity=False started=100047 stopped=20220407-041425 submitted=20220407-031010 timeout=5400 username=renxuan
* Revert #6271 .
20220407-051532-renxuan-470f0fe6aac1c217 compressed=True data_size=30982370 duration=3491067 ended=100002 fail_fast=10 max_runs=100000 pass=100002 priority=100 remaining=0 runtime=0:59:57 sanity=False started=100141 stopped=20220407-061529 submitted=20220407-051532 timeout=5400 username=renxuan
* Revert #6266 .
Remove resolving-related functionalities in connection string. Connection string will be used for storing purpose only, and non-mutable.
20220407-175119-renxuan-55d30ee1a4b42c2f compressed=True data_size=30970443 duration=5437659 ended=100000 fail_fast=10 max_runs=100000 pass=100000 priority=100 remaining=0 runtime=0:59:31 sanity=False started=100154 stopped=20220407-185050 submitted=20220407-175119 timeout=5400 username=renxuan
* Add hostname to coordinator interfaces.
* Turn on the new hostname logic.
* Add the corresponding change in config txns.
The most notable change is before calling basicLoadBalance(), we need to call tryInitializeRequestStream() to initialize request streams first.
Passed correctness tests.
* Return error when hostnames cannot be resolved in coordinators command.
* Minor fixes.
2022-04-27 21:54:13 -07:00
A.J. Beamon
79063d5fc4
Better accounting for tenant prefixes when working with key size limits ( #6973 )
...
* Consider tenant prefix sizes when doing key size limit checks
* Fix formatting
2022-04-27 14:38:59 -07:00
Markus Pilman
cbe4a873d2
Merge remote-tracking branch 'origin/main' into features/validate-trace-events-in-simulation
2022-04-25 17:39:29 -06:00
Markus Pilman
21336fbf12
Merge remote-tracking branch 'origin/main' into features/authz
2022-04-25 08:45:23 -06:00
Ray Jenkins
1c5bf135d5
Revert "Migrate to OpenTelemetry tracing. ( #6855 )" ( #6941 )
...
This reverts commit 5df3bac110 .
2022-04-25 09:29:56 -05:00
Markus Pilman
9e65e15b45
Merge remote-tracking branch 'origin/main' into features/validate-trace-events-in-simulation
2022-04-22 15:39:55 -06:00
A.J. Beamon
1352083d4c
Merge pull request #6884 from sfc-gh-clin/deprecate-speical-keys
...
Remove the client profiling special keys and update related documentations
2022-04-21 21:51:16 -07:00
Chaoguang Lin
879eb98dec
Rename registerSpecialKeySpaceModule to registerSpecialKeysImpl
2022-04-21 12:54:34 -07:00
Markus Pilman
b61c9ab329
Merge remote-tracking branch 'origin/main' into features/authz
2022-04-20 14:40:14 -06:00
Markus Pilman
3335b2686e
Merge branch 'main' into features/validate-trace-events-in-simulation
2022-04-20 12:03:33 -06:00
Ray Jenkins
5df3bac110
Migrate to OpenTelemetry tracing. ( #6855 )
2022-04-20 09:26:37 -05:00
Markus Pilman
d4ee7be1d7
Reduce excessive tracing and fail after 1M traces
2022-04-19 21:11:51 -06:00
Chaoguang Lin
6bfa4f6ac4
Fix typos; Polish documentations according to comments
2022-04-19 13:57:11 -07:00
Chaoguang Lin
36c876b769
Fix a typo; Fix a format error in special-keys.rst
2022-04-18 18:10:17 -07:00
Chaoguang Lin
c0264a8522
Remove the client profiling special keys and update related documentations
2022-04-18 17:54:50 -07:00
Markus Pilman
58c24fdaf2
Fix compilation problems
2022-04-13 13:15:41 -06:00
Markus Pilman
f9eca3884b
implemented base logic
2022-04-12 12:02:43 -06:00
Markus Pilman
16467262f0
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-04-10 14:12:37 -06:00
Dan Lambright
e43fde16ec
formatting
2022-04-08 17:28:16 -04:00
Dan Lambright
1b3b4166c6
Merge branch 'main' into vv
2022-04-08 17:18:13 -04:00
Josh Slocum
6276cebad9
Blob integration ( #6808 )
...
* Fixing leaked stream with explicit notify failed before destructor
* better logic to prevent races in change feed fetching
* Found new race that makes assert incorrect
* handle server overloaded in initial read from fdb
* Handling more blob error types in granule retry
* Fixing rollback metadata problem, added better debugging
* Fixing version race when fetching change feed metadata
* Better racing split request handling
* fixing assert
* Handle change feed popped check in the blob worker
* fix: do not use a RYW transaction for a versionstamp because of randomize API version (#6768 )
* more merge conflict issues
* Change feed destroy fixes
* Fixing change feed destroy and move race
* Check error condition in BG file req
* Using relative endpoints for blob worker interface
* Fixing bug in previous fix
* More destroy and move race fixes
* Don't update empty version on destroy in case it gets rolled back. moved() and removing will take care of ensuring it is not read
* Bug fix (#6796 )
* fix: do not use a RYW transaction for a versionstamp because of randomize API version
* fix: if the initialSnapshotVersion was pruned, granule history was incorrect
* added a way to compress null bytes in printable()
* Fixing durability issue with moving and destroying change feeds
* Adding fix for not fully deleting files for a granule that child granules need to re-snapshot
* More destroy and move races
* Fixing change feed destroy and pop races
* Renaming bg prune to purge, and adding a C api and unit test for it
* more cleanup
* review comments
* Observability for granule purging
* better handling for change feed not registered
* Fixed purging bugs (#6815 )
* fix: do not use a RYW transaction for a versionstamp because of randomize API version
* fix: if the initialSnapshotVersion was pruned, granule history was incorrect
* added a way to compress null bytes in printable()
* fixed a few purging bugs
Co-authored-by: Evan Tschannen <evan.tschannen@snowflake.com>
2022-04-08 14:15:25 -07:00
Lukas Joswiak
73a7c32982
Add fdbcli command to read/write version epoch ( #6480 )
...
* Initialize cluster version at wall-clock time
Previously, new clusters would begin at version 0. After this change,
clusters will initialize at a version matching wall-clock time. Instead
of using the Unix epoch (or Windows epoch), FDB clusters will use a new
epoch, defaulting to January 1, 2010, 01:00:00+00:00. In the future,
this base epoch will be modifiable through fdbcli, allowing
administrators to advance the cluster version.
Basing the version off of time allows different FDB clusters to share
data without running into version issues.
* Send version epoch to master
* Cleanup
* Update fdbserver/storageserver.actor.cpp
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
* Jump directly to expected version if possible
* Fix initial version issue on storage servers
* Add random recovery offset to start version in simulation
* Type fixes
* Disable reference time by default
Enable on a cluster using the fdbcli command `versionepoch add 0`.
* Use correct recoveryTransactionVersion when recovering
* Allow version epoch to be adjusted forwards (to decrease the version)
* Set version epoch in simulation
* Add quiet database check to ensure small version offset
* Fix initial version issue on storage servers
* Disable reference time by default
Enable on a cluster using the fdbcli command `versionepoch add 0`.
* Add fdbcli command to read/write version epoch
* Cause recovery when version epoch is set
* Handle optional version epoch key
* Add ability to clear the version epoch
This causes version advancement to revert to the old methodology whereas
versions attempt to advance by about a million versions per second,
instead of trying to match the clock.
* Update transaction access
* Modify version epoch to use microseconds instead of seconds
* Modify fdbcli version target API
Move commands from `versionepoch` to `targetversion` top level command.
* Add fdbcli tests for
* Temporarily disable targetversion cli tests
* Fix version epoch fetch issue
* Fix Arena issue
* Reduce max version jump in simulation to 1,000,000
* Rework fdbcli API
It now requires two commands to fully switch a cluster to using the
version epoch. First, enable the version epoch with `versionepoch
enable` or `versionepoch set <versionepoch>`. At this point, versions
will be given out at a faster or slower rate in an attempt to reach the
expected version. Then, run `versionepoch commit` to perform a one time
jump to the expected version. This is essentially irreversible.
* Temporarily disable old targetversion tests
* Cleanup
* Move version epoch buggify to sequencer
This will cause some issues with the QuietDatabase check for the version
offset - namely, it won't do anything, since the version epoch is not
being written to the txnStateStore in simulation. This will get fixed in
the future.
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2022-04-08 12:33:19 -07:00
Dan Lambright
e2c144ba8e
fix conflict NativeAPI.actor.cpp
2022-04-08 14:35:20 -04:00
Dan Lambright
5bdc525353
Merge branch 'main' into vv
2022-04-08 13:16:04 -04:00
Markus Pilman
bf956f5630
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-04-07 13:29:27 -06:00
Jon Fu
124aa6e5fd
clean up debug traces and fix details with delRef placement
2022-04-06 12:27:39 -04:00
Jon Fu
1b9bd597c5
address code review comments and add some traces for manual testing
2022-04-05 15:29:02 -04:00
Jingyu Zhou
a1be7abdad
Clear VV cache instead of throw
2022-04-01 15:19:24 -07:00
Jingyu Zhou
4fd414a8ed
Merge branch 'main' into vv
...
Fix Conflicts:
fdbclient/NativeAPI.actor.cpp
2022-03-31 09:38:36 -07:00
Jingyu Zhou
cfcf0f152c
Merge branch 'main-4a085fc84' into vv
...
Fix Conflicts:
fdbclient/NativeAPI.actor.cpp
fdbserver/ClusterRecovery.actor.cpp
fdbserver/MasterInterface.h
fdbserver/masterserver.actor.cpp
flow/error_definitions.h
2022-03-30 22:28:06 -07:00
Jingyu Zhou
b34f4052cd
Merge branch 'main-f28dfc12b' into vv
...
Fix Conflicts:
fdbclient/MultiVersionTransaction.actor.cpp
fdbclient/NativeAPI.actor.cpp
fdbclient/NativeAPI.actor.h
fdbserver/storageserver.actor.cpp
2022-03-30 21:01:25 -07:00
Jingyu Zhou
00b57d4cce
Merge branch 'main-67eba5ec7' into vv
...
Fix Conflicts:
fdbclient/CommitProxyInterface.h
fdbclient/NativeAPI.actor.cpp
fdbclient/StorageServerInterface.h
fdbserver/CommitProxyServer.actor.cpp
fdbserver/storageserver.actor.cpp
2022-03-30 20:05:55 -07:00
Jingyu Zhou
0cc1b67b7a
Temporary fix for stale version vector assertion
...
Need to investigate why and fix later.
2022-03-30 19:34:58 -07:00
Jingyu Zhou
e9659b5dd4
Merge branch 'master-PR-6500' into vv
...
Fix Conflicts:
fdbclient/CommitProxyInterface.h
fdbclient/NativeAPI.actor.cpp
fdbserver/masterserver.actor.cpp
2022-03-30 14:53:49 -07:00
Jon Fu
f266695a76
clear shared state map entries on version upgrade and use currentProtocolVersion instead of piping version through function parameters
2022-03-30 15:28:55 -04:00
Jon Fu
9d0a520fe0
add ProtocolVersion to shared state and state cluster map
2022-03-30 13:28:06 -04:00
Jon Fu
53d252fda0
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache-multi-threaded
2022-03-29 17:23:08 -04:00
Jon Fu
bdbe78e48f
address code review comments
2022-03-29 17:20:22 -04:00
Josh Slocum
7fc6dfa6c5
Adding useful debugging trace events
2022-03-29 14:48:28 -05:00
Chaoguang Lin
fd5734c39e
Fix the case where we access the memory after cleaning
2022-03-28 13:35:42 -07:00
Josh Slocum
0ff1cd102e
Merge branch 'main' into bg_client_bindings_improvements
2022-03-24 17:19:01 -05:00
Josh Slocum
989dd8d7eb
Finished implementing beginVersion
2022-03-24 17:15:11 -05:00
Josh Slocum
b92c6ea92c
granule parallelism, metrics, and other improvements to bg client bindings
2022-03-24 13:44:09 -05:00
Jon Fu
7af4b24966
move trace event to within if-block
2022-03-23 17:09:28 -04:00
Jon Fu
9f72d68f1e
Make trace event SevDebug to avoid spamming logs by default
2022-03-23 17:08:17 -04:00
Jon Fu
7c3151142e
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache-multi-threaded
2022-03-23 16:41:33 -04:00
Jon Fu
4466e00716
Fix multithreaded GRV cache code and enable grv caching in multithreaded ctest suite
2022-03-23 16:09:12 -04:00
Josh Slocum
f27475e2f4
Merge branch 'main' into blob_integration
2022-03-22 11:41:58 -05:00
sfc-gh-tclinkenbeard
a71099471b
Update copyright header dates
2022-03-21 13:36:23 -07:00
Markus Pilman
35f7843d84
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-03-21 12:33:53 +01:00
Josh Slocum
8205771e8f
ReplyPromiseStreams need synchronous disconnect to avoid change feed races
2022-03-18 17:05:12 -05:00
Josh Slocum
37e7c80f26
Merge branch 'main' into blob_integration
2022-03-17 18:45:42 -05:00
A.J. Beamon
513e8887dd
Add a new C unit test that uses tenants. Fix simulation issue where resetting a transaction could cause in-flight operations to pick up the simulated default tenant for the next retry. Use the new list tenant JSON format in the tenant management test. Fix missing raw_access option in special key space correctness test.
2022-03-17 12:10:19 -07:00
A.J. Beamon
4079b9f23d
Lazily assign the default tenant in simulated tests so that we can enforce that raw access isn't used on tenant transactions. Update various tests to avoid using raw access or system key access after they have performed other operations on the transaction.
2022-03-17 12:10:19 -07:00
A.J. Beamon
d0dc756c6d
Allow disabling tenant mode in simulation. Fix a few bugs.
2022-03-17 12:10:18 -07:00
A.J. Beamon
05495908b8
Implement some tenant tests
2022-03-17 12:10:18 -07:00
Markus Pilman
118b53b7cf
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-03-17 12:06:44 +01:00
sfc-gh-tclinkenbeard
58de6e22cc
Add BalanceOnRequests boolean parameter for ModelInterface
2022-03-16 14:25:32 -07:00
Jon Fu
9731d96797
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache-multi-threaded
2022-03-16 14:32:33 -04:00
Jon Fu
7ab205391b
Revert "remove all multi-version client code related to grv cache"
...
This reverts commit 6d05ecffc2 .
2022-03-16 14:26:36 -04:00
Jingyu Zhou
2acc222d9a
Detect stale GRV proxy replies
...
Each GetReadVersionReply now has the GRV proxy ID that sent it so that the
client can detect old GRV proxy's replies and avoid apply stale version vector
changes.
2022-03-15 14:23:07 -07:00
A.J. Beamon
a1dfd92a43
Fix merge conflict between tenants and checkpointing API. Avoid using .toString() in trace event details and rename (and move) a couple variables.
2022-03-15 14:18:06 -07:00
A.J. Beamon
7464c7747c
Merge pull request #6600 from sfc-gh-ajbeamon/add-tenant-support-back-to-mapped-range
...
Add tenant support back to mapped range requests
2022-03-15 13:46:32 -07:00
Josh Slocum
e8e69e7c56
Fix formatting
2022-03-15 15:15:16 -05:00
He Liu
c3a68d661e
Physical Shard Move ( #6264 )
...
Physical Shard Move part I: Checkpoint creation, transfer and restore.
2022-03-15 13:03:23 -07:00
Josh Slocum
ce5b567971
Cleanup the cleanup
2022-03-15 15:02:28 -05:00
A.J. Beamon
a04934465c
Add tenant support back to mapped range requests. Fix ACTOR warning.
2022-03-15 12:41:08 -07:00
A.J. Beamon
e8077b65e1
Merge pull request #6559 from sfc-gh-ajbeamon/fdb-tenant-client
...
Add client support for tenants
2022-03-15 12:40:17 -07:00
A.J. Beamon
22faf8e5b3
Ignore tenants when setting watches on the metadataVersionKey or sending mutations or conflict ranges that use the metadataVersionKey.
2022-03-15 10:46:31 -07:00
A.J. Beamon
a70adf9fcd
Convert cached ranges to relative ranges when using tenants.
2022-03-15 09:23:30 -07:00
A.J. Beamon
149ca44b9b
Disallow setting raw access on a transaction that has specified a tenant
2022-03-15 09:23:30 -07:00
A.J. Beamon
0536e56725
The tenant cache uses a simpler eviction policy. Some various improvement around the use of futures. Add documentation for C API and fix inaccurate statement in special keys documentation.
2022-03-15 09:23:30 -07:00
A.J. Beamon
06f088e088
Pass along versions with GetKeyServerLocationsRequests, if we have them.
2022-03-15 09:23:30 -07:00
A.J. Beamon
68069c9784
Undo some unused changes. Fix tenant cache eviction.
2022-03-15 09:23:30 -07:00
A.J. Beamon
8bc2b283e1
Create a special keys API to create, delete, and read tenants. Remove the C API to create/delete tenants.
2022-03-15 09:23:30 -07:00
A.J. Beamon
1e1098ca9a
Don't check whether tenants are enabled when watch is called. Support unknown_tenant error.
2022-03-15 09:23:30 -07:00
A.J. Beamon
ecccfd0868
Add cache invalidation to tenant cache. Send tenant ID along with tenant name in requests to validate that the tenant hasn't changed. Fix a few bugs.
2022-03-15 09:23:30 -07:00
A.J. Beamon
fb73e1857a
Some get key requests should not happen within a tenant. Don't set read_system_keys in watch logic unless necessary. Set access_system_keys in a couple movekeys functions.
2022-03-15 09:23:30 -07:00
A.J. Beamon
2a21126028
Don't apply read prefixes on the client. Cache tenant data locally.
2022-03-15 09:23:30 -07:00
A.J. Beamon
a168faf219
Fix bugs in serialization and tenant prefix management on the client.
2022-03-15 09:21:27 -07:00
A.J. Beamon
c635dcd3ad
Add tenant support in the FDB native client
2022-03-15 09:21:27 -07:00
Markus Pilman
117ee637db
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-03-15 17:17:47 +01:00
Markus Pilman
bed799220a
Addressed review comments, added test
2022-03-15 16:57:26 +01:00
Jingyu Zhou
800478ad5e
Add a new client error code stale_version_vector
2022-03-14 20:50:12 -07:00
Josh Slocum
8d88b7ca41
making range assigner boundary changes fully synchronous to ensure no races with things reading assignments
2022-03-14 14:39:00 -05:00
Josh Slocum
98eeaac1b7
More debugging and fixing a stuck merge cursor
2022-03-14 11:57:56 -05:00
sfc-gh-tclinkenbeard
8dcac2f76d
Fix typos
2022-03-13 10:02:11 -03:00
Jingyu Zhou
9b8c101158
Fix a rare race with version vector cache
...
The events that led to the assertion failure are:
Many txn started, some get ReadVersion1, some get ReadVersion2.
Recovery happened.
GRV proxy change detected and the client version cache is cleared.
Old GRV responded with ReadVersion1, and client version cache is updated to ReadVersion1.
A txn starts reading with ReadVersion2, triggering the assertion.
The fix is to throw an error to trigger transaction restart so that a new GRV
will update the version cache.
2022-03-12 12:03:01 -08:00
Josh Slocum
82eef0c7f7
Better CF tracing for client and server
2022-03-11 16:50:38 -06:00
Josh Slocum
2a506f2dff
Updating SS desired every mutation to avoid CF merge deadlock
2022-03-10 20:11:49 -06:00
Josh Slocum
211e5b579a
Adding back debug stream uid to help track down bugs
2022-03-10 13:55:42 -06:00
Josh Slocum
903f7adbc4
more cleanup
2022-03-10 13:53:06 -06:00
Tao Lin
e2c7c30faf
GetMappedRange support serializable & check RYW & continuation ( #6181 )
2022-03-10 10:05:44 -08:00
Josh Slocum
1f964ac085
BM focused cleanup
2022-03-09 15:04:17 -06:00
Josh Slocum
b21d0943b9
client-focused cleanup
2022-03-09 10:01:25 -06:00
Josh Slocum
e71b3533f9
Merge branch 'main' into blob_integration
2022-03-09 08:59:56 -06:00
Markus Pilman
8fac0081a8
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-03-09 11:00:00 +01:00
A.J. Beamon
402fa4dd9e
Merge pull request #6428 from sfc-gh-ajbeamon/fdb-tenant-add-interfaces
...
Add server-side and protocol support for tenants
2022-03-08 15:33:18 -08:00
A.J. Beamon
63b8b838a2
Merge pull request #6558 from sfc-gh-ajbeamon/special-keys-limits
...
Add support for a limits hint in special keys range reads
2022-03-08 15:32:59 -08:00
A.J. Beamon
6f7adb04a5
Send a version along with GetKeyServerLocationsRequests to allow the proxy to reject missing tenants more quickly. Change the commit proxy tenant map to be unversioned.
2022-03-08 13:33:56 -08:00
Josh Slocum
58f5cea39b
fix typo
2022-03-07 11:20:24 -06:00
Josh Slocum
04f678d515
Fixing sample logic
2022-03-07 11:20:24 -06:00
Josh Slocum
665e182bcc
TSS Metrics improvements
2022-03-07 11:20:24 -06:00
A.J. Beamon
c99c7cf55f
Apply tenant prefixes on the storage server. The commit proxy can serve tenant location requests. Fix some bugs.
2022-03-06 21:54:21 -08:00
A.J. Beamon
5fa9d3e1b7
Add a tenant parameter to read and commit requests. Store a map of all tenants on commit proxy and storage servers. Add an option to require tenant mode.
2022-03-06 21:54:21 -08:00
A.J. Beamon
36435af4f5
Add support for a limits hint in special keys. Fix a typo and resolve some comment formatting weirdness.
2022-03-06 21:52:39 -08:00
Jingyu Zhou
1a5bf25b5c
Update code base to use fmt 8.1.1
2022-03-04 15:52:06 -08:00
A.J. Beamon
1555c0e2aa
Fix conflict between two recent merges by using the new errorUnsuppressed function.
2022-03-04 12:41:21 -08:00
A.J. Beamon
cdebda35ab
Merge pull request #5725 from sfc-gh-jfu/jfu-grv-cache
...
Add transaction option for clients to use cached read versions
2022-03-04 09:17:27 -08:00
Josh Slocum
2b8882ca0a
Adding exponential backoff for consecutive change feed stream failures
2022-03-02 18:46:40 -06:00
Xiaoxi Wang
e73c0a31e6
add wiggle_server_ids and wiggle_server_addresses in status json
2022-03-02 10:03:23 -08:00
Xiaoge Su
5e39da7741
fixup! Reformat the source
2022-02-28 18:03:52 -08:00
Xiaoge Su
02e396274f
Fix the compile error on NativeAPI.actor.cpp
2022-02-28 18:03:52 -08:00
Zhe Wu
aadd706a0a
Port back addressed comments for fixing get key location issue
2022-02-28 16:08:57 -08:00
Zhe Wu
0bdae35a2c
Address comments and move updateFailedEndpointRefreshTime
2022-02-24 16:35:30 -08:00
Zhe Wu
9c99c59b0c
Fix get key location overloading proxies
2022-02-24 16:35:30 -08:00
Josh Slocum
e5b4fb3d80
Adding explicit popVersion to change feed reply, like tlogs have
2022-02-24 15:20:18 -06:00
A.J. Beamon
250a88e682
Enforce that trace event suppression calls happen first when using trace event call chaining. Fix various instances where we weren't following this requirement.
2022-02-24 12:25:52 -08:00
Dan Lambright
8cc9a5af1a
Rebase 02/23
2022-02-23 14:23:28 -05:00
Jon Fu
ce1d71472d
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache
2022-02-23 12:35:25 -05:00
Markus Pilman
cf31e14904
Merge remote-tracking branch 'origin/main' into features/private-request-streams
2022-02-23 10:29:32 +01:00
Renxuan Wang
622d89b552
Rebase on main.
...
Since we changed ClusterConnectionString's status flag from boolean to enum in #6422 , we need to update this PR correspondingly.
2022-02-22 16:29:59 -08:00
Renxuan Wang
481587a8c6
Turn on hostname logic.
2022-02-22 16:29:59 -08:00
Jon Fu
ae071a7211
clean up debug trace lines
2022-02-22 17:16:11 -05:00
Jon Fu
b60cc02aa2
fix compile error
2022-02-22 13:10:30 -05:00
Jon Fu
31d56b2f50
adjust knob setting, revert trace changes, and disable cache if onError retries transactions
2022-02-22 12:42:53 -05:00
Markus Pilman
dc973fb67e
Allow List and first test
2022-02-22 11:15:16 +01:00
Josh Slocum
a7a3dccba5
TSS Mismatch Quarantine fix
2022-02-17 19:16:07 -06:00
Josh Slocum
ef25e4fdfb
Sending empty version back immediately to establish stream connection and acknowledgement queue for change feed stream requests
2022-02-17 18:10:17 -06:00
Josh Slocum
38a75a8b89
Merge branch 'main' into blob_integration
2022-02-17 17:47:38 -06:00
Josh Slocum
26480c4705
change feed popping fixes
2022-02-15 15:12:23 -06:00
Jon Fu
d399daebed
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache
2022-02-15 15:09:40 -05:00
Jon Fu
6f1c3d50bb
add debug traces for testing
2022-02-15 15:08:53 -05:00
Vaidas Gasiunas
092b5cee4b
MVC2.0: Rollback added code
2022-02-14 13:50:42 -08:00
Jon Fu
a63d218e9d
simplify test workload and adjust ratekeeper throttling strategy
2022-02-11 16:41:14 -05:00
Jon Fu
2e63ac6963
code review changes: additional test checks, cleanup extra code, mark internal option hidden
2022-02-10 17:01:09 -05:00
Jon Fu
458e708272
addressed code review comments: renamed variables, small functional changes, style changes
2022-02-10 16:17:54 -05:00
Josh Slocum
f4c235f134
propagating change_feed_popped correctly
2022-02-09 09:34:13 -06:00
Sreenath Bodagala
72e06369a4
Merge remote-tracking branch 'apple-upstream/main' into version-vector-prototype
2022-02-08 17:47:57 +00:00
Jon Fu
7e5ad88780
formatting for Github CI
2022-02-07 15:31:59 -05:00
Jon Fu
9c0a512cf5
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache
2022-02-07 14:51:12 -05:00
Jon Fu
ec2bbf0343
clean up some more trace lines and leftover code snippets
2022-02-07 14:50:04 -05:00
Josh Slocum
9b3f6fe452
More bugs in streaming split
2022-02-07 13:25:14 -06:00
Josh Slocum
88b1593681
Removing incorrect assert
2022-02-07 11:56:14 -06:00
Josh Slocum
88cab7fb67
More change feed fetching improvements and optimizations
2022-02-07 11:19:51 -06:00
Josh Slocum
c48ca9430d
Fixes for streaming split keys
2022-02-07 10:36:22 -06:00
Josh Slocum
809ec24184
More change feed buffer tuning
2022-02-07 08:19:19 -06:00
Josh Slocum
1736eabd33
fixes for split metrics stream
2022-02-04 18:24:55 -06:00
Josh Slocum
41a274ed9c
Fixing bug and refactoring iterative range splitting
2022-02-04 17:10:46 -06:00
Josh Slocum
ddfc301d74
Improving memory footprint of change feeds and making it configurable
2022-02-04 16:41:25 -06:00
Josh Slocum
a974773676
Handled change feed getting moved away or cancelled during move
2022-02-04 09:33:04 -06:00
Josh Slocum
2592c3f0ae
Implemented less efficient version of reply stream closing
2022-02-03 20:07:49 -06:00
Josh Slocum
9c8afdf35c
Debugged and fixed stuck change feed issue
2022-02-02 15:15:54 -06:00
Jon Fu
6d05ecffc2
remove all multi-version client code related to grv cache
2022-02-02 14:39:17 -05:00
Jon Fu
d8e7fea421
clean up some comments and debug changes
2022-02-02 14:03:32 -05:00
A.J. Beamon
d7819f8387
Merge pull request #6304 from sfc-gh-ajbeamon/reset-copy-trstate
...
Copy transaction state during reset
2022-01-31 09:11:04 -08:00
A.J. Beamon
89f4ed7481
Merge pull request #6296 from sfc-gh-ajbeamon/mark-external-system-transactions
...
Mark various externally exposed system transactions as read/access system keys
2022-01-28 14:16:40 -08:00
Renxuan Wang
f9f3735f73
Add resolveHostnamesBlocking() in ConnectionString and IClusterConnectionRecord.
...
Also, combine IClusterConnectionRecord::getConnectionString() and IClusterConnectionRecord::getMutableConnectionString() to IClusterConnectionRecord::getConnectionString(), and rename setConnectionString() to setAndPersistConnectionString().
2022-01-28 12:20:41 -08:00
Josh Slocum
ac1fd056dd
Added change feed popped read guard for blob workers
2022-01-28 10:45:33 -06:00
Josh Slocum
c26e11c2c3
Adding extra debugid to change feed stream requests to track things better
2022-01-27 18:53:27 -06:00
A.J. Beamon
8418cb2839
Mark various externally exposed system transactions as read/access system keys. Also adjust a few lock aware declarations to read lock aware.
2022-01-27 13:58:33 -08:00
A.J. Beamon
29f0bcda21
Copy transaction state during reset to avoid potential issues with operations that were in-flight during the reset
2022-01-27 13:13:48 -08:00
Josh Slocum
bc7b76b407
Fix for gotAll in getChangeFeedMutations
2022-01-27 14:25:08 -06:00
A.J. Beamon
1800259d7c
Merge pull request #6136 from sfc-gh-ajbeamon/client-description-trace-field
...
Add ClientDescription field for client processes to identify the client logging an event.
2022-01-26 11:37:31 -08:00
Jon Fu
9db49484d4
add reference counting to shared state and create new fdb_c_types header
2022-01-25 16:10:03 -05:00
Jon Fu
5d9843ec32
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache
2022-01-24 13:20:51 -05:00
Jon Fu
133ee2c113
added fdb_c_internal.h and set up shared space initialization in multiversion api db creation
2022-01-24 12:55:24 -05:00
Jon Fu
dd1d48754d
revert create_database signatures and added new shared state struct
2022-01-21 14:32:04 -05:00
Jon Fu
3a21438bb8
remove getclusterid api
2022-01-21 13:12:30 -05:00
Josh Slocum
a8f1d6fa00
StorageMetrics and and halting fixes
2022-01-20 19:27:25 -06:00
Jon Fu
915e2f6c1c
Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache
2022-01-20 16:17:20 -05:00
Jon Fu
ca1839c405
add sim_validation back to check staleness
2022-01-20 15:45:50 -05:00
Dan Lambright
9544379cdf
rebase
2022-01-20 11:12:33 -05:00
Josh Slocum
79704aa05f
Fixing change feed private mutation handling
2022-01-18 20:17:39 -06:00
Josh Slocum
58bc3a78ea
Fixed range assignment bug and fixed printf compiler warnings
2022-01-14 17:46:32 -06:00
Josh Slocum
e44dae0e5b
Removing incorrect assert
2022-01-14 15:47:51 -06:00
Josh Slocum
6b1e387df7
removed debugging
2022-01-14 15:44:31 -06:00
Josh Slocum
9174bfbb4e
bug fix and extra check in merge cursor
2022-01-14 15:26:37 -06:00
Josh Slocum
e708072fd8
Cleaned up new merge cursor and fixed memory lifetime issue with cancelling a change feed
2022-01-14 14:47:23 -06:00
A.J. Beamon
be80aa35a4
Fix memory issue with client watch metadata
2022-01-14 09:42:28 -08:00
Josh Slocum
0e58478c4d
Initial rework of merge cursor
2022-01-14 10:28:54 -06:00
A.J. Beamon
07e5319477
Merge pull request #6165 from sfc-gh-ajbeamon/native-api-refactor
...
Refactor Native API Transactions
2022-01-13 14:53:19 -08:00
Josh Slocum
661c50d29f
Handled server_overloaded in storageFeedVersionUpdater
2022-01-13 16:29:25 -06:00
A.J. Beamon
cef5d400f9
Fix issue where enabling debug transaction after the transaction has been used could cause an assertion failure.
2022-01-13 13:43:42 -08:00
A.J. Beamon
17415168b6
Make the use provisional proxies parameter be of type UseProvisionalProxies everywhere.
2022-01-13 12:41:20 -08:00
Josh Slocum
e7d15b2947
more explicit empty version problems
2022-01-13 12:10:44 -06:00
Josh Slocum
6e361a3283
Need delay(0) for empty check at start of change feed
2022-01-13 09:48:31 -06:00
Josh Slocum
515dc40153
Fixed issue with out of order empty versions
2022-01-13 08:43:29 -06:00
Jon Fu
5dccca4081
Implement initial concept of shared cache space in NativeAPI DatabaseContext
2022-01-12 16:49:00 -05:00
Josh Slocum
fe9a3d27d8
Not allowing whenAtLeast after change feed end version
2022-01-12 13:16:49 -06:00
Jon Fu
da76abbdf6
expose cluster ID through NativeAPI and C API
2022-01-11 17:06:25 -05:00
Josh Slocum
6b202fc9a8
Fixed stuck change feed storage updater and improved debugging
2022-01-11 15:35:54 -06:00
Josh Slocum
3b2e58ada8
Fixed rollback of snapshot files bug
2022-01-11 15:35:54 -06:00
Jon Fu
b7ca2a656c
remove epoch/generations for grv cache
2022-01-11 13:35:43 -05:00
Markus Pilman
8b77c8d79a
Remove unused OpenSSL code
2022-01-11 10:34:37 -08:00
Andrew Noyes
64090dd2c0
Suppress a small leak that LSAN is reporting
...
I cannot seem to figure out why LSAN is reporting this, but if it is a
real leak than it's only a few bytes. Better to have the ASAN tests
actually passing IMO.
2022-01-10 13:44:09 -08:00
Josh Slocum
5bd8350eac
also handling server overloaded in change feed pop
2022-01-10 13:13:00 -06:00
Evan Tschannen
91574fa0b9
fix: poppingChangeFeeds did not properly handle broken promise errors
2022-01-10 10:14:54 -08:00
Josh Slocum
21309fb55b
Change feed merge cursor whenAtLeast fix
2022-01-07 16:16:29 -06:00
Josh Slocum
807ec37e84
BG request retry on failed blob worker properly
2022-01-05 17:38:49 -06:00
Josh Slocum
0f66cca8e0
Fixing change feed race with empty mutation and error
2022-01-05 16:40:07 -06:00
A.J. Beamon
138932c12f
Fixed a memory bug in the watch map. A few other formatting tweaks, etc.
2022-01-05 11:26:43 -08:00
Josh Slocum
bc69521a91
Several fixes with restarting BW/BM
2022-01-05 12:48:53 -06:00
Jon Fu
7fab9ea5c0
adjust sideband workload to expose another consistency error
2022-01-05 12:51:39 -05:00