Commit Graph

365 Commits

Author SHA1 Message Date
Markus Pilman cf31e14904 Merge remote-tracking branch 'origin/main' into features/private-request-streams 2022-02-23 10:29:32 +01:00
Jon Fu 2e2c8bf88c Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache 2022-02-22 12:43:55 -05:00
Markus Pilman 53b4d8a307 Added ClientWorkload implementation 2022-02-22 14:29:51 +01:00
Trevor Clinkenbeard 82bbfa8aee
Merge pull request #6395 from sfc-gh-tclinkenbeard/global-tag-throttling
Create `TagThrottler` class
2022-02-18 13:17:28 -08:00
Josh Slocum 38a75a8b89 Merge branch 'main' into blob_integration 2022-02-17 17:47:38 -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
sfc-gh-tclinkenbeard 00f12687c6 Add TagThrottler class 2022-02-14 16:03:37 -08:00
Vaidas Gasiunas 092b5cee4b MVC2.0: Rollback added code 2022-02-14 13:50:42 -08:00
sfc-gh-tclinkenbeard d4b4479399 Rename RatekeeperData.actor.cpp to Ratekeeper.actor.cpp 2022-02-14 12:35:50 -08:00
sfc-gh-tclinkenbeard 9beae3fb64 Add RatekeeperData class with refactored implementation 2022-02-14 11:49:45 -08:00
Jon Fu 7492b755d8 Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache 2022-02-14 14:06:49 -05:00
sfc-gh-tclinkenbeard 3f0e2ae62e Merge remote-tracking branch 'origin/main' into dd-refactor 2022-02-09 14:29:16 -08:00
Aaron Molitor 96dd86ebf8 update RocskDB and Boost
add Finduring, and include into fdbserver
add BOOST asio/uring settings to fdbserver compile
move portable rocks, liburing up to be configurable at build time.
2022-02-09 10:48:18 -06:00
Jon Fu 9c0a512cf5 Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache 2022-02-07 14:51:12 -05:00
sfc-gh-tclinkenbeard 6ab4bc0a06 Move all TC*Info classes into TCInfo.h 2022-02-04 10:59:01 -08:00
sfc-gh-tclinkenbeard 0c8834ff66 Move TCServerInfo into its own files 2022-02-04 10:20:11 -08:00
sfc-gh-tclinkenbeard 68ec591cf9 Move DDTeamCollection into its own files 2022-02-04 00:39:42 -08:00
Ata E Husain Bohra 591ef57857
Upgrade AES 128 GCM -> AES 256, StreamCipher code refactor (#6314)
* Upgrade AES 128 GCM -> AES 256, StreamCipher code refactor

Major changes proposed are:
1. Refactor StreamCipher code to enable instantiation of
   multiple encryption keys. However, code still retains
   a globalEncryption key semantics used in Backup file
   encryption usecase.
2. Enhance StreamCipher to provide HMAC signature digest
   generation. Further, the class implements HMAC encryption
   key derivation function.
3. Upgrade StreamCipher to use AES 256 GCM mode from currently
   supported AES 128 GCM mode.
   Note: The code changes the encryption key size, however, the
         feature is NOT currently in use, hence, should be OK.
3. Add EncryptionOps validation and benchmark toml supported
   workload, it does the following:
   a. Allow user to configure encrypt-decrypt of a fixed size
      buffer or variable size buffer [100, 512K]
   b. Allow user to configure number of interactions of the runs,
      in each iteration: generate random data, derive an encryption
      key using HMAC SHA256 method, encrypt data and
      then decrypt data. It collects following metrics:
    i) time taken to derive encryption key.
    ii) time taken to encrypt the buffer.
    iii) time taken to decrypt the buffer.
    iv) total bytes encrypted and/or decrypted
   c. Along with stats it basic basic validations on the encrypted
      and decrypted buffer
   d. On completion for test, records the above mentioned metrics
      in trace files.
2022-01-31 19:52:44 -06:00
A.J. Beamon 6affc58e97 Rename high contention allocator implementation in fdbclient 2022-01-31 14:25:38 -08:00
A.J. Beamon 027fe80594 Added a generic high contention allocator implementation to fdbclient. This is an adapted version of the flow bindings HCA implementation. 2022-01-28 15:34:30 -08:00
Ata E Husain Bohra 87ee4cf958 Add new FDB EncryptKeyProxy role
Major changes includes:

1. Add a new FDB role responsible- EncyrptKeyProxy. The role is
   responsible to expose APIs to fetch encyrption keys interacting
   with external Encryption KeyManager interface.
2. The process is a FDB singleton process following similar recruitment
   rules as other singleton processes in the system.
3. Code to recruit the worker process; given the encryption keys are
   needed during recovery (decode TLog records), for now the process
   is co-located in same datacenter as ClusterController.
