Commit Graph

1360 Commits

Author SHA1 Message Date
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
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
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
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
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