Commit Graph

994 Commits

Author SHA1 Message Date
A.J. Beamon 7ba2be6f30 Update simulator to sometimes create tenants it doesn't use. Fix bug in mapped range where it would fail if any tenants existed and transactions were run not using the tenants. 2022-05-05 10:03:30 -07:00
Hao Fu c1c316591c
Clean up constructMappedKey method (#7062)
* Clean up constructMappedKey method

* fix comments and bugs

* Fix search index

* Fix bug, if escaped is true after first round, it would skip the second round
2022-05-04 13:37:05 -07:00
Jingyu Zhou 05e63bc703
Fix orphaned storage server due to force recovery (#6914)
* Fix orphaned storage server due to force recovery

The force recovery can roll back the transaction that adds a storage server.
However, the storage server may now at version B > A, the recovery version.
As a result, its peek to buddy TLog won't return TLogPeekReply::popped to
trigger its exit, and instead getting a higher version C > B back. To the
storage server, this means the message is empty, thus not removing itself and
keeps peeking.

The fix is to instead of using recovery version as the popped version for the
SS, we use the recovery transaction version, which is the first transaction
after the recovery. Force recovery bumps this version to a much higher version
than the SS's version. So the TLog would set TLogPeekReply::popped to trigger
the storage server exit.

* Fix tlog peek to disallow return empty message between recoveredAt and recovery txn version

This contract today is not explicitly set and can cause storage server to fail
with assertion "rollbackVersion >= data->storageVersion()". This is because if
such an empty version is returned, SS may advance its storage version to a
value larger than the rollback version set in the recovery transaction.

The fix is to block peek reply until recovery transaction has been received.

* Move recoveryTxnReceived to be per LogData

This is because a shared TLog can have a first generation TLog which is already
setting the promise, thus later generations won't wait for the recovery version.
For the current generation, all peeks need to wait, while for older generations,
there is no need to wait (by checking if they are stopped).

* For initial commit, poppedVersion needs to be at least 2

To get rid of the previous unsuccessful recovery's recruited seed
storage servers.
2022-05-02 17:17:37 -07:00
Ray Jenkins dc9e782ccc
OpenTelemetry Tracing Perf Fixes (#6990) 2022-05-02 14:56:51 -05:00
Jingyu Zhou 0ca9761088 Fix IDE build warnings and errors 2022-05-01 16:20:57 -07:00
Evan Tschannen 3bab26c01b fix: prevent a storage server from attempting to read the cluster id from itself due to a stale cache entry 2022-04-29 14:56:43 -07:00
Steve Atherton 2678546c00
Merge pull request #6950 from sfc-gh-jslocum/cf_delete_race
Fixing change feed deleted from multiple sources race
2022-04-29 13:58:22 -07:00
Hao Fu 0362beb3f3
Fix limit bug in indexPrefetch (#7004)
limit for getRange was incorrectly set to 1, while
a single logical record is consists of at least 2
keyValue, causing record layer fail to unsplit the
logical record.
2022-04-28 17:44:19 -07:00
Josh Slocum 5d1afd4c04 Fixing change feed deleted from multiple sources race 2022-04-25 16:51:20 -05:00
Ray Jenkins 1c5bf135d5
Revert "Migrate to OpenTelemetry tracing. (#6855)" (#6941)
This reverts commit 5df3bac110.
2022-04-25 09:29:56 -05:00
Ray Jenkins 5df3bac110
Migrate to OpenTelemetry tracing. (#6855) 2022-04-20 09:26:37 -05:00
Lukas Joswiak 07d11ec2e1 Fix failing upgrades due to non-persisted initial cluster version 2022-04-18 10:59:17 -07: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 62975f87d1 Formatting 2022-04-08 15:04:46 -04:00
Dan Lambright 5bdc525353
Merge branch 'main' into vv 2022-04-08 13:16:04 -04:00
Josh Slocum aaaf42525a misc bg operational fixes and improvements 2022-04-05 12:26:00 -05:00
Evan Tschannen c168840b54 blob workers properly destroy change feeds when they are no longer needed 2022-04-05 11:02:32 -05:00
Jingyu Zhou 64d4658034 Merge branch 'main' into vv
Fix Conflicts:
	flow/error_definitions.h
2022-04-01 21:49:24 -07:00
Bharadwaj V.R f749aac223
Merge branch 'apple:main' into ssupdateb4registration 2022-03-31 18:59:44 -07:00
Chaoguang Lin 7d365bd1bb
Remote ikvs debugging (#6465)
* initial structure for remote IKVS server

* moved struct to .h file, added new files to CMakeList

* happy path implementation, connection error when testing

* saved minor local change

* changed tracing to debug

* fixed onClosed and getError being called before init is finished

* fix spawn process bug, now use absolute path

* added server knob to set ikvs process port number

* added server knob for remote/local kv store

* implement simulator remote process spawning

* fixed bug for simulator timeout

* commit all changes

* removed print lines in trace

* added FlowProcess implementation by Markus

* initial debug of FlowProcess, stuck at parent sending OpenKVStoreRequest to child

* temporary fix for process factory throwing segfault on create

* specify public address in command

* change remote kv store knob to false for jenkins build

* made port 0 open random unused port

* change remote store knob to true for benchmark

* set listening port to randomly opened port

* added print lines for jenkins run open kv store timeout debug

* removed most tracing and print lines

* removed tutorial changes

* update handleIOErrors error handling to handle remote-ikvs cases

* Push all debugging changes

* A version where worker bug exists

* A version where restarting tests fail

* Use both the name and the port to determine the child process

* Remove unnecessary update on local address

* Disable remote-kvs for DiskFailureCycle test

* A version where restarting stuck

* A version where most restarting tests green

* Reset connection with child process explicitly

* Remove change on unnecessary files

* Unify flags from _ to -

* fix merging unexpected changes

* fix trac.error to .errorUnsuppressed

* Add license header

* Remove unnecessary header in FlowProcess.actor.cpp

* Fix Windows build

* Fix Windows build, add missing ;

* Fix a stupid bug caused by code dropped by code merging

* Disable remote kvs by default

* Pass the conn_file path to the flow process, though not needed, but the buildNetwork is difficult to tune

* serialization change on readrange

* Update traces

* Refactor the RemoteIKVS interface

* Format files

* Update sim2 interface to not clog connections between parent and child processes in simulation

* Update comments; remove debugging symbols; Add error handling for remote_kvs_cancelled

* Add comments, format files

* Change method name from isBuggifyDisabled to isStableConnection; Decrease(0.1x) latency for stable connections

* Commit the IConnection interface change, forgot in previous commit

* Fix the issue that onClosed request is cancelled by ActorCollection

* Enable the remote kv store knob

* Remove FlowProcess.actor.cpp and move functions to RemoteIKeyValueStore.actor.cpp; Add remote kv store delay to avoid race; Bind the child process to die with parent process

* Fix the bug where one process starts storage server more than once

* Add a please_reboot_remote_kv_store error to restart the storage server worker if remote kvs died abnormally

* Remove unreachable code path and add comments

* Clang format the code

* Fix a simple wait error

* Clang format after merging the main branch

* Testing mixed mode in simulation if remote_kvs knob is enabled, setting the default to false

* Disable remote kvs for PhysicalShardMove which is for RocksDB

* Cleanup #include orders, remove debugging traces

* Revert the reorder in fdbserver.actor.cpp, which fails the gcc build

Co-authored-by: “Lincoln <“lincoln.xiao@snowflake.com”>
2022-03-31 17:08:59 -07:00
Bharadwaj V.R 8ff3b7d8a2
Merge branch 'apple:main' into ssupdateb4registration 2022-03-31 16:12:06 -07:00
Tao Lin 001909be08
Fixes for when getMappedRange cannot parse as tuple (#6665) 2022-03-31 14:06:45 -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 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
Bharadwaj V.R 7926917d5f
Merge branch 'apple:main' into ssupdateb4registration 2022-03-29 13:04:19 -07:00
Bharadwaj V.R 2f7b68d06f Switch to signalling storageIntefaceReg actor with an Optional<Future<Void>> 2022-03-29 11:50:46 -07:00
Josh Slocum 2f8e9d9de0 misc bg fixes 2022-03-29 08:05:52 -05:00
Bharadwaj V.R 726cb3a18f merge commits from main 2022-03-28 22:49:03 -07:00
Bharadwaj V.R 6d7a4b91c8 Create a server knob to control server version convergence threshold before SSI registration. Watch version lag in SS update loop and register when within lag limit 2022-03-27 12:37:38 -07:00
Bharadwaj V.R f13c09eec7 Refactor SSI registration actor for error handling 2022-03-26 14:20:15 -07:00
Bharadwaj V.R aa515524eb Fix initialization of interface registration promise 2022-03-25 14:35:48 -07:00
Bharadwaj V.R 961e4ae7fd ratekeeper and ser-des fixes 2022-03-24 17:25:07 -07:00
Trevor Clinkenbeard bdff100ef9
Merge pull request #6582 from sfc-gh-tclinkenbeard/global-tag-throttling2
Various `TagThrottler` enhancements
2022-03-23 12:54:30 -07:00
sfc-gh-tclinkenbeard 0726832e80 Merge remote-tracking branch 'origin/main' into global-tag-throttling2 2022-03-23 11:05:02 -07:00
Bharadwaj V.R 3a67faca7a Re-register SSI as ready to accept requests 2022-03-22 13:41:06 -07:00
Josh Slocum f27475e2f4 Merge branch 'main' into blob_integration 2022-03-22 11:41:58 -05:00
Josh Slocum 917c7acca5 Using desiredOldest for when change feed metadata is safe 2022-03-21 22:21:40 -05:00
Josh Slocum 7b3a65676b Fixing another change feed fetch and move race 2022-03-21 17:06:47 -05:00
Bharadwaj V.R b4bf80c01d Make sure SSI accepting request state is set before adding new storage servers 2022-03-21 14:47:34 -07:00
sfc-gh-tclinkenbeard a71099471b Update copyright header dates 2022-03-21 13:36:23 -07:00
Josh Slocum 58c0f3d772 Handling change feed create mutation getting rolled back properly 2022-03-21 12:46:59 -05:00
Josh Slocum bed6d428fb Found another change feed fetch and remove race 2022-03-20 14:11:00 -05:00
Bharadwaj V.R d277571463 Re-register SS interface when update() runs upon recovery 2022-03-17 17:16:27 -07:00
Josh Slocum 37e7c80f26 Merge branch 'main' into blob_integration 2022-03-17 18:45:42 -05:00
Bharadwaj V.R 564c016da5 Create actor for storage interface registration 2022-03-17 16:11:06 -07:00
Bharadwaj V.R 56613bcde5 Create a boolean state indicating whether an SSI is open for traffic 2022-03-17 15:59:41 -07:00
Andrew Noyes d39b881045
Avoid a call to VersionedMap::ViewAtVersion::lower_bound (#6606)
* Avoid a call to VersionedMap::ViewAtVersion::lower_bound in some cases

* Avoid lower_bound in both cases
2022-03-17 09:03:20 -07:00
sfc-gh-tclinkenbeard 56026b5b6f Merge remote-tracking branch 'origin/main' into global-tag-throttling2 2022-03-16 22:29:43 -07:00
Evan Tschannen f28dfc12b2
Merge pull request #6484 from kakaiu/adaptive-fetchKey
Quick fix fetchKeys
2022-03-16 15:06:22 -07:00
sfc-gh-tclinkenbeard 320c115c71 Apply clang-format to mis-formatted files 2022-03-16 14:25:32 -07:00
sfc-gh-tclinkenbeard 58de6e22cc Add BalanceOnRequests boolean parameter for ModelInterface 2022-03-16 14:25:32 -07:00
sfc-gh-tclinkenbeard faecd8a8f8 Merge remote-tracking branch 'origin/main' into global-tag-throttling2 2022-03-16 13:45:23 -07:00
Zhe Wang 73fd5c01ae quick-fix-fetch-key 2022-03-16 16:39:35 -04: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
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 2a21126028 Don't apply read prefixes on the client. Cache tenant data locally. 2022-03-15 09:23:30 -07:00
A.J. Beamon c635dcd3ad Add tenant support in the FDB native client 2022-03-15 09:21:27 -07:00
Josh Slocum 82eef0c7f7 Better CF tracing for client and server 2022-03-11 16:50:38 -06:00
Josh Slocum 26e95d43ef SS needs to persist its TSS pair ID to make metrics accurate (and avoid buggify issues in simulation) 2022-03-11 11:38:58 -06:00
sfc-gh-tclinkenbeard cad106f9eb Support sending multiple busy tags from storage server to ratekeeper 2022-03-11 12:09:15 -04:00
sfc-gh-tclinkenbeard 91d1a172d8 Move TransactionTagCounter into separate file 2022-03-11 12:09:15 -04:00
sfc-gh-tclinkenbeard e0006ea957 Mark TransactionTagCounter::costFunction const 2022-03-11 12:09:15 -04: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
Josh Slocum c35e020da7 SS and BM test macros 2022-03-10 12:38:23 -06:00
Tao Lin e2c7c30faf
GetMappedRange support serializable & check RYW & continuation (#6181) 2022-03-10 10:05:44 -08:00
Josh Slocum d7367dad99 Simplifying CF gap validation to ignore SS CF fetches 2022-03-10 11:56:22 -06:00
Josh Slocum 9dbb6d216e SS-focused cleanup 2022-03-09 10:39:04 -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 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
A.J. Beamon 5003a0d662 Remove unnecessary parameter from clampRangeToTenant 2022-03-08 12:01:51 -08:00
A.J. Beamon 07169b1f11 Add unknown_tenant error to documentation. Avoid doing an extra tenant lookup in the clampRangeToTenant function. 2022-03-07 10:37:22 -08:00
A.J. Beamon 3ae98189af Server processes send unknown_tenant responses back to clients, which is meant to be retried after updating the tenant cache. Fix bug where key selectors could be truncated after applying the tenant prefix. 2022-03-06 21:54:21 -08:00
A.J. Beamon 72a34945ce Add the ability to disable tenants. Server processes verify the ID of tenants being read or written. 2022-03-06 21:54:21 -08:00
A.J. Beamon b4feddea8d Fix a couple bugs. Don't store old versions in tenant map indefinitely. 2022-03-06 21:54:21 -08:00
A.J. Beamon e898e59d18 Fix merge issue that caused tenant serialization problems. Fix case where arena was passed by value rather than reference. Watches should check the tenant map at the latest version rather than the watch version. 2022-03-06 21:54:21 -08: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 bd3920c23d Wait to initialize the SS tenant map until after the storage server has been added. Add some extra logging around inserting and erasing tenants. 2022-03-06 21:54:21 -08:00
A.J. Beamon b8192828d9 Add support for the global tenant prefix to tenant map entries 2022-03-06 21:54:21 -08:00
A.J. Beamon 9c4773164e Add ID to requests 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
Neethu Haneesha Bingi 8796a763a5 Rocksdb knobs for compaction, storageserver canCommit() waiting if rocksdb overloaded. 2022-03-04 12:41:17 -08:00
Josh Slocum 06f58f848d Improving change feed validation, and another popped while reading race fixed 2022-03-01 12:05:55 -06:00
Josh Slocum f277662419 Fixing some change feed pop durability inconsistencies 2022-02-28 12:50:43 -06:00
Josh Slocum d41b18d132 more change feed validation fixes 2022-02-25 09:08:26 -06:00
Josh Slocum eac1cd6366 Fixing another case in change feed validation 2022-02-25 08:16:03 -06:00
Josh Slocum f3f4764916 Fixing change feed validation to handle special case 2022-02-24 17:12:05 -06:00
Josh Slocum cee9f42099 More fixes and debugging improvements found by validation 2022-02-24 16:39:24 -06: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
Josh Slocum 43543b0d0e Removing incorrect CF validation asserts 2022-02-24 12:39:15 -06:00
Josh Slocum b6d02478cd Adding stream uid tracking for ss feed debugging 2022-02-24 12:19:25 -06:00
Josh Slocum 86236b766d Added print debugging for CF memory vs disk validation 2022-02-24 12:11:06 -06:00
Josh Slocum b67930cb93 Fixing bug in new change feed fetch logic 2022-02-24 11:31:36 -06:00
Josh Slocum 1de4fb1b9e Adding explicit stopVersion instead of stopped status to change feed durable data, several other minor fixes 2022-02-24 11:02:15 -06:00
Josh Slocum 6739d506c4 More fixes for handling change feed empty version >= ss version 2022-02-22 16:23:32 -06:00
Josh Slocum d89c6bb3de Fixing initial change feed stream reply to be in try/catch 2022-02-22 13:55:40 -06:00
Josh Slocum 5dca00a21d Cleaning up change feed on move triggers when stream is cancelled 2022-02-22 13:48:57 -06:00
Josh Slocum e75ab5f3a0 not advancing popped version of change feed sideband from another server 2022-02-22 11:22:35 -06:00
Josh Slocum f9f676abf9 Also re-persisting change feed metadata on fetch after cleanup 2022-02-17 19:21:40 -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 c87d868dd2 Fix SS restart and change feed pop races 2022-02-17 15:55:24 -06:00
Josh Slocum f60420a8e6 Correctly updating change feed storage/durable versions after fetch 2022-02-17 10:36:32 -06:00
Josh Slocum 26480c4705 change feed popping fixes 2022-02-15 15:12:23 -06:00
Josh Slocum 53573e7648 Don't reset CF fetch version on pop 2022-02-15 15:12:05 -06:00
Josh Slocum b5ff2006b2 Removing incorrect assert 2022-02-14 11:36:54 -06:00
Josh Slocum 9175ba354a Adding a separate phase for the end of change feed fetching to handle changes in fetchKeys available durability 2022-02-11 17:25:56 -06:00
Josh Slocum 0db843bc56 more CF movement and cleanup races 2022-02-11 16:04:28 -06:00
Josh Slocum 3bbddce668 Fixing shard move away and back race 2022-02-11 10:14:26 -06:00
Josh Slocum 8a56349ea3 Fixing shard move away then back then away race 2022-02-11 10:12:49 -06:00
Josh Slocum 08505325d3 Fixing change feed mapping in cleanup refactor 2022-02-11 08:41:01 -06:00
Josh Slocum f9c16ed937 misc change feed improvements 2022-02-11 08:14:00 -06:00
Josh Slocum 36742bcd7e Fixing durability model of change feed cleanup 2022-02-10 18:52:17 -06:00
Josh Slocum 631cf0b085 minor memory optimizations for SS change feeds 2022-02-10 12:21:22 -06:00
Josh Slocum f997b2dab4 Smarter change feed cancelling when data moved away 2022-02-10 12:21:22 -06:00
Josh Slocum 4af1b24c74 Using higher transferred version when fetching change feeds 2022-02-10 08:00:52 -06:00
Josh Slocum 9189ea0448 Fixed SS restart and mutation log race 2022-02-09 15:37:09 -06:00
Josh Slocum d7955a9017 Much better mechanism for change feed popped checking 2022-02-08 14:23:04 -06:00
Josh Slocum 6adf119e3d Fixing change feed durableFetchVersion not getting updated 2022-02-08 13:59:06 -06:00
Josh Slocum 90a870962d Unblocking bounded change feed request in changeFeedClientVersions once it hit end 2022-02-08 13:22:17 -06:00
Sreenath Bodagala 72e06369a4 Merge remote-tracking branch 'apple-upstream/main' into version-vector-prototype 2022-02-08 17:47:57 +00:00
Josh Slocum 9885d2cc90 More change feed fetch and read race fixes 2022-02-07 16:21:38 -06:00
Josh Slocum 9b3f6fe452 More bugs in streaming split 2022-02-07 13:25:14 -06:00
Josh Slocum 88cab7fb67 More change feed fetching improvements and optimizations 2022-02-07 11:19:51 -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 0a3608a33b Fixed issue with change feed fetching durability 2022-02-04 11:03:29 -06:00
Josh Slocum 03d91fd42d Fixing change feed fetch durability semantics 2022-02-04 09:41:39 -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 d0c4c6856f Fix pop at end of CF fetch 2022-02-03 12:38:37 -06:00
Josh Slocum 0f9b2f7c48 Change feed fetch refactor and pop during fetch improvements 2022-02-03 10:49:30 -06:00
Josh Slocum b324cf4bc4 Fixing TSS buggify in restarting tests 2022-02-03 06:46:28 -06:00
Josh Slocum d3f9c01120 Handling change feed fetch for feeds added during fetching a range 2022-02-02 15:21:11 -06:00
Josh Slocum f187d01b71 Improving change feed performance and fixing durability issue 2022-02-02 11:41:29 -06:00
Josh Slocum d0e89ecdd5 Including Change Feeds in fetch keys budget 2022-02-01 14:39:10 -06:00
Josh Slocum 2c22d07b39 Several change feed popping fixes for behind SS 2022-02-01 10:27:41 -06:00
Josh Slocum 25a0d857fa Fixing issue with change_feed_popped 2022-01-31 17:19:52 -06:00
Josh Slocum d4931348c1 Fix for new change feed movement 2022-01-31 11:18:47 -06:00
Josh Slocum c3cece552c Fixes for previous 2022-01-28 15:19:00 -06:00
Josh Slocum cf7ed4ee40 Simplify change feed fetching to not inject anything at all during fetch and rely on reading from the remote feeds 2022-01-28 14:21:26 -06:00