4. Skeleton process actor code; more functionality will be added in
   subsequent PRs.

NOTE: The code is protected under a SERVER_KNOB with the default
      value as 'false' for now.
2022-01-25 17:38:27 -08:00
Josh Slocum 14cc0a8b02 Got BlobGranuleCorrectnessWorkload passing a single test 2022-01-25 15:46:29 -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
Ata E Husain Bohra 936bf5336a
Revert "Revert "Refactor: ClusterController driving cluster-recovery state machine" (#6191)
* Revert "Revert "Refactor: ClusterController driving cluster-recovery state machine""

Major changes includes:
1. Re-revert Sequencer refactor commits listed below (in listed order):
1.a. This reverts commit bb17e194d9.
1.b. This reverts commit d174bb2e06.
1.c. This reverts commit 30b05b469c.

2. Update Status.actor to track ClusterController interface to track
   recovery status.
3. Introduce a ServerKnob to define "cluster recovery trace event"
   prefix; for now keeping it as "Master", however, it should allow
   smooth transition to "Cluster" prefix as it seems more appropriate.
2022-01-06 12:15:51 -08:00
Aaron Molitor bb17e194d9 Revert "Refactor: ClusterController driving cluster-recovery state machine"
This reverts commit 1520390bc5.
2021-12-24 11:25:51 -08:00
Ata E Husain Bohra 1520390bc5 Refactor: ClusterController driving cluster-recovery state machine
diff-1: Address Jingyu's review comments
 diff-2: Introduce ClusterRecovery actor to seperate out
         cluster recovery code

At present, cluster recovery process consists of following steps:
1. ClusterController clusterWatchDatabase actor recruits
   master/sequencer process.
2. Sequencer process implements the cluster recovery state machine,
   responsible to recruit all other processes as well restore the
   cluster state.

Patch proposes a scheme where the cluster recovery state machine
is implemented and driven by the ClusterController process instead
of the Sequencer process.

Advantages of the scheme could be:
1. Simplified design where ClusterController recruits "sequencer"
   process like other worker processes compared to current scheme
   where "sequencer" process gets special treatment. In newer scheme
   sequencer is responsible for maintaining/providing
   "committed version" (as expected).
2. ClusterController is responsible for worker processes recruitment,
   the sequencer though orchestrating the recovery state machine, it
   need to reachout to the ClusterController for recruiting worker
   processes etc.

NOTE:
Patch has moved the recovery state machine code from
'sequencer' -> 'cluster-controller' process, however, necessary
updates were done for both functionality as well as performance
improvement reasons.

