1
0
mirror of https://github.com/apple/foundationdb.git synced 2025-06-02 03:12:12 +08:00

22495 Commits

Author SHA1 Message Date
sfc-gh-tclinkenbeard
82adc1e856 Make g_simulator a pointer 2022-09-15 09:00:33 -07:00
Steve Atherton
c7924c9fb3
Merge pull request from sfc-gh-satherton/read-stage-latencies
Add new latency samples for GetValue, GetRange, QueueWait, and VersionWait
2022-09-14 17:31:51 -07:00
Steve Atherton
c254de5031 Rename read latency trace events to a different scheme. 2022-09-14 16:16:23 -07:00
Lukas Joswiak
54a12483e4 Add build date and time to build_flags
Also fixes the Boost lib version.
2022-09-14 15:11:51 -07:00
Lukas Joswiak
cfbd04ae78 Add explicit check for a simulated network 2022-09-14 14:14:49 -07:00
Lukas Joswiak
d6b25d6ce8 Initialize configuration database type in simulator 2022-09-14 14:14:49 -07:00
Ata E Husain Bohra
b540a3d6b9
Disable zlib find_package, effectively disable gzip compression ()
Description

find_package was used to find and link `zlib` library needed to enable
boost::gzip compression filter. However, the code adds dynamic linkage
of zlib shared object with generated binaries (fdbserver for instance).

For now disable the ZLIB find code to effectively disable GZIP compression
support.

Testing
2022-09-14 14:03:13 -07:00
Josh Slocum
d4ba6c266c
Merge pull request from sfc-gh-jslocum/ss_cf_burst_fix_main
Fixing Thundering Herd problem of change feed stream retries in SS
2022-09-14 16:01:20 -05:00
Steve Atherton
a8d3349898 Add latency sample for getKey. 2022-09-14 13:22:16 -07:00
Andrew Noyes
0afa24bb3f
Fix undefined behavior when retries is too large ()
fdbclient/PaxosConfigTransaction.actor.cpp:221:77: runtime error: shift exponent 32 is too large for 32-bit type 'int'

I confirmed that 1 << 30 is not UB
2022-09-14 11:46:15 -07:00
Ata E Husain Bohra
d2b82d2c46
Introduce "default encryption domain" ()
* Introduce "default encryption domain"

Description

In current FDB native encryption data at-rest implementation,
an entity getting encrypted (mutation, KV and/or file) is categorized
into one of following encryption domains:
1. Tenant domain, where, Encryption domain == Tenant boundaries
2. FDB system keyspace - FDB metadata encryption domain
3. FDB Encryption Header domain - used to generate digest for
plaintext EncryptionHeader.

The scheme doesn't support encryption if an entity can't be categorized
into any of above mentioned encryption domains, for instance, non-tenant
mutations are NOT supported.

Patch extend the encryption support for mutations for which corresponding
Tenant information can't be obtained (Key length shorter than TenantPrefix)
and/or mutations do not belong to any valid Tenant
(FDB management cluster data) by mapping such mutations to a
"default encryption domain".

TODO

CommitProxy driven TLog encryption implementation requires every transaction
mutation to contain 1 KV, not crossing Tenant-boundaries. Only exception to
this rule is ClearRange mutations. For now ClearRange mutations are mapped
to 'default encryption domain', in subsequent patch appropriate handling
for ClearRange mutations shall be proposed.

Testing

devRunCorrectness - 100k
2022-09-14 10:58:32 -07:00
Steve Atherton
71aef89f8a
Merge pull request from sfc-gh-satherton/fix-ide-errors
Fix some IDE build errors and warnings.
2022-09-14 10:39:37 -07:00
Jingyu Zhou
e70a18e638
Merge pull request from xumengpanda/mengxu/io-timeout-main
Add STORAGE_SERVER_REBOOT_ON_IO_TIMEOUT knob to reboot SS on io_timeout
2022-09-14 10:11:46 -07:00
Josh Slocum
3e5e49b635 Operational improvements to limit thundering herd effect of many change feed queries being retried simultaneously 2022-09-14 09:57:21 -05:00
Josh Slocum
e5eabbf3df Additional observability for change feeds 2022-09-14 09:55:15 -05:00
Steve Atherton
3df6a86d22 Add new latency samples for GetValue, GetRange, QueueWait which is the time between request receipt and when it starts to be processed, and VersionWait which is the time after QueueWait spent waiting for the necessary data version to arrive. 2022-09-14 01:28:16 -07:00
Steve Atherton
adff908c19 Fix compiler error, state pointer vars must be initialized. 2022-09-14 00:26:54 -07:00
Jingyu Zhou
8c8a614a0b
Merge pull request from sfc-gh-dzhou/mac-ci
bindings/c: fix std++fs dependency
2022-09-13 19:31:18 -07:00
Meng Xu
9e9efb69a0 Format code to repo style 2022-09-13 16:59:45 -07:00
Lukas Joswiak
8c50f98c00 Update type of coordinators hash
This fixes some serialization issues due to `BinaryReader` not being
able to deserialize types of size_t.
2022-09-13 16:53:54 -07:00
Lukas Joswiak
9fd22546ea Add workload to test coordinator changes with dynamic knobs 2022-09-13 16:53:54 -07:00
Lukas Joswiak
424bb87f3e Apply feedback 2022-09-13 16:53:54 -07:00
Lukas Joswiak
e22138d3d3 Update fdbserver/include/fdbserver/ClusterRecovery.actor.h
Co-authored-by: Trevor Clinkenbeard <trevor.clinkenbeard@snowflake.com>
2022-09-13 16:53:54 -07:00
Lukas Joswiak
5a1f9f3e9e Update fdbserver/worker.actor.cpp
Co-authored-by: Trevor Clinkenbeard <trevor.clinkenbeard@snowflake.com>
2022-09-13 16:53:54 -07:00
Lukas Joswiak
2a26777d64 Disable coordinator change when using simple configuration database 2022-09-13 16:53:54 -07:00
Lukas Joswiak
09892df0b0 Remove unused knob 2022-09-13 16:53:54 -07:00
Lukas Joswiak
7ee6be9238 Simplify how ConfigBroadcastInterface is stored on worker 2022-09-13 16:53:54 -07:00
Lukas Joswiak
809d77c2ab Fix issue where annotations were not being serialized 2022-09-13 16:53:54 -07:00
Lukas Joswiak
2fe3fc5379 Fix issue with pointer dereference after actor cancellation 2022-09-13 16:53:54 -07:00
Lukas Joswiak
b2d395a304 Delay cluster controller restart when pushing knob updates to workers
This gives the `ConfigBroadcaster` time to send the knob change to all
workers before applying the change to itself and restarting.
2022-09-13 16:53:54 -07:00
Lukas Joswiak
8d237ba493 Fix various correctness and timeout issues
Contains the following fixes:

