Commit Graph

1119 Commits

Author SHA1 Message Date
Xin Dong f9624b5a1a Avoid unnecessary copy 2020-09-03 13:56:23 -07:00
A.J. Beamon b4c96cadc7 Merge branch 'release-6.3' into merge-release-6.3-into-master 2020-09-02 12:45:57 -07:00
A.J. Beamon 93da4957ad
Update fdbclient/NativeAPI.actor.cpp 2020-09-01 13:17:01 -07:00
A.J. Beamon 800ece286d Results from read hot range requests were not held by the results arena. 2020-09-01 13:14:27 -07:00
Young Liu fd7198d874 Extend backup container interface to support query restorable files set by key ranges 2020-08-29 19:58:07 -07:00
Young Liu e87327b33b Merge master branch and keep master proxy reporting txn cost estimation to ratekeeper 2020-08-29 12:47:35 -07:00
Xin Dong cd86ca6850
Merge branch 'master' into feature/range-split-points-based-on-size 2020-08-27 10:06:02 -07:00
Young Liu e8e24a8ed6 Resolve comments 2020-08-26 21:04:35 -07:00
Chaoguang Lin a07b9f234d Add readonly range \xff\xff/configuration/process/class_source, and change \xff\xff/configuration/class/ to \xff\xff/configuration/process/class_type/ 2020-08-25 18:18:32 -07:00
Young Liu 63b3612ad5 Merge master branch and resolve conflicts 2020-08-24 16:42:31 -07:00
Xiaoxi Wang 3afdb44c7a merge master 2020-08-23 17:09:04 +00:00
David Youngworth b4cec6577a Fix merge bugs 2020-08-22 15:04:42 -07:00
David Youngworth e1b7dd0c7d Merge remote-tracking branch 'upstream/release-6.3' into dyoungworth/fixMerge1 2020-08-22 12:25:19 -07:00
Chaoguang Lin 23ef23357c Test code to add c function for kill/suspend 2020-08-21 14:30:52 -07:00
Chaoguang Lin 9b096ab58e Merge branch 'master' of github.com:apple/foundationdb into add-c-function-for-management-commands 2020-08-21 12:20:35 -07:00
Xiaoxi Wang 3b63d8b01b remove FIXME; remote tagSet.reset(); trivial changes 2020-08-21 19:17:16 +00:00
Xiaoxi Wang 5aaf86206a add counter for expensive clear estimation for audit and trace 2020-08-20 23:00:45 +00:00
Chaoguang Lin 556b239057 clang-format 2020-08-20 14:51:41 -07:00
Chaoguang Lin bff20faa42 Merge remote-tracking branch 'upstream/master' into add-setclass-to-special-key-space 2020-08-20 13:50:54 -07:00
Xiaoxi Wang e375761581 Merge branch 'master' of https://github.com/apple/foundationdb 2020-08-20 20:29:14 +00:00
Xiaoxi Wang 9c709b33d6 scale cost 2020-08-19 19:47:41 +00:00
Xiaoxi Wang 599675cba8 modify some details to get better performance 2020-08-19 04:23:23 +00:00
sfc-gh-tclinkenbeard 7b210aee24 Use =delete to disable special member functions
This has the benefits of:
- Easier to understand compiler error messages
- Moves some errors from link-time to compile-time
- NonCopyable classes can still specify default move constructors
2020-08-18 11:07:00 -07:00
Xiaoxi Wang 24dbb3961c Knob adjustment 2020-08-17 22:38:22 +00:00
Xin Dong 130bd7ac22 Fixed a bug that would potentially cause invalid memory access, i.e. segmentation fault. 2020-08-17 13:16:17 -07:00
Xin Dong daead84fdd Merge master 2020-08-14 14:07:08 -07:00
Xiaoxi Wang 548ba06510 change map to deque; code style problem 2020-08-14 18:30:58 +00:00
Xiaoxi Wang 475d4cca72 solve some cr comments 2020-08-14 16:40:16 +00:00
Chaoguang Lin b9474055a5 Add \xff\xff/configuration/class to read process class 2020-08-14 01:01:08 -07:00
Xiaoxi Wang e94de126de merge with master 2020-08-14 01:59:09 +00:00
Young Liu 20700f75f4 Merge master 2020-08-13 14:28:27 -07:00
Daniel Smith b2bba8ccbb
Correct fix for debug ID logging 2020-08-13 13:37:15 -04:00
Meng Xu 002cca5e58 Merge branch 'master' into tmp/merge-PR
Conflicts:
	fdbclient/NativeAPI.actor.cpp
	fdbserver/StorageMetrics.actor.h
