Commit Graph

4360 Commits

Author SHA1 Message Date
Jon Fu 6f1c3d50bb add debug traces for testing 2022-02-15 15:08:53 -05:00
Jon Fu 7492b755d8 Merge branch 'main' of github.com:apple/foundationdb into jfu-grv-cache 2022-02-14 14:06:49 -05:00
Jon Fu a63d218e9d simplify test workload and adjust ratekeeper throttling strategy 2022-02-11 16:41:14 -05:00
Trevor Clinkenbeard ef68e6fe0d
Merge pull request #6353 from sfc-gh-ljoswiak/fixes/dynamic-knobs
Fix dynamic knobs correctness issues
2022-02-10 22:13:02 -08: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
Zhe Wang d684508540 Add RatekeeperLimitReasonDetails traceevent for RK 2022-02-10 13:59:47 -08:00
Jon Fu 458e708272 addressed code review comments: renamed variables, small functional changes, style changes 2022-02-10 16:17:54 -05:00
Lukas Joswiak cdc1549282 Fix client timeout errors 2022-02-09 13:43:33 -08:00
Lukas Joswiak dc4850e722 Don't specify types in format 2022-02-09 13:43:32 -08:00
Lukas Joswiak 990e215a8d Fix formatting
Co-authored-by: Trevor Clinkenbeard <trevor.clinkenbeard@snowflake.com>
2022-02-09 13:43:32 -08:00
Lukas Joswiak d5a562e6b8 Fix dynamic knobs correctness issues 2022-02-09 13:43:32 -08:00
Bala Namasivayam 9fe7a99e11 Make AWS V4 header default 2022-02-07 17:53:05 -08:00
Bala Namasivayam 208b5de572 Adding comment and address code style formatting. 2022-02-07 17:53:05 -08:00
Bala Namasivayam 0f36157c2c Clang format files 2022-02-07 17:53:05 -08:00
Bala Namasivayam a420098fc5 Support AWS v4 header for s3 backup and restore 2022-02-07 17:53:05 -08:00
Yi Wu cda68a0e4d Support xxhash3 for checksuming DiskQueue for TLogs 2022-02-07 13:32:52 -08:00
sfc-gh-tclinkenbeard 5b8f4d9be1 Move SimpleIni.h to fdbclient 2022-02-07 13:31:04 -08: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
Xiaoxi Wang 6dc5921575
createdTime based storage wiggler (#6219)
* add storagemetadata

* add StorageWiggler;

* fix serverMetadataKey bug

* add metadata tracker in storage tracker

* finish StorageWiggler

* update next storage ID

* change pid to server id

* write metadata when seed SS

* add status json fields

* remove pid based ppw iteration

* fix time expression

* fix tss metadata nonexistence; fix transaction retry when retrieving metadata

* fix checkMetadata bug when store type is wrong

* fix remove storage status json

* format code

* refactor updateNextWigglingStoragePID

* seperate storage metadata tracker and store type tracker

* rename pid

* wiggler stats

* fix completion between waitServerListChange and storageRecruiter

* solve review comments

* rename system key

* fix database lock timeout by adding lock_aware

* format code

* status json

* resolve code format/naming comments

* delete expireNow; change PerpetualStorageWiggleID's value to KeyBackedObjectMap<UID, StorageWiggleValue>

* fix omit start rount

* format code

* status json reset

* solve status json format

* improve status json latency; replace binarywriter/reader to objectwriter/reader; refactor storagewigglerstats transactions

* status timestamp
2022-02-04 15:04:30 -08:00
Markus Pilman 4414df1914
Merge pull request #6279 from sfc-gh-rjenkins/threadname-issue-6064
Make better use of thread names.
2022-02-04 08:46:23 -07:00
Andrew Noyes 02fcb1a239
Deprecate transaction_include_port_in_address (#6332)
* Deprecate transaction_include_port_in_address

Update the description to start with Deprecated, so that it will be
deprecated in the generated java files.

* Update generated.go
2022-02-03 14:36:01 -08: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
Ray Jenkins dd45805312
Merge branch 'apple:main' into threadname-issue-6064 2022-02-01 17:40:07 -06: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 8c00ba6716
Merge pull request #6324 from sfc-gh-ajbeamon/high-contention-allocator
Rename high contention allocator implementation in fdbclient
2022-01-31 15:51:03 -08:00
A.J. Beamon 6affc58e97 Rename high contention allocator implementation in fdbclient 2022-01-31 14:25:38 -08:00
Markus Pilman 60cbce72c2
Merge pull request #6317 from sfc-gh-ajbeamon/high-contention-allocator
Added a generic high contention allocator implementation to fdbclient
2022-01-31 14:50:51 -07: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
Vaidas Gasiunas 95074c2b0e
Merge pull request #6313 from sfc-gh-ajbeamon/split-management-api
Split the management API into two parts
2022-01-31 13:22:07 +01: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
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
Jon Fu 91ecc4104d change shared state map and update locations 2022-01-28 16:56:14 -05: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
A.J. Beamon 2eda48416c Undo some changes from LOCK_AWARE to READ_LOCK_AWARE. Apparently we have some dependencies in composed functions where a read-only function is setting lock awareness to the benefit of another function that does writes. 2022-01-28 10:55:02 -08:00
A.J. Beamon e3830c157f Split the management API into two parts, one that is generic and has no native API dependency and another that does have a native API dependency. 2022-01-28 10:18:23 -08: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
Ray Jenkins 783cbb0aea Merge branch 'main' into threadname-issue-6064 2022-01-27 09:57:11 -06:00
Lukas Joswiak 13da5d394b Remove extra StringRef copy 2022-01-26 19:22:40 -08:00
Evan Tschannen bb082344e2
Merge pull request #6101 from sfc-gh-ahusain/ahusain-encryptServerRole
Add new FDB EncryptKeyProxy role
2022-01-26 14:13:56 -08: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
Ray Jenkins 41dab5f932 Merge branch 'main' into threadname-issue-6064 2022-01-26 08:53:36 -06:00
Lukas Joswiak e2e853a30b Use ObjectWriter to write storage cache data
This allows deserialization of the on disk data in lower FDB versions
that don't contain fields added in main.
2022-01-25 19:24:14 -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
Jon Fu 9db49484d4 add reference counting to shared state and create new fdb_c_types header 2022-01-25 16:10:03 -05:00
Ray Jenkins 57a073b3b9 Add thread names for release, cancel, destroy and abort. 2022-01-24 19:42:21 -06:00
leonliao bc2c3df61f #6231 Fix wrong json path to check DB lock status while switching over dr clusters. 2022-01-24 13:37:09 -08:00