* When handling the special case rollforward where nodes can be rolled
  forward even if a majority are at version 0, we don't want to reset
  the live version of the node being rolled forward. This is because a
  quorum of nodes at version 0 can continue handing out and incrementing
  their live version, and if they are rolled forward there is the
  potential for them to go back in time in regard to their live version.
  So in this one special case, they should maintain their existing live
  version.
* Fixes some unseed issues due to fields not being initialized properly.
* Temporarily disables a coordinator restart in the recovery path (in
  the coordinated state) due to it causing a timeout. This needs more
  investigation in the future.
2022-09-13 16:53:54 -07:00
Lukas Joswiak
249ff2b2fd Fix configuration database unit tests 2022-09-13 16:53:54 -07:00
Lukas Joswiak
1a33515934 Add --no-config-db option to fdbcli coordinators command
Specifying the `--no-config-db` option when changing coordinators
through fdbcli will prevent the command from hanging when the
configuration database is not active. Failing to specify this option
when the configuration database is not active will not affect the
correctness of the command, but it will hang instead of returning.
2022-09-13 16:53:54 -07:00
Lukas Joswiak
cd2bbffa4c Add flag to disable the configuration database
The `--no-config-db` flag, passed to `fdbserver`, will disable the
configuration database. When this flag is specified, no `ConfigNode`s
will be started, the `ConfigBroadcaster` will not be started, and on a
coordinator change no attempt will be made to lock `ConfigNode`s.
2022-09-13 16:53:54 -07:00
Lukas Joswiak
74ac617a34 Add support for changing coordinators to the configuration database
Configuration database data lives on the coordinators. When a change
coordinators command is issued, the data must be sent to the new
coordinators to keep the database consistent.
2022-09-13 16:53:54 -07:00
Trevor Clinkenbeard
b641bd6c04
Merge pull request from sfc-gh-tclinkenbeard/add-doappendiffits-unittest
Add `/Atomic/DoAppendIfFits` unit test
2022-09-13 15:18:59 -07:00
Dennis Zhou
c65ecb08d1 bindings/c: fix std++fs dependency
Beginning with clang 9, <filesystem> support is included without needing
to link anything else.

https://releases.llvm.org/9.0.0/projects/libcxx/docs/UsingLibcxx.html
2022-09-13 15:01:27 -07:00
Xiaoxi Wang
2ae01bdf2d
Merge pull request from sfc-gh-xwang/feature/main/moveKey
Implement txnProcessor->moveKeys(const MoveKeysParams& params)
2022-09-13 14:11:49 -07:00
Dennis Zhou
540b814446
Merge pull request from sfc-gh-dzhou/api-version
ApiVersion cleanups
2022-09-13 14:00:22 -07:00
Junhyun Shim
b5b2988fd2
Merge pull request from sfc-gh-jshim/authz-tls-test-set-timeout
Set timeout on Authz TLS unit test
2022-09-13 20:39:39 +02:00
sfc-gh-tclinkenbeard
2bea5b88bf Add /Atomic/DoAppendIfFits unit test 2022-09-13 11:35:39 -07:00
Steve Atherton
41a8fc7830 Fix IDE build errors and warnings. 2022-09-13 10:46:38 -07:00
A.J. Beamon
e4ce779d8c
Merge pull request from sfc-gh-ajbeamon/tenant-support-for-api-tester
Tenant support for client testing framework
2022-09-13 09:40:52 -07:00
Trevor Clinkenbeard
9f1e04cf9f
Merge pull request from sfc-gh-tclinkenbeard/improve-backup-code-coverage
Check backup agent activity in BackupAndRestoreCorrectnessWorkload
2022-09-13 09:32:40 -07:00
Junhyun Shim
106bacfa6e Set timeout on Authz TLS unit test 2022-09-13 18:22:12 +02:00
A.J. Beamon
2d68e246fb Fix a couple other merge issues 2022-09-13 08:23:26 -07:00
Jingyu Zhou
aaefc434ea
Merge pull request from sfc-gh-anoyes/anoyes/tls-plugin-new-test-harness 2022-09-12 18:35:58 -07:00
Steve Atherton
a2e74af900
Merge pull request from sfc-gh-satherton/read-latency-logging-improvements
Add sampling class tests to FlowBench and remove redundant tests from Redwood
2022-09-12 18:05:22 -07:00
Dennis Zhou
e6222be6c6 fdbcli: use ApiVersion::LATEST_VERSION instead of hardcoding 2022-09-12 17:08:57 -07:00
Dennis Zhou
4f582e3709 bindingtester: move API_VERSIONS array to global 2022-09-12 17:08:57 -07:00