2020-08-12 20:08:13 -07:00
Xin Dong 8bc57c16f0
Merge pull request #3637 from dongxinEric/misc/fix-spammy-readhot-logging
Increased some knobs to throttle the spammy read hot logging.
2020-08-12 16:46:32 -07:00
Xiaoxi Wang 8f1deaa47e Merge branch 'master' of https://github.com/apple/foundationdb 2020-08-12 23:32:23 +00:00
Xin Dong 3ac6996844 Increased some knobs to throttle the spammy read hot logging. Also added more details inside the read hot log to make it useful 2020-08-12 14:27:34 -07:00
Daniel Smith cc1059be75 Make logging of server trace ID consistent with other code 2020-08-12 19:05:01 +00:00
Xiaoxi Wang f3ecf14601 change midShardSize type and other details 2020-08-12 17:49:12 +00:00
Young Liu 16ef2bd3bd Pending commit 2020-08-12 10:34:07 -07:00
Young Liu 79ce16650d merge master branch 2020-08-11 19:22:10 -07:00
Markus Pilman 4782c7c4b1 Merge remote-tracking branch 'origin/master' into features/udp 2020-08-11 15:35:52 -06:00
Lukas Joswiak b66dab8816 Fix span early destruction
We want the span to stick around for the full duration of
extractReadVersion since it writes to the log from its destructor.
2020-08-11 11:19:04 -07:00
Xiaoxi Wang c0b7ac0b7d try to throttle write tag and read tag seperatedly 2020-08-10 23:43:58 +00:00
Xiaoxi Wang cae6f04070 sample on cost instead of bytes 2020-08-10 22:30:06 +00:00
Xiaoxi Wang 696e77c94e query midShardSize from proxy 2020-08-10 20:13:44 +00:00
Xiaoxi Wang df9149fea4 ignore transaction tag of immediate transactions 2020-08-07 23:36:17 +00:00
Xin Dong 98c39ad9d4 Fix the build error. 2020-08-07 14:03:42 -07:00
Xin Dong a46e620baa Merge branch 'master' into feature/range-split-points-based-on-size 2020-08-06 15:23:11 -07:00
Markus Pilman 6d84bcb568 Merge remote-tracking branch 'origin/master' into features/udp 2020-08-06 14:08:34 -06:00
Markus Pilman 8976694ba1 UDP implementation (untested) 2020-08-06 14:06:50 -06:00
Xiaoxi Wang ba66b1f668 trivial changes 2020-08-06 14:53:26 +00:00
Young Liu d6a23a4d6b Resolve comments to make GRV proxy a separate process class 2020-08-06 00:01:57 -07:00
Xiaoxi Wang 13307679c5 use median shard size" 2020-08-05 03:57:25 +00:00
Xiaoxi Wang 4997754cf8 fix format in monitorDDMetricsChanges 2020-08-04 04:14:11 +00:00
Chaoguang Lin 00f2c38e3a Merge remote-tracking branch 'upstream/master' into add-c-function-for-management-commands 2020-08-03 20:55:21 -07:00
Xiaoxi Wang 48094ea17e add INCOMPLETE_SHARD_PLUS knob 2020-08-04 03:18:05 +00:00
Xiaoxi Wang 52073738c0 fix bugs; change some KNOB values 2020-08-03 22:18:34 +00:00
Xiaoxi Wang b903e60cb7 fix monitorDDMetricsChanges bugs 2020-08-03 17:12:36 +00:00
Xiaoxi Wang 6db7040f17 update DDMetrics periodically 2020-08-03 05:52:38 +00:00
Xiaoxi Wang d1cc87452c merge with master; solve conflicts; solve initialization; 2020-08-02 22:44:07 +00:00
Xiaoxi Wang 92c1112c74 consider clear single key 2020-08-01 18:20:13 +00:00
Xiaoxi Wang 4f7dab4951 sample clear op on client 2020-08-01 06:14:52 +00:00
Xiaoxi Wang fc3dfc170f Merge branch 'master' of https://github.com/apple/foundationdb 2020-07-31 19:09:33 +00:00
Xiaoxi Wang c3a629588f add client transaction tag sample 2020-07-31 19:08:42 +00:00
Chaoguang Lin a048e5e159 Change prefix to \xff\xff/management and make decode/encode as pure functions 2020-07-31 02:18:49 -07:00
Chaoguang Lin f2662a9a74 Merge remote-tracking branch 'upstream/master' into add-management-api-into-special-key-space 2020-07-30 19:01:11 -07:00
Chaoguang Lin 10540a3c73 Change error name and fix a bug in ExclusionInProgressRangeImpl::getRange() 2020-07-30 18:58:09 -07:00
Chaoguang Lin 11cbcffc9a Temporary code 2020-07-30 16:07:54 -07:00
Young Liu b5dc6b715f Add file comment for GrvProxyServer.actor.cpp 2020-07-29 12:10:53 -07:00
Young Liu 30ea639666 Remove debug traces 2020-07-29 07:55:05 -07:00
Young Liu f7b76a92af pass joshua 2020-07-29 07:26:55 -07:00
Trevor Clinkenbeard 602b0f9dea
Merge branch 'master' into vectorref-emplace-back 2020-07-28 17:17:11 -07:00
Chaoguang Lin a641429d63 Add an enum for implementation type and use for registeration 2020-07-27 12:29:03 -07:00
Chaoguang Lin ec9553b6c6 change \xff\xff/failure to \xff\xff/error_message 2020-07-24 11:38:56 -07:00
Young Liu 525f10e30c Merge master branch 2020-07-22 16:08:49 -07:00
Young Liu 302cf5c45f Remove debug trace events 2020-07-22 12:20:22 -07:00
Young Liu 2703cedac5 Fixed known bugs 2020-07-17 22:24:52 -07:00
Xiaoxi Wang 0df2a8d014 better code style 2020-07-18 01:48:58 +00:00
Chaoguang Lin 1c51aaeea5 Use static keys in SpecialKeySpace 2020-07-17 15:14:18 -07:00
Chaoguang Lin 96e5a4c827 Replace all \xff\xff/conf with managementApiRange.begin 2020-07-17 11:56:27 -07:00
Chaoguang Lin 5fa6785fb8 Add special keys for command options 2020-07-16 18:15:35 -07:00
Xiaoxi Wang 9d0d189cc8 better serialize; TransactionOption::clear patch 2020-07-15 22:39:21 +00:00
Xiaoxi Wang eb44ae0e86 finish local shard estimation 2020-07-15 16:08:00 +00:00
Young Liu 5b06d69d25 Pass watches test 2020-07-15 00:37:41 -07:00
Xiaoxi Wang bcb858288b eliminate cost estimation when tagSet is empty 2020-07-14 23:07:21 +00:00
Chaoguang Lin 3f4da830a2 Merge remote-tracking branch 'upstream/master' into add-management-api-into-special-key-space 2020-07-14 10:36:47 -07:00
Xiaoxi Wang a310faf9d1 solve some code reviews 2020-07-14 17:19:55 +00:00
Xiaoxi Wang d512170cd8 add clear cost estimation 2020-07-14 00:18:52 +00:00
Chaoguang Lin 60d1bfc247 Add read impl for inProgressExclusionServers 2020-07-13 13:35:25 -07:00
Xiaoxi Wang 6ec2f92a8d merge master 2020-07-13 17:22:37 +00:00
Xiaoxi Wang 6374cd96c9 add commit cost estimation 2020-07-10 23:07:29 +00:00
Jingyu Zhou 2e5ae8eed5 Change iterator name to small case 2020-07-10 10:56:41 -07:00
Markus Pilman cc60597739
Merge branch 'master' into bugfixes/visibility-perf-regression 2020-07-09 17:04:04 -06:00
Markus Pilman 69864c9f96 Make Spans not allocate heap memory 2020-07-09 11:49:33 -06:00
Meng Xu 1b68665228 Merge branch 'master' into release-6.3 2020-07-08 18:52:05 -07:00
Evan Tschannen 3eb3e23ae0
Merge pull request #3425 from sfc-gh-anoyes/anoyes/health-metrics
Expose health metrics via special keys
2020-07-08 10:37:31 -07:00
Markus Pilman 0fbe7101c3 Revert "Revert "Request tracing""
This reverts commit 327cc31e35.
2020-07-07 10:06:13 -06:00
Chaoguang Lin a43afb9d97 Merge remote-tracking branch 'upstream/master' into add-management-api-into-special-key-space 2020-07-06 15:47:00 -07:00
Chaoguang Lin 0361eb5079 Add FailedServersImpl 2020-07-06 15:40:21 -07:00
Chaoguang Lin 784d0f6d00 A basic feasible version for exclude and include commands 2020-07-06 11:02:48 -07:00
sfc-gh-tclinkenbeard bcbca81dfe Remove ROW_LIMIT_UNLIMITED and BYTE_LIMIT_UNLIMITED from CLIENT_KNOBS 2020-07-04 12:48:44 -07:00
Xin Dong d689d34634 Enable range split bindings tests 2020-07-02 14:05:12 -07:00
Xin Dong 00e9f8b9bf Added bindings tests; Protected new SSI endpoints under new 7.0 ProtocolVersion 2020-07-02 14:05:12 -07:00
Xin Dong eb28492900 Fixed a bug which leads to inaccurate metrics being reported. Added tests for the new API. 2020-07-02 14:05:11 -07:00
Xin Dong ea08bc5462 Added server side code for range split support 2020-07-02 14:05:11 -07:00
Xin Dong ae63304392 Address Meng's comment 2020-07-01 20:23:18 -07:00
Xin Dong 3ecdaf24ce Use the actual range begin and end key instead of the shard begin and shard end key 2020-07-01 16:07:59 -07:00
Andrew Noyes 409ccf3be2 Use snake_case to match status json convention 2020-06-30 17:05:29 +00:00
Andrew Noyes e1dfa410c1 Remove "Storages" field from data_distribution_stats
It seems like a cool idea, but it feels rushed to me. Reverting for now.
2020-06-30 15:24:16 +00:00
Andrew Noyes a55b0771c5 Test schemas
Also remove an ASSERT_WE_THINK that doesn't seem to hold now that we
include shards
2020-06-30 15:24:16 +00:00
Andrew Noyes f8bb76a607 Add CLIENT_BUGGIFY 2020-06-30 15:24:16 +00:00
Andrew Noyes b1d5e99494 Update documentation 2020-06-30 15:24:16 +00:00
Andrew Noyes 1c30adce74 WIP 2020-06-30 15:24:16 +00:00
Andrew Noyes 0db3145e82 Include storage id's in data_distribution_stats 2020-06-30 15:24:15 +00:00
Andrew Noyes e304697eca WIP 2020-06-30 15:24:15 +00:00
Andrew Noyes ffd1467367 Add \xff\xff/metrics/health/* 2020-06-30 15:24:15 +00:00
Chaoguang Lin e2c5938c28 Update module registration for readwrite module 2020-06-29 15:37:46 -07:00
Vincent Rouillé 1082ab2caa
fix ClientVersionRef versionString should be passed by ref 2020-06-29 21:23:56 +02:00
Chaoguang Lin 18ff6efbf3 Add failure module for special key space 2020-06-27 12:22:32 -07:00
Chaoguang Lin f011ff2c66 Merge remote-tracking branch 'upstream/master' into add-management-api-into-special-key-space 2020-06-23 11:23:18 -07:00
Andrew Noyes 42159ccfe0 Add -Wpessimizing-move and -Wredundant-move for clang 2020-06-22 23:45:03 +00:00
Chaoguang Lin 59361cedaa Rename to have read and write impls and add set, clear, clearrange interfaces 2020-06-22 14:02:03 -07:00
sfc-gh-tclinkenbeard 85a284b13c Use VectorRef::emplace_back in several places 2020-06-19 23:02:28 -07:00
Jingyu Zhou 327cc31e35
Revert "Request tracing" 2020-06-16 12:32:42 -07:00
Meng Xu 96206a8032
Merge pull request #3368 from apple/release-6.3
Merge Release 6.3 to master
2020-06-15 20:15:22 -07:00
Meng Xu fabdffd6e4
Merge pull request #3332 from sfc-gh-tclinkenbeard/fix-memaccess-warnings
Fix class-memaccess warnings
2020-06-15 15:22:19 -07:00
sfc-gh-tclinkenbeard 3a914c71f2 Add TransactionOptions::clear function 2020-06-13 17:17:06 -07:00
Meng Xu 8595813b7d
Merge pull request #3355 from apple/release-6.3
Merge Release 6.3 into master branch
2020-06-12 20:08:47 -07:00
Meng Xu 80334351c7
Merge pull request #3329 from sfc-gh-mpilman/features/flatbuffers-debugtx
Request tracing
2020-06-12 14:50:19 -07:00
Markus Pilman ae6b716820 addressed more review comments 2020-06-11 09:58:41 -07:00
Markus Pilman 9ef93714ac Address review comments 2020-06-10 15:48:49 -07:00
Markus Pilman 4ab3441a95 Merge remote-tracking branch 'origin/master' into features/flatbuffers-debugtx 2020-06-10 15:31:29 -07:00
Markus Pilman d9ddb84d34 remove weird include (added by clangd) 2020-06-10 13:18:26 -07:00
sfc-gh-tclinkenbeard a332dff2ec Fix class-memaccess warnings 2020-06-10 12:34:14 -07:00
sfc-gh-tclinkenbeard 99bf993815 Replace BOOST_NOEXCEPT with noexcept 2020-06-09 22:39:19 -07:00
Markus Pilman c829b12bbf defined spans for read requests 2020-06-08 17:26:15 -07:00
Markus Pilman 09c136e434 Framework for transaction tracing 2020-06-08 16:09:37 -07:00
Andrew Noyes 55448a8d5a Remove call in watch actor instead of Transaction::watch 2020-06-08 18:19:18 +00:00
Andrew Noyes 731b77a8c2 Don't double count watches for too_many_watches 2020-06-07 23:54:22 +00:00
negoyal 23a565ec63 Few bug fixes. 2020-06-05 16:27:04 -07:00
negoyal cf13e00a8f Merge remote-tracking branch 'origin/release-6.3' into fdb_cache_wo_allocator 2020-06-01 17:38:31 -07:00
Markus Pilman ba63a66d12 Merge remote-tracking branch 'origin/master' into features/flatbuffers-debugtx 2020-05-29 15:38:09 -07:00
Markus Pilman 8a7d98ab21 Started instrumentation 2020-05-27 15:36:04 -07:00
A.J. Beamon 86f712657e Eliminate the undefined behavior of calling run_network twice, instead returning an error. 2020-05-22 13:31:06 -07:00
Andrew Noyes a2fd6d46a0 Cancel pending special key space reads on destroy
Previously the special key space would take a reference to the
transaction, but this doesn't make sense since the transaction might not
be refcounted
2020-05-21 17:37:11 +00:00
Chaoguang Lin 0d9135ee57 Merge remote-tracking branch 'upstream/release-6.3' into add-data-distribution-metrics 2020-05-20 15:21:26 -07:00
Evan Tschannen 06676fc88f
Merge pull request #3166 from tclinken/6.3-avoid-ub
Eliminate some undefined behavior and const_cast usage
2020-05-20 14:36:30 -07:00
A.J. Beamon b589c3c940 Remove IncludeVersions.h, which is no longer needed for cmake-only builds 2020-05-20 13:23:02 -07:00
Balachandar Namasivayam 16990aeb6f Add dcId to client transaction events. 2020-05-19 16:07:54 -07:00
Chaoguang Lin 00dce3ca1d clang-format 2020-05-18 14:23:17 -07:00
A.J. Beamon fcca49f4d5 Add back an std::move that was accidentally removed. Some other small tweaks to avoid map lookups when tags aren't used. 2020-05-18 13:45:51 -07:00
Chaoguang Lin bf62ef7c3e Add dd-stats into special-key-space 2020-05-18 10:38:23 -07:00
Chaoguang Lin 6ce574f5ad Merge remote-tracking branch 'upstream/release-6.3' into add-data-distribution-metrics 2020-05-17 23:36:52 -07:00
Chaoguang Lin 8597b38d10 Add an assertion in SingleSpecialKeyImpl 2020-05-15 16:34:43 -07:00
Chaoguang Lin 4a13107805 Add a test for special_keys_cross_module_read, fix two bugs, add several TODOs 2020-05-15 16:34:43 -07:00
Chaoguang Lin c61e198e40 Using enum class instead of enum 2020-05-15 16:34:43 -07:00
Chaoguang Lin e1c4e5f619 Add enums for special-key-space modules and refactor related code 2020-05-15 16:34:42 -07:00
chaoguang f605c8d74f Narrow keyrange of special-key-space to [\xff\xff, \xff\xff\xff). Initilize new ones in correctness tests 2020-05-15 16:34:42 -07:00
tclinken 667b224fc8 Several changes to reduce unnecessary moves/copies 2020-05-13 19:59:34 -07:00
A.J. Beamon da14e1eb04 Fix: debug tagging was always enabled 2020-05-12 14:11:03 -07:00
Andrew Noyes 8bd5dcaff8 Merge branch 'master' into atn34/special-key-versioning 2020-05-09 15:34:20 -07:00
A.J. Beamon 02307ba7b6 Merge branch 'master' into transaction-tagging
# Conflicts:
#	fdbclient/DatabaseContext.h
2020-05-09 07:50:29 -07:00
Andrew Noyes 4cbf7b0fc0 Fix typo 2020-05-09 03:12:55 +00:00
Andrew Noyes d1b16eafc5 Only call getKeyRange once 2020-05-09 03:01:56 +00:00
Chaoguang Lin ef724bf939 Merge remote-tracking branch 'upstream/master' into add-data-distribution-metrics 2020-05-08 18:39:28 -07:00
chaoguang e8b62e48f4 Rename DDMetrics to DDMetricsRef 2020-05-08 17:17:27 -07:00
Evan Tschannen f0f52fb2be Merge branch 'master' into feature-small-endpoint
# Conflicts:
#	fdbclient/StorageServerInterface.h
2020-05-08 16:37:35 -07:00
negoyal 749fcd13b0 Merge branch 'master' into fdb_cache_wo_allocator 2020-05-08 16:23:29 -07:00
Andrew Noyes 6389f6ac51 Combine \xff\xff/transaction/* into one module 2020-05-08 05:37:37 +00:00
Andrew Noyes 697685574d Fix worker_interfaces
They don't come sorted by address, they come sorted by process id
2020-05-08 05:37:37 +00:00
Andrew Noyes 38830f0eb9 Fix range read bounds bug 2020-05-08 05:37:37 +00:00
Andrew Noyes 76aed13bdc Add prefix in comparator for worker_interfaces 2020-05-08 05:37:37 +00:00
Andrew Noyes 32d50fc359 Port over all existing special keys to framework 2020-05-08 05:37:37 +00:00
Andrew Noyes ce0e03a800 Add virtual destructor to SpecialKeyRangeBaseImpl 2020-05-08 05:37:37 +00:00
Andrew Noyes 640eb41ba4 Introduce special key space in api version 630 2020-05-08 05:37:37 +00:00
Meng Xu a08bbcc539
Merge pull request #3046 from atn34/atn34/conflict-ranges
Add read/write conflict ranges to special key space
2020-05-07 22:36:18 -07:00
A.J. Beamon a8e3ad3c15 Fix merge error 2020-05-07 15:10:50 -07:00
A.J. Beamon 92730b2f05 Merge branch 'master' into transaction-tagging
# Conflicts:
#	fdbclient/NativeAPI.actor.cpp
2020-05-07 14:50:25 -07:00
Evan Tschannen 9ccc417a4f An indentifier must be set before calling LOG_TRANSACTION 2020-05-07 11:18:03 -07:00
A.J. Beamon 90dbf33182
Merge pull request #3079 from bnamasivayam/client-transaction-info
Add read version and commit version info to getVersion and commit cli…
2020-05-07 09:59:35 -07:00
A.J. Beamon b1055a8501 Merge branch 'master' into transaction-tagging 2020-05-05 16:03:39 -07:00
Evan Tschannen f329164fb4
Merge pull request #2532 from dongxinEric/feature/hot-read-key-detection-part-2
Feature/hot read key detection part 2
2020-05-05 14:33:34 -07:00
Andrew Noyes 37fe05fc76 Merge remote-tracking branch 'upstream/master' into atn34/conflict-ranges 2020-05-05 15:52:07 +00:00
negoyal dd033736ed Merge branch 'master' into fdb_cache_subfeature2 2020-05-04 17:29:43 -07:00
A.J. Beamon de1f85d106 Fix accounting bug in TagSet. Change serialization back to not including the number of elements. Fix knob usage. 2020-05-04 15:49:55 -07:00
A.J. Beamon cd2176ac15 Adjust some knobs 2020-05-04 10:37:53 -07:00
A.J. Beamon 36454bb3b8 Merge branch 'master' into transaction-tagging
# Conflicts:
#	fdbclient/MasterProxyInterface.h
#	fdbclient/NativeAPI.actor.cpp
2020-05-04 10:23:25 -07:00
A.J. Beamon 80a235aa80 Add some correctness tests 2020-05-04 10:15:18 -07:00
A.J. Beamon bb3d4b6b89 Add a bunch of TEST macros and some other little things 2020-05-04 10:11:36 -07:00
Alex Miller 78d644f673
Merge branch 'master' into bugfixes/cmake-includes 2020-05-04 02:11:46 -07:00
Balachandar Namasivayam d6bc5263ad Add read version and commit version info to getVersion and commit client transaction events. 2020-05-03 22:42:06 -07:00
Andrew Noyes 0c514e91c7 Use approximate write range for set_versionstamped_key 2020-05-04 04:43:50 +00:00
A.J. Beamon ca1d457c6c Fix bug where readVersion member future wasn't assigned 2020-05-02 07:59:37 -07:00
A.J. Beamon 6ce4ddf1db Fix a couple spots where we were missing checks for the new tag_throttled error 2020-05-01 21:47:12 -07:00
Evan Tschannen bd699f435c fixed compiler errors 2020-05-01 11:01:09 -07:00
Evan Tschannen aed2d34bcb Merge branch 'master' into feature-proxy-load-balance
# Conflicts:
#	fdbclient/NativeAPI.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	flow/Knobs.cpp
2020-05-01 09:19:39 -07:00
A.J. Beamon e9b9f0e845 onError wasn't properly retrying tag throttled errors 2020-04-30 21:12:34 -07:00
Andrew Noyes f1d9c0cb97 Refactor/cleanup 2020-04-30 00:30:37 +00:00
Andrew Noyes fdd6581167 Add write conflict range 2020-04-30 00:30:37 +00:00
Andrew Noyes e1c3c73d4c Rudimentary read your own read conflict range 2020-04-30 00:30:37 +00:00
A.J. Beamon 573b10f9f5 Fix a merge bug and cleanup some argument passing. 2020-04-27 15:03:56 -07:00
A.J. Beamon 41c517a5dd Merge branch 'master' into transaction-tagging
# Conflicts:
#	fdbclient/NativeAPI.actor.cpp
2020-04-27 13:05:24 -07:00
A.J. Beamon a65e97209a Fix bug in flag management. Pass priority into ratekeeper's updateRate and use it when setting autothrottles. 2020-04-27 11:34:12 -07:00
A.J. Beamon 239876351b Add some initial auto-throttling. Move the definition of the priority enum to a more global place and use it for all transaction priorites (except in ClientLogEvents, because of serialization incompatibilites). 2020-04-24 11:31:16 -07:00
A.J. Beamon 35c18ac60a Improvements to expiration. Encode throttles with auto/manual and priority in the key to support throttling the same tag with different values in these parameters. 2020-04-23 20:50:40 -07:00
Evan Tschannen c87aa33941 Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	bindings/go/src/fdb/generated.go
#	documentation/sphinx/source/api-common.rst.inc
#	documentation/sphinx/source/api-ruby.rst
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/FailureMonitorClient.actor.cpp
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/vexillographer/fdb.options
#	fdbrpc/FlowTransport.actor.cpp
#	fdbserver/OldTLogServer_6_0.actor.cpp
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	versions.target
2020-04-23 13:47:53 -07:00
A.J. Beamon 434704fbd9 Various bug fixes 2020-04-22 12:28:51 -07:00
A.J. Beamon 444b338f63 Client clears throttles when the proxy responds to a request with a throttle being absent. 2020-04-21 16:24:02 -07:00
A.J. Beamon 2f69eb42a5 Update client last check time for a throttle when the request is sent, not when the response is received. This prevents sending lots of requests when the check time has expired before we get a response. 2020-04-21 16:23:24 -07:00
A.J. Beamon ee8447765f Throttled tags on the client periodically check in with the cluster to update their rates if they get heavily throttled. 2020-04-21 11:56:58 -07:00
Alex Miller e51d0365cf Cleanup: Use the shutdown callback for destroying TLS state. 2020-04-20 13:16:16 -07:00
Alex Miller da8e47ea25 Merge remote-tracking branch 'upstream/release-6.2' into tls-background-eio-thread 2020-04-20 13:15:05 -07:00
Alex Miller 2ce539ef6d Respect flow<->fdbrpc module boundaries.
Which fixes a compilation error due to a circular dependency between
flow.a and fdbrpc.a.  However, this is now done at the cost of newNet2
users have to remember to add Net2FileSystem::stop() as a callback.
2020-04-20 02:53:07 -07:00
Alex Miller 94b4f78ea9 Fix clients crashing in TLS code on exit.
If client code initiates an FDB operation to a TLS cluster, and then
immediately exits the main thread, then OpenSSL's atexit handler would
potentially run while the network thread is attempting to do TLS
operations, and thus crash.

This commit removes the OpenSSL atexit hander, and instead relies on a
client intentionally ending the network thread to do TLS cleanup.  If
the client code exits without stopping the network thread, then we'll
never free OpenSSL data structures, which is the safer thing to do.
2020-04-18 15:48:02 -07:00
A.J. Beamon 78d48a0dad Merge branch 'master' into transaction-tagging
# Conflicts:
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/Knobs.h
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/fdbclient.vcxproj
#	fdbserver/MasterProxyServer.actor.cpp
2020-04-17 09:23:18 -07:00
A.J. Beamon 2b66dcd24a Some more refactoring. Reduce what is sent from RK->MP->clients 2020-04-17 08:07:01 -07:00
Xin Dong 7dd7406c59
Merge branch 'master' into feature/hot-read-key-detection-part-2 2020-04-16 14:54:05 -07:00
A.J. Beamon 0fba8c47be Checkpoint: Ratekeeper sets absolute limits for tag throttles and enforces them by distributing requests to proxies, who distribute them to clients.
A few refactorings.
2020-04-16 14:43:22 -07:00
chaoguang b011efa8df Merge remote-tracking branch 'upstream/master' into private-keyspace-framework 2020-04-16 10:58:04 -07:00
negoyal 7a9bcf8222 Review comments. 2020-04-14 17:45:34 -07:00
negoyal b85dc16c6d Merge branch 'master' into fdb_cache_subfeature2 2020-04-14 17:07:41 -07:00
A.J. Beamon e104a2e3a6 Merge commit 'cf01233f28a2c42908656a39f458a4475c1d44a3' into run-loop-busy-profiler
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/NativeAPI.actor.h
#	fdbserver/fdbserver.actor.cpp
#	flow/Net2.actor.cpp
2020-04-14 14:02:24 -07:00
chaoguang ae1de060c2 Reformat SpecialKeyRangeBaseImpl constructor 2020-04-14 09:10:40 -07:00
chaoguang 65620b00f3 Merge remote-tracking branch 'upstream/master' into private-keyspace-framework 2020-04-13 14:21:07 -07:00
Alex Miller 1439de37b5 Convert GetRangeLimits() -> TOO_MANY + ASSERT(). 2020-04-12 18:23:14 -07:00
Alex Miller db071256db Merge remote-tracking branch 'upstream/master' into reduce-txn-state-store-size 2020-04-12 18:06:10 -07:00
A.J. Beamon 6508c891fc Make the TagSet sent to the storage servers optional so we can distinguish no tags from unsampled. 2020-04-10 13:29:28 -07:00
A.J. Beamon 55a0d00ad4 Encoding of tags in the database now supports multiple tags per throttle. Remove throttle prefix search. 2020-04-10 10:12:26 -07:00
A.J. Beamon ebeca10bce Change the serialization of tags sent in some messages. Add communication of the sampling rate from cluster to clients. 2020-04-09 16:55:56 -07:00
chaoguang 34cddd675c clang-format 2020-04-08 14:33:41 -07:00
chaoguang 20b2984841 fix issues according to andrew's comments 2020-04-08 12:43:25 -07:00
tclinken 52860043c9 Merge remote-tracking branch 'origin' into atomically-update-dependent-knobs 2020-04-08 12:26:21 -07:00
chaoguang 5aee6880a8 fix issues according to andrew's comments 2020-04-08 11:33:07 -07:00
A.J. Beamon 36da61dd9c Merge branch 'master' into transaction-tagging
# Conflicts:
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/vexillographer/fdb.options
2020-04-07 21:12:14 -07:00
A.J. Beamon a1d8623e5f Various changes to the throttling scheme, including most notably that clients now enforce the throttles with info they receive from the proxy. 2020-04-07 16:28:09 -07:00
Markus Pilman e4611e8ae4 fix versions.h stupidity 2020-04-06 10:28:55 -07:00
Markus Pilman 8b5780c36c don't include source and binary dir
This forces users to use include paths from the sources root.

So `#include "Arena.h"` won't work anymore, only
`#include "flow/Arena.h"` will.
2020-04-06 10:13:49 -07:00
Alex Miller 6078fd1b18 Convert UID to Tag in keyServers to reduce txnStateStore size 2020-04-05 14:30:09 -07:00
chaoguang aad8f850f3 refactor conflicting keys feature using special key space 2020-04-04 13:26:11 -07:00
Balachandar Namasivayam 6d570cd865 Change version from 7.0 to 6.3 2020-04-03 21:38:58 -07:00
chaoguang 5b6ae4da7f A simple intergration to put conflictingKeys into special-key-space 2020-04-03 16:11:20 -07:00
A.J. Beamon 2336f073ad Checkpointing a bunch of work on throttles. Rudimentary implementation of auto-throttling. Support for manual throttling via fdbcli. Throttles are stored in the system keyspace. 2020-04-03 15:24:14 -07:00
Xin Dong 760dc68b7f
Merge pull request #2869 from dongxinEric/feature/1689/allow-custome-trace-log-file-identifier
Allow the user to provide a custome trace log file identifier that wi…
2020-04-03 14:08:17 -07:00
Xin Dong 2ef8f1eb96 Fixed the indentation. Addressed review comments 2020-04-03 13:21:57 -07:00
A.J. Beamon 0816423d78
Merge pull request #2853 from Daniel-B-Smith/debug-transactions
Add ability to mark transactions to add debug logging
2020-04-03 11:43:45 -07:00
Daniel Smith f6a2a7cee9 Move log statement to correct section 2020-04-03 17:31:38 +00:00
Daniel Smith 5092f52042
Fix location of logging code. 2020-04-03 13:19:48 -04:00
Daniel Smith 1ec7b1ebe3 Add logging for server tracing 2020-04-02 22:16:58 +00:00
Daniel Smith d0210fd54f Rename option 2020-04-02 21:41:16 +00:00
negoyal a0c8946f31 Merge branch 'master' into fdb_cache_subfeature2 2020-04-02 12:27:04 -07:00
tclinken 884e92bb49 Atomically update dependent knobs 2020-04-01 15:18:49 -07:00
chaoguang c8abd9c493 Reformat some code 2020-03-31 18:53:36 -07:00
Xin Dong 6820167d77
Merge branch 'master' into feature/1689/allow-custome-trace-log-file-identifier 2020-03-31 16:50:46 -07:00
Xin Dong 459c2e34cd Now limit the file identifier to a). has a length no longer than the value defined in knobs; b). can only contain [A-Za-z0-9_] chars. 2020-03-31 16:42:00 -07:00
chaoguang a63f8b839c Merge remote-tracking branch 'upstream/master' into private-keyspace-framework 2020-03-31 12:05:42 -07:00
chaoguang 82a2196d7d update space range 2020-03-31 09:34:53 -07:00
Meng Xu 60f6edc3b5
Merge pull request #2860 from zjuLcg/report-conflicting-key-roll-forward
Report conflicting key roll forward
2020-03-30 17:33:56 -07:00
negoyal e358510e27 Minor compilation fix. 2020-03-26 16:50:58 -07:00
chaoguang 64148469e8 clang-format the pr 2020-03-26 15:52:30 -07:00
negoyal acaf91ac47 Merge branch 'master' into fdb_cache_subfeature2 2020-03-26 13:33:08 -07:00
Meng Xu 1052b23ee1
Merge pull request #2370 from atn34/test-watch-outliving-transaction
Test watch outliving transaction
2020-03-26 12:40:38 -07:00
Xin Dong a0177a9335 Allow the user to provide a custome trace log file identifier that will be used as the prefix of all trace log files created at the client side. 2020-03-26 11:25:05 -07:00
Andrew Noyes f6af6ec777 Avoid passing self to watch actor 2020-03-26 10:29:23 -07:00
Andrew Noyes cdb6bbfc85 Test watch outliving transaction 2020-03-26 10:09:03 -07:00
tclinken 7d5ed53215 Allow trace log group to be set after database is created 2020-03-25 13:40:43 -07:00
Andrew Noyes 289487559d Revert "Revert "Merge pull request #2257 from zjuLcg/report-conflicting-key""
This reverts commit 804fe1b22e.
2020-03-24 18:11:15 -07:00
chaoguang 6df92a8b8d A work version of strict workload test 2020-03-23 23:55:56 -07:00
tclinken 247ab84323 Merge branch 'master' of https://github.com/apple/foundationdb into add-data-distribution-metrics 2020-03-23 17:01:17 -07:00
A.J. Beamon 197f866824 Don't include internal tools such as fdbcli, backup, and DR in the status client list. 2020-03-23 14:44:04 -07:00
A.J. Beamon 26b7e02d4c Some initial work to support tagging transactions and passing them around. 2020-03-20 11:23:11 -07:00
Balachandar Namasivayam 804fe1b22e Revert "Merge pull request #2257 from zjuLcg/report-conflicting-key"
This reverts commit 648dc4a933, reversing
changes made to 487d131b38.
2020-03-19 21:34:28 -07:00
Evan Tschannen 648dc4a933
Merge pull request #2257 from zjuLcg/report-conflicting-key
Report conflicting keys
2020-03-18 13:39:42 -07:00
Daniel Smith 572f08e5fc Add option to set transaction as debug 2020-03-17 22:21:31 +00:00
Evan Tschannen e08f0201f1 merge release 6.2 into master 2020-03-17 12:51:47 -07:00
Evan Tschannen ed4d02a3e4
Merge pull request #2812 from etschannen/feature-proxy-mem-limit
Limit the amount of requests the proxy can queue up in memory
2020-03-16 14:56:56 -07:00
Evan Tschannen a068d4063f renamed ProxyGetConsistentReadVersion 2020-03-16 12:11:32 -07:00
negoyal 99a5cb0572 Fix a corruption bug. 2020-03-13 18:52:34 -07:00
A.J. Beamon 031b579ede Increase priority of the logging of various metrics trace events. 2020-03-13 16:20:23 -07:00
chaoguang 39a37531db Fix issues according to Andrew's comments 2020-03-13 15:42:15 -07:00
chaoguang c4c38c5eca Delete commented code 2020-03-13 12:58:12 -07:00
Evan Tschannen 243c268d9d Limit the amount of requests the proxy can queue up in memory 2020-03-13 10:17:49 -07:00
chaoguang 6f90228a0b change to krmSetRangeCoalescing 2020-03-12 11:31:36 -07:00
chaoguang c2f0c41c52 use krmSetRange 2020-03-11 23:12:38 -07:00
chaoguang 6ae60870fc use krmSetRange 2020-03-11 13:20:40 -07:00
chaoguang 157d026ba2 debugging 2020-03-10 18:42:49 -07:00
chaoguang 698198a09e Merge remote-tracking branch 'upstream/master' into report-conflicting-key 2020-03-09 10:50:33 -07:00
Evan Tschannen 303df197cf Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	bindings/c/test/mako/mako.c
#	documentation/sphinx/source/release-notes.rst
#	fdbbackup/backup.actor.cpp
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/NativeAPI.actor.h
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/Knobs.cpp
#	fdbserver/Knobs.h
#	fdbserver/LogRouter.actor.cpp
#	fdbserver/SkipList.cpp
#	fdbserver/fdbserver.actor.cpp
#	flow/CMakeLists.txt
#	flow/Knobs.cpp
#	flow/Knobs.h
#	flow/flow.vcxproj
#	flow/flow.vcxproj.filters
#	versions.target
2020-03-06 18:22:46 -08:00
negoyal 927e59b1ce Fix a memory bug. 2020-03-06 12:32:56 -08:00
Evan Tschannen dbfc0cbcc0
Merge pull request #2781 from alexmiller-apple/certificate-refresh
Refresh certificates used for handshaking when they change on disk
2020-03-06 11:12:04 -08:00
A.J. Beamon fd8d569b91 Fix a few typos. 2020-03-05 14:42:07 -08:00
A.J. Beamon 6479034645 Add more metrics to the TransactionMetrics event 2020-03-05 14:00:44 -08:00
Alex Miller 595dd77ed1 Merge remote-tracking branch 'upstream/release-6.2' into certificate-refresh 2020-03-04 20:25:42 -08:00
Alex Miller 9b5ef3416e Refactor TLSParams into TLSConfig + LoadedTLSConfig
The idea being that we keep around a TLSConfig that the configuration
that the user has provided, and then when we want to intialize an SSL
context, we ask the TLSConfig to load all certificates and return us a
LoadedTLSConfig that is a concrete set of certificate bytes in memory.

initTLS now just takes the in-memory bytes and applies them to the ssl
context.

This is a large refactor to lead up into certificate refeshing, where we
will periodically check for changes to the certificates, and then
re-load them and apply them to a new SSL context.
2020-03-04 20:14:47 -08:00
chaoguang 7a76e9556d Merge remote-tracking branch 'upstream/master' into report-conflicting-key 2020-03-04 11:24:39 -08:00
chaoguang 9c50b8369d Change name from private-key-space to special-key-space 2020-03-03 18:35:04 -08:00
chaoguang 94102969fd Merge code from upstream and change ACTOR to member class 2020-03-03 14:55:03 -08:00
chaoguang 409718c964 Merge remote-tracking branch 'upstream/master' into private-keyspace-framework 2020-03-03 13:37:51 -08:00
chaoguang 4ee9ce15fc Change from NULL to nullptr 2020-03-03 00:29:40 -08:00
Evan Tschannen 6054c05963 Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	documentation/sphinx/source/release-notes.rst
#	fdbserver/fdbserver.actor.cpp
#	versions.target
2020-02-28 12:11:05 -08:00
A.J. Beamon d1e1fea42d Our binaries that act like clients (fdbcli, backup and DR binaries) were reporting an unknown client version. Clients did not react if the list of supported versions changed. 2020-02-28 09:35:21 -08:00
Evan Tschannen c3299b8ebe if tls cannot be initialized, throw an error from createDatabase 2020-02-26 18:53:06 -08:00
Evan Tschannen d1598e7c99 set_verify_peers throws an error instead of returning a value 2020-02-26 16:06:16 -08:00
Evan Tschannen 2586bade68 re-added support for configuration TLS options with environment variables 2020-02-26 15:33:48 -08:00
negoyal 7fa1f105c0 Fix compilation error after merging master. 2020-02-26 11:34:41 -08:00
negoyal cd949eca71 Merge branch 'master' into fdb_cache_subfeature2 2020-02-26 11:22:08 -08:00
Evan Tschannen 924d335aa7 Merge branch 'release-6.2'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	flow/Knobs.cpp
#	flow/Knobs.h
2020-02-25 18:25:19 -08:00
Evan Tschannen 13a523a355 fix: commit on first proxy did not always commit to the first proxy 2020-02-25 12:34:31 -08:00
negoyal 8c4cdb1f80 More fixes. 2020-02-25 10:48:57 -08:00
negoyal 7193fa87b8 And some more compilation fixes. 2020-02-25 10:45:02 -08:00
negoyal 746523b090 Yet more compilation fixes. 2020-02-24 17:47:33 -08:00
Alvin Moore 0f64505d0b Merge branch 'release-6.2' of github.com:apple/foundationdb
Needed to pull in changes to build docker
2020-02-23 23:27:53 -08:00
Evan Tschannen 96258b9809 Merge branch 'release-6.2'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/ManagementAPI.actor.cpp
#	fdbrpc/FlowTransport.actor.cpp
#	fdbserver/ClusterController.actor.cpp
#	fdbserver/DataDistribution.actor.cpp
#	fdbserver/DataDistribution.actor.h
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/KeyValueStoreMemory.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/QuietDatabase.actor.cpp
#	fdbserver/SkipList.cpp
#	fdbserver/StorageMetrics.actor.h
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	fdbserver/storageserver.actor.cpp
#	fdbserver/workloads/KVStoreTest.actor.cpp
#	flow/CMakeLists.txt
#	flow/Knobs.cpp
#	flow/Knobs.h
#	flow/genericactors.actor.cpp
#	flow/serialize.h
2020-02-21 19:09:16 -08:00
A.J. Beamon 4c696d5bf2 Merge branch 'release-6.2' into dd-better-rebalance-logging
# Conflicts:
#	fdbserver/DataDistributionQueue.actor.cpp
2020-02-21 17:41:00 -08:00
A.J. Beamon 6810a03283 Add more logging to valley filler and mountain chopper 2020-02-21 10:55:14 -08:00
Evan Tschannen 08c318d28a re-added the connect lock in the fdbcli so that the timeout is not spent before a connection has been initiated (because of the handshake lock) 2020-02-20 10:43:34 -08:00
Evan Tschannen fd8a58b035 re-added support for the TLS_DISABLED flag 2020-02-19 18:37:47 -08:00
Evan Tschannen 761da5a059 code cleanup 2020-02-19 17:59:45 -08:00
negoyal a21f29b586 Bugfixes. Identify the cached range correctly. 2020-02-19 16:27:06 -08:00
Alex Miller 88d36af9c7 Fix --tls_password and add better error logging
This refactors all tls settings into a TLSParams object so that we can
set the password before loading any certificates.

It turns out that the FDBLibTLS code did really nice things with error
logging, but I just didn't understand openssl enough before to realize
what pieces I should be copying.
2020-02-19 00:57:05 -08:00
A.J. Beamon 649fc6ba94
Merge pull request #2329 from davisp/trace-clock-source-network-option
Add network option for the trace clock source
2020-02-15 10:43:00 -08:00
Paul J. Davis 32e285a761 Add network option for the trace clock source
This option allows clients to select the clock source for trace events
similar to the `--traceclock` command line parameter for `fdbserver`.
Using the `realtime` clock sources makes loading event data into
OpenTracing systems like Jaeger more useful.
2020-02-15 11:30:43 -06:00
Xin Dong 1849939bc3 Added a delay to avoid get stuck in a loop because the request is not versioned and thus if a storage server is behind it might not know it has been assigned a shard range that a proxy thinks it has. 2020-02-12 15:01:26 -08:00
Xin Dong 2e1d03cbe7 Addressed AJ's review comments 2020-02-12 14:57:40 -08:00
Xin Dong 03287a0214 Fix build error. 2020-02-12 14:57:40 -08:00
Xin Dong 57f0c11712 Address Evan's review comments 2020-02-12 14:57:40 -08:00
Xin Dong d934aed1d7 Because when the user issue 'getStorageByteSample' on a large key range, which can be as large as the whole DB, we need to change the behavior of 'waitStorageMetricsMultipleLocation' to avoid the case where a target key range got moved/splited by DD and thus the call to 'waitMetircs' on the corresponding storage server will return 'wrong_shard_server' error and thus the whole 'waitStorageMetricsMultipleLocation' will be retried on the large key range. What we want is to do the retry only for the key range that caused the error. 2020-02-12 14:57:40 -08:00
A.J. Beamon ff44bd2b33
Merge pull request #2639 from atn34/atn34/include-port-in-address-default
Enable include_port_in_address by default for api version 700
2020-02-10 09:50:59 -08:00
Markus Pilman e71fe44ee3
Merge branch 'master' into features/icc 2020-02-08 21:33:02 -08:00
Alex Miller e390dbd36c Add a non-FDBLibTLS verify peers framework to new TLS impl 2020-02-06 21:06:52 -08:00
Evan Tschannen 38d8d0d675 fixed simulation 2020-02-06 19:29:31 -08:00
negoyal 85cc35e81e Merge branch 'master' into HEAD 2020-02-05 14:59:55 -08:00
tclinken 058de86b88 Merge branch 'master' of https://github.com/apple/foundationdb into add-data-distribution-metrics 2020-02-05 10:07:36 -08:00
Evan Tschannen 84853dd1fd switched SSL implementation to use boost ssl 2020-02-04 14:56:40 -08:00
Evan Tschannen 8449badb3e
Merge pull request #1868 from dongxinEric/fix/1827/error_instead_of_timeout
Send error back before put the GRV request with PRIORITY_BATCH into t…
2020-02-04 14:32:47 -08:00
mpilman d09e07f1f5 Merge remote-tracking branch 'upstream/master' into features/icc 2020-02-04 10:26:18 -08:00
Evan Tschannen 4524831456
Merge pull request #2518 from vishesh/task/failmon-remove-server
FailureMonitoring: Server processes no longer need to talk to ClusterController
2020-02-03 17:22:50 -08:00
Andrew Noyes 2ce887012c Respect api version for include_port_in_address 2020-02-03 15:25:30 -08:00
Andrew Noyes 07a3051f0e Enable include_port_in_address by default for api version 700
Resolves #2607
2020-02-03 15:10:00 -08:00
Xin Dong 7016f7903b Fixed another build error. Do not use timeReplyIgnoreError since we don not want the logging inside that function and thus that's unnecessary anymore. Change to use ready() which basically ignores the error. 2020-01-31 15:48:29 -08:00
Xin Dong c1f992667b Fix build failure 2020-01-31 14:27:47 -08:00
Xin Dong 8d28c2a7f0 Added two new counters for transaction throttled error and remove the verbose trace event logging. Also changed a chain of 'if' statements into 'if-else' statements since they are mutal exclusive 2020-01-31 14:16:39 -08:00
Xin Dong 1b313a4f7e Address review comments. Rebased with latest master 2020-01-30 14:13:56 -08:00
Xin Dong e21426d12a Send error back to the GRV requests with batch priority when the cluster is saturated, instead of blindly enqueue the requests and let the client timeout. 2020-01-30 14:13:56 -08:00
A.J. Beamon 182dac7cd5 Convert the slow task profiler into a run loop profiler that also logs when the run loop is 100% busy for a knob-configurable duration. 2020-01-28 12:09:37 -08:00
mpilman ec418a4dcb LocationCache should now be updated 2020-01-27 17:03:36 -08:00
mpilman 291d524ffe Some bugfixes, started to add logic for locationCache update 2020-01-27 14:13:54 -08:00
mpilman 8d774d1b81 Refactoring for readability 2020-01-26 21:25:15 -08:00
mpilman 1cca70d4ea Added logic to keep locationCache up to date 2020-01-26 20:53:50 -08:00
mpilman 51717c970d Fixed management api 2020-01-24 11:00:50 -08:00
tclinken c9363e7e28 Merge branch 'master' of https://github.com/apple/foundationdb into add-data-distribution-metrics 2020-01-22 21:02:21 -08:00
Vishesh Yadav daef5f011a Merge remote-tracking branch 'apple/master' into task/failmon-remove-server 2020-01-21 13:20:15 -08:00
Xin Dong b0a1af1288 Added the actual read hot detection algorithm and logging machanism.
- When a shard has a read bandwidth larger than a threshold value(configurable via knob), and it's read-bandwidth/byte-size ratio is also larger than a threshold(configurable via knob), the corresponding shard tracker will run the algorithm
- The algorithm will divide the shard into 10MB(configurable via knob) chunks and try to find the chunk(s) that has large aforementioned ratio
- Then those ranges will be logged into TraceEvents. This will later do more like actually cache them.
2020-01-21 11:19:52 -08:00
Alex Miller eb64eede8d Make a smaller range inaccessable after writing a versionstamped key
A transaction's read version is the lower bound of what a transaction's
commit version could be.  Thus, we can narrow the conflict range of a
versionstamped key, and thus reduce the amount of the keyspace that is
rendered inaccessable, by filling in the read version on the
versionstamped key and using that as the lower bound of the conflict
range.

This allows reads to still be done to versionstampled keys lower than
the read version of the current transaction.
2020-01-16 21:41:59 -08:00
Evan Tschannen 3f9d9d8b84 Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	cmake/FlowCommands.cmake
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/StorageServerInterface.h
#	fdbserver/DataDistributionTracker.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	flow/Knobs.h
#	flow/Platform.cpp
#	versions.target
2020-01-16 18:37:47 -08:00
chaoguang db901d626a Update some var names and make returned list in ResolveTransactionBatchReply as Optional 2020-01-16 14:41:06 -08:00
chaoguang 30b9858cf5 using std::vector instead of VectorRef to avoid unknown arena change behavior 2020-01-16 13:06:36 -08:00
tclinken 1d6ac716a1 Merge remote-tracking branch 'origin' into add-data-distribution-metrics 2020-01-15 13:20:04 -08:00
chaoguang 72d39a31f1 Change to send back index of read_conflict_range not keys, which speeds up but fail to give narrowed keyrange 2020-01-15 10:21:51 -08:00
Evan Tschannen c93ca04ea6 Do not merge more than 100 shards together to avoid creating untrackable shards 2020-01-15 09:33:27 -08:00
chaoguang 1c2b116688 Push sorting and union of overlapped keyranges to clients 2020-01-13 18:08:54 -08:00
Evan Tschannen 4aab9b7bc8 fix: clients would waste time attempting to read from a remote region when it was in the process of catching up 2020-01-10 12:23:59 -08:00
chaoguang 1cdb22c4a4 refine code according to comments 2020-01-09 15:42:21 -08:00
Evan Tschannen 83ad9caf54 implemented a load balancing algorithm which evens out the number of requests processes by each proxy 2020-01-08 01:59:01 -08:00
mpilman c7de801935 Merge remote-tracking branch 'upstream/master' into features/cache-initialization 2020-01-07 16:41:51 -08:00
Vishesh Yadav 6e6cfaff16 Cleanup old Failure Monitoring code 2020-01-07 15:53:32 -08:00
chaoguang b8ffc72cca Use a RYW in transactionInfo to track conflicting keys 2020-01-07 13:55:05 -08:00
mpilman 9c641c7a8e First part of client handling 2020-01-07 11:42:57 -08:00
chaoguang 10719200c3 A hack way to call API through getRange("\xff\xff/conflicting_keys\<start_key>", "\xff\xff/conflicting_keys\<end_key>"). 2020-01-06 11:22:11 -08:00
Alvin Moore 3bf971ba8b Merge branch 'release-6.2' of github.com:apple/foundationdb into release_6.2_merge
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbserver/storageserver.actor.cpp
2019-12-12 07:13:12 -08:00
A.J. Beamon 290cbb7628 Fix an internal error that occurred when using client buggify and a successful transaction was failed with commit_unknown_result.
Move some buggify errors into a try catch block so that the normal error handling path can run.
Initialize startTime so that it's valid in the case of errors thrown early.
2019-12-09 09:44:48 -08:00
chaoguang b376b947d5 Encode conflicting keys using base64. 2019-12-06 16:21:19 -08:00
chaoguang eacfdf6da3 Add a simple workload, ReportConflictingKeysWorkload, to test correctness of the API and performance overhead added to the resovler. 2019-12-06 16:21:03 -08:00
chaoguang edf52e8c97 First version for reporting conflicting keys 2019-12-02 13:45:39 -08:00
A.J. Beamon ed8d3f163c Rename hgVersion to sourceVersion. 2019-11-15 12:26:51 -08:00
Jon Fu 4d8cfc00f6 added comment explaining quorum 2019-10-18 15:00:00 -07:00
Jon Fu f38d52b82d re-introduced coordinator quorum and added some comments 2019-10-18 14:52:07 -07:00
Jon Fu f67eb2f371 removed smartquorum for coordinators check 2019-10-18 09:44:23 -07:00
Jon Fu efa2f5df6b avoid double overwrite on failed servers and reordered removal of keys 2019-09-26 13:52:53 -07:00
Jon Fu 450a09e117 Code Review Changes 2019-09-24 15:48:50 -07:00
Jon Fu 40ad6f0931 created new reply types to work with flatbuffer serialization requirements 2019-09-18 13:40:18 -07:00
Jon Fu 471e283128 Merge branch 'master' of https://github.com/apple/foundationdb into mark-ss-failed 2019-09-18 11:49:07 -07:00
Evan Tschannen b495cc697b Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	documentation/sphinx/source/release-notes.rst
#	versions.target
2019-09-13 09:25:08 -07:00
A.J. Beamon 41fd3d9467 Merge branch 'master' into remove-unused-ssi-get-version
# Conflicts:
#	fdbclient/StorageServerInterface.h
#	fdbserver/storageserver.actor.cpp
2019-09-10 08:11:43 -07:00
Andrew Noyes 34dedc9a62 Fix whitespace 2019-09-05 16:44:58 -07:00
Andrew Noyes c18c4c1b83 Use a transaction option to control includePort behavior 2019-09-05 14:58:39 -07:00
Andrew Noyes 11f6adf645 Treat \xff\xff prefix as 'includePort' for get_addresses_for_key 2019-09-04 17:47:40 -07:00
Evan Tschannen dc1d055b27
Merge pull request #2042 from senthil-ram/snap_cli_fix
fix fdbcli --exec 'snapshot create.sh' failure
2019-08-30 13:40:38 -07:00
Evan Tschannen a7237c4302
Merge pull request #2045 from atn34/disallow-scalar-network-messages
Disallow scalar network messages
2019-08-30 13:38:54 -07:00
sramamoorthy b3277f2982 Fix #2009 posix compliant args for snapshot binary 2019-08-30 12:54:09 -07:00
Andrew Noyes b5f9e9f307 Move comment above if 2019-08-28 15:21:58 -07:00
Andrew Noyes 6aa0ada7b1 Replace scalar root types with proper messages 2019-08-28 14:40:50 -07:00
sramamoorthy 7a9097ea01 make fdbcli --exec 'snapshot create.sh' to succeed 2019-08-27 16:44:19 -07:00
sramamoorthy 5d87443323 improved error msgs for snapshot cmd 2019-08-27 16:43:52 -07:00
Jon Fu 7414ddd891 cleanup merge/rebase error 2019-08-27 14:39:44 -07:00
Jon Fu 3666c0c776 added more trace lines and added timeout to safety check in test workload 2019-08-27 14:39:44 -07:00
Jon Fu 04d514c483 added a wait to check for master proxies changed and put in a few more trace events 2019-08-27 14:39:44 -07:00
Jon Fu 00c2025d4b fixed removeKeys impl, adjusted test workload, and introduced extra safety checks to NativeAPI and proxy 2019-08-27 14:39:44 -07:00
Jon Fu a07cf5d038 addressed code review comments 2019-08-27 14:39:44 -07:00
Jon Fu 5a877d6b14 added safety check on client to prevent removing all servers from a team 2019-08-27 14:39:43 -07:00
A.J. Beamon 64ce0c3285 Remove the unused getVersion from StorageServerInterface. 2019-08-26 13:53:54 -07:00
A.J. Beamon c4004a4eea Don't count read version requests if we've already started one. Also avoid some other work that only needs to be done if we haven't started a read version request. 2019-08-12 15:55:48 -07:00
Evan Tschannen c9fa7237f1 Merge branch 'master' of github.com:apple/foundationdb 2019-08-06 16:40:14 -07:00
Evan Tschannen ba54508c47 code cleanup 2019-08-06 16:30:30 -07:00
mpilman 370ba8b841 Remove --object-serializer flag from executables 2019-08-06 09:25:40 -07:00
Evan Tschannen 69e7ed3e53
Merge pull request #1932 from etschannen/master
Bug fixes for rare bugs found by simulation
2019-07-30 17:18:30 -07:00
sramamoorthy 63941e0d96 disable DD with a in-memory flag and use in snapv2 2019-07-30 17:04:51 -07:00
Evan Tschannen 5c978f6129 fix: switchConnectionFile could get the proxies out of the clientInfo and continue connecting to the wrong cluster 2019-07-30 16:32:26 -07:00
Evan Tschannen 5c98dcce6d revert the proxy forwarding path, because it is no longer necessary as clients keep a persistent connection open with coordinators 2019-07-27 16:46:22 -07:00
Evan Tschannen b509a441e7 Merge branch 'master' into feature-skip-confirm
# Conflicts:
#	bindings/flow/tester/Tester.actor.cpp
#	bindings/go/src/_stacktester/stacktester.go
#	bindings/java/src/test/com/apple/foundationdb/test/AsyncStackTester.java
#	bindings/java/src/test/com/apple/foundationdb/test/StackTester.java
#	bindings/python/tests/tester.py
#	bindings/ruby/tests/tester.rb
#	documentation/sphinx/source/api-c.rst
#	documentation/sphinx/source/api-python.rst
#	documentation/sphinx/source/api-ruby.rst
#	documentation/sphinx/source/data-modeling.rst
#	documentation/sphinx/source/developer-guide.rst
#	fdbclient/vexillographer/fdb.options
#	fdbserver/MasterProxyServer.actor.cpp
2019-07-27 15:08:13 -07:00
Evan Tschannen d1c7ab325b fix: getConnectionFile could crash when connectionFile is null 2019-07-27 13:02:06 -07:00
Evan Tschannen 1c4028d71e fixed merge conflict error 2019-07-26 16:09:46 -07:00
Evan Tschannen 90e3b50213 Merge branch 'master' into feature-coordinator-connection
# Conflicts:
#	fdbclient/DatabaseContext.h
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/NativeAPI.actor.h
#	fdbserver/workloads/KillRegion.actor.cpp
2019-07-26 15:05:02 -07:00
Evan Tschannen 8149b5b352
Merge pull request #1413 from atn34/change-connection-file
Switch cluster file feature
2019-07-26 13:27:37 -07:00
sramamoorthy 9afd162e2f remove snap v1 related code 2019-07-25 17:29:31 -07:00
Evan Tschannen be5d144b8b added status information on connected clients 2019-07-25 17:15:31 -07:00
sramamoorthy a65c9f92ed get rid of all timeouts and other changes 2019-07-24 15:36:28 -07:00
sramamoorthy a2f2ad96ff code review comments and merge to master changes 2019-07-24 15:36:28 -07:00
sramamoorthy 869f77aef1 Few cosmetic edits and fixes 2019-07-24 15:36:28 -07:00
sramamoorthy ddd4523816 bug fix in timeout & header file re-arrange in DD 2019-07-24 15:36:28 -07:00
sramamoorthy 0598779a40 snap create timeout for client call 2019-07-24 15:36:28 -07:00
sramamoorthy ec9af66fc5 timeout snapshotdatabase call 2019-07-24 15:36:28 -07:00
sramamoorthy 62c14dae72 disable dd during snap and enable in restore 2019-07-24 15:36:28 -07:00
sramamoorthy 209448807d snap v2: fdbclient related changes 2019-07-24 15:36:28 -07:00
Trevor Clinkenbeard 9ad9bd4c1f Merge branch 'master' of https://github.com/apple/foundationdb into change-connection-file 2019-07-24 15:22:26 -07:00
Evan Tschannen 4a866290b7 Clients keep a persistent connection open with coordinators to get updates to the list of proxies
Status still needs to be updated with client information with information from the coordinators
2019-07-23 19:22:44 -07:00
A.J. Beamon e29a6ea280
Merge pull request #1871 from bnamasivayam/tr-priority-add-client-log
Track the priority of sampled Transaction as part of GetReadVersion e…
2019-07-22 13:04:52 -07:00
Trevor Clinkenbeard 3507bfd52f Trigger masterProxiesChangeTrigger in switchConnectionFileImpl 2019-07-22 11:13:07 -07:00
Balachandar Namasivayam af267ba053 Track the priority of sampled Transaction as part of GetReadVersion event. 2019-07-19 17:31:49 -07:00
Alex Miller c3a8ae4752
Merge pull request #1791 from fzhjon/fetch-keys-requests-priority
Introduce priority to fetchKeys requests from data distribution
2019-07-19 14:54:51 -07:00
A.J. Beamon bc5c65e5ab
Merge pull request #1756 from jzhou77/db-option
Add transaction getApproximateSize() API
2019-07-19 08:33:24 -07:00
Evan Tschannen 02de53160d only skip confirm epoch live if CAUSAL_READ_RISKY is enabled
time checked on the proxy should be less than the time waited by the master to account for clock speed differences
setting REQUIRED_MIN_RECOVERY_DURATION and ENFORCED_MIN_RECOVERY_DURATION to 0 will go back to the old behavior
2019-07-12 17:58:16 -07:00
A.J. Beamon d5051b08dd Make trace event field lengths (and total event sizes) default knobified and configurable. Add a transaction option to control the field length of transaction debug logging. Make the program start command line field less likely to be truncated. 2019-07-12 16:12:35 -07:00
Andrew Noyes 9001f5d23f Fix bug introduced in merge commit 2019-07-12 14:02:38 -07:00
Andrew Noyes 969957e619 Merge branch 'master' into change-connection-file 2019-07-12 11:39:19 -07:00
A.J. Beamon f4366e69ca Unknown options should not be used internally (i.e. underneath thread-safe API). This commit removes various checks that options exist and replaces them with an ASSERT. 2019-07-11 11:25:39 -07:00
Jon Fu 652cd77689 fixed merge conflicts and use new TaskPriority enum class 2019-07-11 09:56:59 -07:00
Jon Fu f12a3909f3 renamed workloads and made code style adjustments 2019-07-11 09:56:58 -07:00
Jon Fu 1e9d31597c removed extra parameter from getRange, added knob to guard new changes, and adjusted style/formatting in several places 2019-07-11 09:56:58 -07:00
Jon Fu f707d186fe added new priority for fetchkeys requests and adjusted ddmetrics workload to run parallel with mako 2019-07-11 09:56:58 -07:00
Evan Tschannen bbef631872 fix: do not access optionInfo unless the option already exists in the map 2019-07-10 18:48:54 -07:00
Jingyu Zhou 0ad2d2d16e Add binding test for getApproximateSize API 2019-07-10 14:58:07 -07:00
Jingyu Zhou 8ef8b59fcc Use ThreadFuture for getApproximateSize
Change return type to int64_t and fix C and Python binding to use the correct
type.
2019-07-10 14:58:07 -07:00
Jingyu Zhou c50a675bf0 Add transaction getApproximateSize() API
The size is the summation of expected size of mutations, read conflict ranges,
and write conflict ranges.
2019-07-10 14:51:52 -07:00
Evan Tschannen 7e919e361c
Merge pull request #1817 from etschannen/feature-proxy-forward
Proxies will forward clients to the next generation
2019-07-10 13:53:12 -07:00
A.J. Beamon a174178be1 Merge branch 'master' into fix-mvc-default-options
# Conflicts:
#	fdbclient/NativeAPI.actor.cpp
2019-07-09 18:33:14 -07:00
Evan Tschannen 7ad0d1a12b Merge branch 'master' into feature-proxy-forward
# Conflicts:
#	fdbclient/NativeAPI.actor.cpp
2019-07-09 17:26:15 -07:00
Meng Xu cce00bb413
Merge pull request #1808 from ajbeamon/improved-transaction-metrics
Improve TransactionMetrics
2019-07-09 16:46:17 -07:00
A.J. Beamon 15ecba59db Merge branch 'master' into fix-mvc-default-options
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
2019-07-09 15:28:12 -07:00
A.J. Beamon fdd580c878 Restore some variable initializations that were unintentionally removed. 2019-07-09 15:00:11 -07:00
Vishesh Yadav ae6c3e013a monitorClientInfo: Wait for master proxy endpoint failures than triggers
This will not initiate request to get get new set of proxy unless we
know for a fact that endpoint has indeed failed, not just because the
connection to Peer was closed as it was sitting idle.
2019-07-09 14:24:16 -07:00