19962 Commits

Author SHA1 Message Date
Jon Fu
c683795f6b add python bindings and revise test code 2022-04-13 14:20:24 -04:00
Jon Fu
718119af83 simplest initial implementation of Java listTenants 2022-04-13 14:20:17 -04:00
Ray Jenkins
327c1da0a0 Remove to_7.2.0 tests from CMakeLists.txt 2022-04-12 17:06:18 -07:00
Ray Jenkins
f07fa29105 move ConfigureStorageMigrationTestRestarts to to_7.1.0 directory and remove to_7.2.0 2022-04-12 17:06:18 -07:00
Ray Jenkins
3f61f869e6 fix to_7.x tests 2022-04-12 17:06:18 -07:00
Lukas Joswiak
0783b044fe Add protocol feature 2022-04-12 14:35:09 -07:00
Lukas Joswiak
08a8eb2b37 Check for viable version before deserializing 2022-04-12 14:35:09 -07:00
FoundationDB CI
6fb84adc67
update version after 7.1.0 release 2022-04-12 19:55:58 +00:00
Sreenath Bodagala
e902ac543a
Merge pull request #6829 from sbodagala/main
Version vector encoding
2022-04-12 14:19:31 -04:00
Aaron Molitor
1328c34323 update version to 7.2.0 -- address pr comments 2022-04-11 23:23:27 -05:00
Aaron Molitor
5ba8b82ba6 update version to 7.2.0 -- address pr comments 2022-04-11 23:23:27 -05:00
Aaron Molitor
6b2d0e5d6b update version to 7.2.0 -- protocol version 2022-04-11 23:23:27 -05:00
Aaron Molitor
63a2e317fb update version to 7.2.0 -- pr comment 2022-04-11 23:23:27 -05:00
Aaron Molitor
c440365779 update version to 7.2.0 -- pr comment protocol version 2022-04-11 23:23:27 -05:00
Aaron Molitor
f49b761d14 update version to 7.2.0 -- pr comment 2022-04-11 23:23:27 -05:00
Aaron Molitor
8db8545db2 update version to 7.2.0 -- protocol version changes 2022-04-11 23:23:27 -05:00
Aaron Molitor
cbaef8f03b update version to 7.2.0 2022-04-11 23:23:27 -05:00
Johannes M. Scheuermann
dca18ac71e Add support for the reboot command in go bindings 2022-04-11 14:56:18 -07:00
Sreenath Bodagala
cb3add17b8 - Encode version vector before sending it over the wire.
Encoding methods used:

  - Tag localities: Run length encoding
  - Tag ids: Compact representation
  - Commit versions: delta encoding.

  If "n" is the number of entries in the version vector, with the tags
  spread over "m" data centers, these techniques will reduce the number
  of bytes to represent the version vector from "(11 * n)" bytes to
  "(3 * m + 2 * n)" / "(3 * m + 3 * n)" bytes (depending on the max tag
  id value, and ignoring some constants) in the best case.
