Commit Graph

8083 Commits

Author SHA1 Message Date
Yi Wu 607b2a0184 update comment 2022-02-07 13:32:52 -08:00
Yi Wu b32c843522 Revert "use DiskQueueVersion::V2 for KeyValueStoreMemory"
This reverts commit ba83d73acd.
2022-02-07 13:32:52 -08:00
Yi Wu eae3dab04d use DiskQueueVersion::V2 for KeyValueStoreMemory 2022-02-07 13:32:52 -08:00
Yi Wu 8c92c330c3 fix hash size 2022-02-07 13:32:52 -08:00
Yi Wu 0bd4618b79 minor fix 2022-02-07 13:32:52 -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
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
Jingyu Zhou f361f5a96c Rename isEmptyMessage to messagesWritten
The variable name means exactly the opposite.
2022-02-03 14:55:44 -08:00
Josh Slocum b324cf4bc4 Fixing TSS buggify in restarting tests 2022-02-03 06:46:28 -06: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 7195d4dadd Fix formatting 2022-01-31 14:43:04 -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
Trevor Clinkenbeard e6b02532a6
Merge pull request #6192 from sfc-gh-tclinkenbeard/improve-commitbatcher-performance
Make `VectorRefPreserializer` move constructor noexcept
2022-01-31 09:52:51 -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
A.J. Beamon 213ddc9ac3
Merge pull request #6315 from sfc-gh-ajbeamon/fix-init-order
Fix constructor initialization order warning
2022-01-28 12:46:55 -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
gaozengqi 23ea6e2c7e Fix typo 2022-01-28 10:40:33 -08:00
gaozengqi f1bd0f16da Run clang-format 2022-01-28 10:40:33 -08:00
gaozengqi a0c0342e76 Fix usage 2022-01-28 10:40:33 -08:00
gaozengqi 0e6dbf434b Fix use allKeys.end 2022-01-28 10:40:33 -08:00
gaozengqi 1419d1aab7 Fix short hand 2022-01-28 10:40:33 -08:00
gaozengqi 697d075e20 Add role 'kvfiledump' to dump key-values from storage file 2022-01-28 10:40:33 -08:00
A.J. Beamon 0803abedaa Adjust the name order of constructor variable initialization to match declaration order. 2022-01-28 10:27:13 -08:00
Ray Jenkins aa41c04993 add back threadnames for debugging 2022-01-28 11:57:52 -06:00
Ray Jenkins f32fa3a2c8 format fix 2022-01-27 12:38:05 -06:00
Ray Jenkins f47f1dc2f0 Remove threadName to attempt to find cause of bug in Apple CI build 2022-01-27 12:26:49 -06:00
Ray Jenkins 783cbb0aea Merge branch 'main' into threadname-issue-6064 2022-01-27 09:57:11 -06: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
Andrew Noyes c967e6246b
Fix uninitialized memory in storage server (#6282) 2022-01-26 13:24:35 -08:00
Ray Jenkins 74bf23950f Check if threadName exceeds 15 chars. 2022-01-26 12:02:54 -06:00
Ray Jenkins a57b4b355e
Update fdbserver/KeyValueStoreSQLite.actor.cpp
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2022-01-26 10:48:02 -06:00
Ray Jenkins 15ca24dea8
Update fdbserver/KeyValueStoreSQLite.actor.cpp
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2022-01-26 10:47:50 -06:00
Ray Jenkins 41dab5f932 Merge branch 'main' into threadname-issue-6064 2022-01-26 08:53:36 -06:00
Ata E Husain Bohra f3c3ab06f1 Add new FDB EncryptKeyProxy role
diff-1: Address review comments

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.:%s
2022-01-25 23:12:49 -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
Yao Xiao c605226a56
Add error handling in RocksDB KVS. (#6277) 2022-01-25 13:59:25 -08:00
Ray Jenkins fd6597cc7a Rename sqllite-write thread, add index for read threads.
Additionally make note these are actually coroutines and not threads.
2022-01-25 13:56:35 -06:00
Ray Jenkins 1f87c67bc9 Add parentWatcher thread names. 2022-01-25 13:21:46 -06:00
Ray Jenkins fa1d8fc11e Formatting fix. 2022-01-24 20:27:31 -06:00
Ray Jenkins 59726928bb Add sqlite reader thread name. 2022-01-24 19:45:09 -06:00
Ray Jenkins 3d48e6cb5b Add sqlite writer thread name. 2022-01-24 19:44:32 -06:00
He Liu 5e0b1fd13f Resolved comments. 2022-01-21 16:58:42 -08:00
He Liu 0421562ce9 Resolved comments. 2022-01-21 16:58:42 -08:00
He Liu b7388a714b Added get, scan, and commit counters. 2022-01-21 16:58:42 -08:00
He Liu da8453eb5d Added systemClearRange. 2022-01-21 16:58:42 -08:00