Commit Graph

578 Commits

Author SHA1 Message Date
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