2022-04-11 21:03:09 +00:00
Bharadwaj V.R
129a7b5daf Use boolean-param for GetTeamRequest params 2022-04-11 13:27:08 -07:00
Xiaoxi Wang
7960f77040
Merge pull request #6811 from sfc-gh-xwang/fix-conf-restart
fix configure workload typo
2022-04-11 10:19:47 -07:00
Vaidas Gasiunas
ca563466a6
Merge pull request #6401 from sfc-gh-mpilman/features/private-request-streams
Features/private request streams
2022-04-11 18:29:06 +02:00
Ata E Husain Bohra
933e5bbd2e
EncryptKeyProxy server APIs for simulation runs. (#6727)
* EncryptKeyProxy server APIs for simulation runs.

Description

  diff-2: FlowSingleton util class
              Bug fixes
  diff-1: Expected errors returned to the caller

Major changes proposed are:
1. EncryptKeyProxy server APIs:
 1.1. Lookup Cipher details via BaseCipherId
 1.2. Lookup latest Cipher details via encryption domainId.
2. EncyrptKeyProxy implements caches indexed by: baseCipherId &
   encyrptDomainId
3. Periodic task to refresh domainId indexed cache to support
   'limiting cipher lifetime' abilities if supported by
   external KMS solutions.

Testing

EncyrptKeyProxyTest workload to validate the newly added code.
2022-04-11 09:08:42 -07:00
Markus Pilman
1bf20d44cd
Merge pull request #6826 from johscheuer/fix-pr-template-branch
Rename master to main in PR template
2022-04-11 09:41:58 -06:00
Markus Pilman
099385928c Address review comments 2022-04-11 09:17:10 -06:00
Johannes M. Scheuermann
96181feab6 Fix Windows build path 2022-04-11 08:58:25 -05:00
Johannes M. Scheuermann
d2d8f42222 Add new c libs to client package 2022-04-11 08:58:25 -05:00
Johannes M. Scheuermann
2b32e683e6 Rename master to main in PR template 2022-04-11 08:53:33 +01:00
Markus Pilman
64ac66c1d0 fix merge conflict 2022-04-10 14:16:21 -06:00
Markus Pilman
16467262f0 Merge remote-tracking branch 'origin/main' into features/private-request-streams 2022-04-10 14:12:37 -06:00
Markus Pilman
d8a0b57b6c clients have to listen on a port in simulation 2022-04-10 14:09:15 -06:00
He Liu
bdc22646c1 Introduced fetchCheckpointKeyValues API in StorageServerInterface. 2022-04-08 18:33:39 -07:00
Steven Li
01234720e7 update prerelease package format (#6733) 7.1.0 2022-04-08 18:15:40 -05:00
Aaron Molitor
16e96e9103 attempt to fix rpm dependency issue for release candidate build 2022-04-08 18:15:40 -05:00
Dan Lambright
9d433c1bef
Merge pull request #6764 from apple/vv
version-vector-prototype to main branch
2022-04-08 18:50:12 -04:00
Dan Lambright
e43fde16ec formatting 2022-04-08 17:28:16 -04:00
Renxuan Wang
938e8ed996 Do not throw lookup_failed when resolving fails.
Instead, return an empty Optional<NetworkAddress>. For resolveWithRetry(), still return NetworkAddress because it retries until succeed.
2022-04-08 14:21:49 -07:00
Renxuan Wang
0f894509d9 Simplify the isCoordinator check in registerWorker. 2022-04-08 14:21:49 -07:00
Renxuan Wang
70c49b1b87 DNS cache entry should also be removed in tryGetReplyFromHostname(). 2022-04-08 14:21:49 -07:00
Renxuan Wang
f3a8ac21be Change resolve functions in hostname to return network address. 2022-04-08 14:21:49 -07:00
Renxuan Wang
3290c81f1d Fix tryGetReplyFromHostname(). 2022-04-08 14:21:49 -07:00
Renxuan Wang
bd6d765b83 Fix ConfigFollowerInterface constructor. 2022-04-08 14:21:49 -07:00
Renxuan Wang
a752faf122 resolveFinish should be triggered when resolve succeeds. 2022-04-08 14:21:49 -07:00
neethuhaneesha
b7096c410f
Merge pull request #6795 from neethuhaneesha/rocksdb-blocksize
Adding rocksdb block size option.
2022-04-08 14:20:54 -07: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
Zhe Wang
37054af7e2
Fix RocksDB Metrics (#6803)
* fix-metrics-in-rocksdb

* remain-GetIntProperty-for-checkRocksdbState

Co-authored-by: Zhe Wang <zhewang@Zhes-MacBook-Pro.local>
2022-04-08 17:07:22 -04:00
Jingyu Zhou
284dbdc473 Fix cmake USE_GPERFTOOLS compiling error
Otherwise, I got weird errors like pthread library is not found when checking
compilers.
2022-04-08 13:56:06 -07:00
Trevor Clinkenbeard
ba8fbca038
Merge pull request #6752 from sfc-gh-tclinkenbeard/improve-snapshot-fault-tolerance
Improve fault tolerance of snapshots
2022-04-08 12:46:50 -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