Next Steps:
Cluster recovery documentation will be updated in near future.
2021-12-22 14:06:27 -08:00
Suraj Gupta 23de6fa39b Get it compiled 2021-12-10 16:43:58 -06:00
Sam Gwydir 31c0eef69c Add Minicycle Workload 2021-12-06 15:46:40 -08:00
Tao Lin 9b0a9c4503
Return error when getRangeAndFlatMap has more & Improve simulation tests (#6029) 2021-12-03 12:50:07 -08:00
Jon Fu 00ffd99938 Clone sideband workload to check consistency of cache 2021-12-02 14:17:59 -05:00
Andrew Noyes b6fd402a3c Add option to use boost or libcoro
By default, use boost everywhere except windows and linux x86 (for
performance reasons)
2021-11-29 13:14:15 -08:00
Steve Atherton 6e43dde613 Fixed bad merge resolution. 2021-11-16 18:04:37 -08:00
Steve Atherton 035e0d6e52
Merge branch 'master' into bit-flipping-workload 2021-11-16 14:42:22 -08:00
Tao Lin fdb3b72e35 Introduce GetRangeAndFlatMap to push computations down to FDB
Re-introduce #5609
2021-11-09 13:52:28 -08:00
Tao Lin 586cc3b102
Revert "Introduce GetRangeAndFlatMap to push computations down to FDB" 2021-11-04 08:46:56 -07:00
Tao Lin 0853661d13 Introduce getRangeAndHop to push computations down to FDB 2021-11-03 13:21:16 -07:00
sfc-gh-tclinkenbeard 45cff017c2 Remove Downgrade workload 2021-11-01 14:54:24 -07:00
negoyal 1e7338b6c3 Merge branch 'master' into bit-flipping-workload 2021-10-28 14:24:49 -07:00
Vaidas Gasiunas 40da5a80f9 Merge remote-tracking branch 'apple/master' into multi-version-client-2 2021-10-26 19:29:10 +02:00
Vaidas Gasiunas 37bc41abbb Merge remote-tracking branch 'apple/master' into multi-version-client-2 2021-10-26 18:51:43 +02:00
Josh Slocum 0ff8ddc2b6 Merge branch 'master' into blob_full_clean 2021-10-25 13:38:48 -05:00
Evan Tschannen 6f7558b8ea Merge branch 'master' of https://github.com/apple/foundationdb into feature-range-feed
# Conflicts:
#	tests/CMakeLists.txt
2021-10-24 21:06:33 -07:00
Josh Slocum 912ef76f1c cleanup before merge 2021-10-18 17:11:14 -05:00
He Liu dbfeb06c97 Reproduced user data loss incident, and tested the improved exclude tool
can fix the system metadata.
2021-10-14 14:08:39 -07:00
Josh Slocum 5f0ec0612a Merge branch 'feature-range-feed' into blob_full 2021-10-13 15:44:35 -05:00
negoyal f913dfed97 Merge branch 'master' into bit-flipping-workload 2021-10-11 16:34:57 -07:00
Evan Tschannen 5c642f706e Merge branch 'master' of https://github.com/apple/foundationdb into feature-range-feed
# Conflicts:
#	fdbcli/fdbcli.actor.cpp
2021-10-09 19:34:16 -07:00
Vaidas Gasiunas 114d8438fa MVC2.0: Refactoring client lib management
- Move all declarations into ClientLibManagement namespace
- Rename source files for more consistent naming
- Use constant declarations instead of defines for client lib attribute names
2021-10-07 10:30:37 +02:00
Vaidas Gasiunas cda0a5f931 Operation to upload client library binary in to system keyspace 2021-10-06 18:01:46 +02:00
Evan Tschannen 2da7732637 added a new workload to test streaming reads 2021-09-20 13:58:05 -07:00
Xiaoge Su 909a5ff73a Extract methods in LogSystemConfig.h to corresponding cpp file 2021-09-12 14:17:19 -07:00
Xiaoge Su 067c1cc55b Extract methods in LogSystem.h to corresponding cpp file 2021-09-12 14:17:19 -07:00
Xiaoge Su ecca4edeb4 Create TagPartitionedLogSystem.actor.h
TagPartitionedLogSystem.actor.h contains the struct of TagPartitionedLogSystem.
2021-09-12 14:17:19 -07:00
Josh Slocum c2d1d1704f Merge branch 'feature-range-feed' into blob_full 2021-09-10 11:21:52 -05:00
Evan Tschannen ac5b580e2d Merge branch 'master' into feature-range-feed
# Conflicts:
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/StorageServerInterface.cpp
#	fdbclient/StorageServerInterface.h
#	fdbserver/ApplyMetadataMutation.cpp
#	fdbserver/TLogServer.actor.cpp
#	flow/error_definitions.h
2021-09-09 23:13:22 -07:00
Evan Tschannen 8309c2ce26 filter mutations in change feeds to the requested range 2021-09-03 12:06:13 -07:00
negoyal 3b34423248 Merge branch 'master' into bit-flipping-workload 2021-08-31 12:14:51 -07:00
Josh Slocum 8d49c98a41 Added simulation workload for blob granules and fixed some bugs 2021-08-26 13:48:05 -05:00
Josh Slocum 2ae447eaaa Refactored blob worker/manager to be in separate files 2021-08-23 14:16:09 -05:00
Renxuan Wang 6e89dc3da0 Check in the prototype of MutationLogReader. 2021-08-18 14:59:50 -07:00
sfc-gh-tclinkenbeard 3418c20867 Merge remote-tracking branch 'origin/master' into paxos-config-db 2021-08-16 10:49:47 -07:00
Lukas Joswiak a605fb3852
Merge pull request #5026 from sfc-gh-ljoswiak/fixes/alp6
Actor sampling
2021-08-11 13:44:17 -07:00
Josh Slocum 921a2cfca1 Merge branch 'feature-range-feed' into blob_full 2021-08-10 11:25:48 -05:00
Josh Slocum 247602753d Blob worker handles multiple ranges now 2021-08-10 11:19:43 -05:00
sfc-gh-tclinkenbeard c9ec3d2d93 Added ConfigIncrement workload 2021-08-09 10:04:35 -07:00
Lukas Joswiak d606392c68 Disable more ALP work when sampling disabled 2021-08-01 20:11:50 -07:00
negoyal 9e7197faba Bunch of changes based on review comments and discussions. 2021-07-30 01:32:43 -07:00
negoyal 40b4f3b2f1 Merge branch 'master' into bit-flipping-workload 2021-07-28 18:06:07 -07:00
Lukas Joswiak 59d535149e Merge branch 'master' into fixes/alp6 2021-07-27 10:07:18 -07:00
Lukas Joswiak e9a1679467 Disable sampling everywhere except fdbserver 2021-07-27 09:53:23 -07:00
Lukas Joswiak dcaf1c1c38 Enable sampling on fdbserver only 2021-07-22 12:47:35 -07:00
negoyal fa3ce6d987 Adding the clear range workload. 2021-07-20 15:28:46 -07:00
sfc-gh-tclinkenbeard b3e2b06553 Remove multiple implementations of ConfigNode 2021-07-18 18:25:06 -07:00
negoyal f950fe9f9d Chaos workload to randomly flip bits during SS writes. 2021-07-18 17:35:05 -07:00
sfc-gh-tclinkenbeard fbc4f47882 Add LowLatencySingleClog.toml test 2021-07-10 17:30:20 -07:00
negoyal df39c5a44e Implement Disk Throttling Chaos workload. 2021-06-30 17:05:04 -07:00
Jingyu Zhou 9b8c4a2ffc Remove fdbserver/Orderer.actor.h
Apparently this is no longer used for many years.

Fix Conflicts:
	fdbserver/CMakeLists.txt
2021-06-24 11:23:37 -07:00
Evan Tschannen 244e8f3527 Merge branch 'master' of https://github.com/apple/foundationdb into feature-streaming-reply-master
# Conflicts:
#	fdbclient/CMakeLists.txt
#	fdbclient/Knobs.h
#	fdbserver/Knobs.h
2021-06-21 16:35:21 -07:00
Evan Tschannen 1cec223434 cherry pick streaming replies to master 2021-06-19 09:47:13 -07:00
sfc-gh-tclinkenbeard 41c790b299 Merge remote-tracking branch 'origin/master' into config-db 2021-06-10 22:31:23 -07:00
sfc-gh-tclinkenbeard aac6aa2b29 Remove defunct configuration database workloads.
These may be added back later, but they are not in use now
2021-06-10 19:51:31 -07:00
Steve Atherton d155482f5f Remove the legacy IVersionedStore / IStoreCursor classes and implementations as they are no longer useful or efficient, respectively. BTreeCursor can be used far more efficiently to access the BTree. 2021-06-08 16:46:09 -07:00
sfc-gh-tclinkenbeard cfc4545135 Use g_knobs for SERVER_KNOBS and CLIENT_KNOBS 2021-06-07 14:32:51 -07:00
Trevor Clinkenbeard 866f536983
Merge pull request #4888 from sfc-gh-tclinkenbeard/remove-fdbserver-includes
Remove fdbserver includes from fdbclient
2021-06-07 10:22:13 -07:00
Lukas Joswiak 153de33f57 Revert "Merge pull request #4802 from sfc-gh-ljoswiak/revert/actor-lineage"
This reverts commit 6499fa178e, reversing
changes made to 1512631957.
2021-06-04 13:31:55 -07:00
Josh Slocum ac209b32fd Addressing review comments 2021-06-03 15:31:16 +00:00
Josh Slocum b3e4f182ef TSS Mapping Change 2021-06-02 17:30:09 +00:00
sfc-gh-tclinkenbeard 1a40c60674 Move RestoreWorkerInterface into fdbserver 2021-05-30 15:02:33 -07:00
sfc-gh-tclinkenbeard 594e8944ae Move RestoreWorkerInterface into fdbserver 2021-05-30 11:51:47 -07:00
sfc-gh-tclinkenbeard 739d8813dd Create configuration database node files on demand 2021-05-23 18:01:50 -07:00
sfc-gh-tclinkenbeard ea8396c9be Improve decoupling of configuration database interfaces and implementations 2021-05-17 15:31:03 -07:00
sfc-gh-tclinkenbeard 641882ef0b Add dummy PaxosConfixDatabaseNode implementation 2021-05-17 14:15:30 -07:00
sfc-gh-tclinkenbeard 32f38394b1 Added dummy PaxosConfigConsumer implementation 2021-05-17 13:41:50 -07:00
sfc-gh-tclinkenbeard 6a163c0df9 Add basic ConfigBroadcaster unit test 2021-05-13 11:22:25 -07:00
sfc-gh-tclinkenbeard 511ce8d088 Use SimpleConfigConsumer in LocalConfiguration 2021-05-12 17:24:13 -07:00
sfc-gh-tclinkenbeard a5749de6b6 Refactor ConfigBroadcaster 2021-05-11 16:57:37 -07:00
sfc-gh-tclinkenbeard 21e5456230 Add schema to configuration database (not yet tested) 2021-05-11 11:12:19 -07:00
Lukas Joswiak 4ea760b2a9 Revert "Merge pull request #4136 from sfc-gh-mpilman/features/actor-lineage"
This reverts commit da41534618, reversing
changes made to e6300905d6.
2021-05-10 20:26:12 -07:00
sfc-gh-tclinkenbeard 4d3a7ceb44 Added simple DynamicKnobsWorkload 2021-04-29 16:32:30 -07:00
sfc-gh-tclinkenbeard 9bed1f7aa5 Run SimpleConfigBroadcaster on cluster controller 2021-04-25 17:20:02 -07:00