Commit Graph

916 Commits

Author SHA1 Message Date
mpilman f23392ec5a Don't use O_DIRECT in EIO by default 2019-10-24 11:39:55 -07:00
mpilman 7ad0e20e48 Added knob to disable O_DIRECT 2019-10-24 11:20:14 -07:00
mpilman f41f19b5f6 Introduced knob to set eio parallelism 2019-10-24 11:20:14 -07:00
Stephen Atherton 0e51a248b4 Merge branch 'release-6.2' of github.com:apple/foundationdb into feature-redwood 2019-10-23 10:12:54 -07:00
mpilman a79757a788 Fix compiler errors on Catalina
Fixes #2263
2019-10-21 11:15:37 -07:00
Evan Tschannen 42b7acf7b7
Merge pull request #2202 from etschannen/feature-share-mutations
Backup and DR would not share mutations if started on different versions of FDB
2019-10-16 20:28:39 -07:00
Evan Tschannen 35ef9b32de fix: if establishing a TLS connection took longer than 10ms, we could spend all our CPU establishing new connections instead of pinging to maintain existing connections, leading to an infinite loop 2019-10-16 17:26:01 -07:00
Evan Tschannen b88b1614c1 bool knobs would improperly report a SevWarnAlways that they were unrecognized 2019-10-01 18:53:04 -07:00
Evan Tschannen 9ec9f41d34 backup and DR would not share mutations if they were started on different versions of FDB 2019-10-01 18:52:07 -07:00
Stephen Atherton 09be680105 Merge branch 'release-6.2' of github.com:apple/foundationdb into feature-redwood 2019-09-27 21:51:17 -07:00
Alvin Moore 2bbaa917f8 Switched out C style cast to more favorable type 2019-09-24 11:22:24 -07:00
Alvin Moore 6354e63269 Added parenthesis around ntohl value to resolve problem with CLANG compiler 2019-09-24 11:22:24 -07:00
Alvin Moore 8f755f0f3a Added parenthesis around macro condition which could cause problems with interpretation since being used in 'or' statement.
This is currently a problem for CLANG compiler
2019-09-24 11:22:24 -07:00
Evan Tschannen cba5866152 added a fix 2019-09-12 16:30:29 -07:00
Andrew Noyes a5314e2cee ObjectSerializer fixes for pr/2086 2019-09-11 13:31:07 -07:00
Andrew Noyes 7ecd31da5a Fix EnsureTable<T> where T has a LoadSaveHelper specialization 2019-09-11 13:11:58 -07:00
Evan Tschannen dc668d1fc9 attempt to fix the serialization of CachedSerialization 2019-09-11 11:45:07 -07:00
Evan Tschannen 945cff1e5b the cluster controller caches the serialization of serverDBInfo, to avoid regenerating it many times 2019-09-10 14:27:22 -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
Evan Tschannen 84e2c9e1a5
Merge pull request #2041 from senthil-ram/snap_error_reporting
improved error msgs for snapshot cmd
2019-08-30 12:58:41 -07:00
sramamoorthy c59168fd07 error msg: Snapshot error -> Disk Snapshot error 2019-08-30 08:46:36 -07:00
Andrew Noyes 6aa0ada7b1 Replace scalar root types with proper messages 2019-08-28 14:40:50 -07:00
Andrew Noyes 26a3672751 Disallow scalars from being root types
By not specializing FileIdentifierFor for them
2019-08-28 14:40:06 -07:00
A.J. Beamon fa6e45a852 Separate AsioReactor sleep and react into two different functions. Track slow tasks and time spent in react, track time spent in launch. Don't track react time at priority 0. 2019-08-28 14:35:48 -07:00
sramamoorthy 5d87443323 improved error msgs for snapshot cmd 2019-08-27 16:43:52 -07:00
Evan Tschannen 41b908752e increased move keys parallelism to be less of a decrease just in case lowering this could effect normal data distribution
raised target durability lag versions to give more time for batch limiting to come into play before this limit is hit
changed max_bad_options to better reflect the name
2019-08-21 14:55:21 -07:00
Evan Tschannen 54282288cb disabled zone_id load balancing, because it can cause hot read shards 2019-08-19 14:04:21 -07:00
Evan Tschannen 51cedd24c8 load balance will send reads to remote servers if more than one alternative is failed or overloaded 2019-08-19 13:59:49 -07:00
Evan Tschannen da8163fd5a allow one requests every second to skip there all_alteratives_failed delay, because if a client has a timeout longer than the delay we will never invalidate the key servers cache 2019-08-09 13:03:40 -07:00
Evan Tschannen 36b7b98d3c Buggified the idle_timeout so that it happens in simulation 2019-08-09 12:35:55 -07:00
Evan Tschannen 5f7d3498ea The delay for all_alteratives_failed can scale all the way up to 30.0 at a much slow time ratio 2019-08-09 12:35:19 -07:00
mpilman ca78e35f31 fixed minor bug in flow readme 2019-08-07 08:34:20 -07:00
Stephen Atherton 10be4b8127 Merge branch 'master' of github.com:apple/foundationdb into feature-redwood
# Conflicts:
#	fdbserver/VersionedBTree.actor.cpp
2019-08-07 04:20:14 -07:00
Stephen Atherton da9c4e97d3 Added new pager interface, IPager2, whose write interface enables forcing the user to handle a page update causing a copy to a new Page ID. Implemented FIFOQueue<T> which uses pages of T stored in a Pager2 instance to implement a FIFO queue. Implemented COWPager, a copy-on-write Pager2 in which all page writes cause a change of Page ID. VersionedBTree, still only operating in single-version mode, now uses Pager2. 2019-08-07 02:36:33 -07:00
mpilman 370ba8b841 Remove --object-serializer flag from executables 2019-08-06 09:25:40 -07:00
A.J. Beamon 476641a087
Merge pull request #1929 from jzhou77/fix-warning
Fix compiler warnings
2019-08-01 11:15:41 -07:00
Jingyu Zhou 2e0e5a27bb Use invoke_result_t for all 2019-08-01 09:56:49 -07:00
mpilman 7d247af500 Two minor bug fixes from recent optimizations 2019-07-31 19:14:11 -07:00
Andrew Noyes 1bad0fd44e Make requestTime private 2019-07-31 17:59:35 -07:00
mpilman dabe516320 Avoid unnecessary timer calls 2019-07-31 17:59:35 -07:00
Jingyu Zhou 3a0514851a Fix a signed and unsigned mismatch 2019-07-31 17:01:23 -07:00
Jingyu Zhou 7592e129d2 Use friend struct for _IncludeVersion 2019-07-31 16:36:08 -07:00
Jingyu Zhou 7775ab7892 Use std::invoke_result_t for type names 2019-07-31 15:45:35 -07:00
Jingyu Zhou c5cc8c5180 Change deprecated std::result_of to std::invoke_result
std::result_of is deprecated in C++17.
2019-07-31 14:18:41 -07:00
Balachandar Namasivayam e8a9931dbe
Merge pull request #1918 from atn34/at-what-cost
Avoid memcpy for small types
2019-07-31 11:39:38 -07:00
Evan Tschannen fcc0f7a681
Merge pull request #1934 from etschannen/feature-bool-knobs
Added a knob to always use CAUSAL_READ_RISKY for GRV
2019-07-30 18:38:20 -07:00
mpilman 058f21b0fc fixed merge conflicts 2019-07-30 18:36:10 -07:00
mpilman aaef83e122 Added first parser functionality for sequences 2019-07-30 18:36:10 -07:00
mpilman 6b8b666ef6 Write object address in probes 2019-07-30 18:36:10 -07:00
mpilman 75e78f106e Added more run_loop probes and added documentation 2019-07-30 18:36:10 -07:00
mpilman 884628bc0a moved actor probes to function 2019-07-30 18:36:10 -07:00
mpilman b7df7f3549 compatability with older cmake versions 2019-07-30 18:36:10 -07:00
mpilman 32d141ad3a Probes with strings 2019-07-30 18:36:10 -07:00
mpilman 9b96d8c166 a step further to uniqueness 2019-07-30 18:36:10 -07:00
mpilman 8c73fa556c Reduced number of macros to 1 2019-07-30 18:36:10 -07:00
mpilman 497c0aa456 fixed typo 2019-07-30 18:36:10 -07:00
mpilman 8eb06f7ab4 Only generate probes where it is supported 2019-07-30 18:36:10 -07:00
mpilman 13e101c441 Added d-trace probes for actors 2019-07-30 18:36:10 -07:00
mpilman b81a4ef6a2 clang+libc++ support on linux + dtrace probes 2019-07-30 18:36:10 -07:00
Evan Tschannen 2d136af2bd bool knobs can now be set with the words “true” or “false” instead of just a number 2019-07-30 18:21:24 -07:00
Evan Tschannen ea1858953b
Merge branch 'master' into merge-release-6.1-into-master 2019-07-30 17:40:15 -07:00
Andrew Noyes d8a11a704e Add gotcha about arena ordering 2019-07-30 17:33:21 -07:00
Andrew Noyes 43e86ff819 Address review comments 2019-07-30 17:33:21 -07:00
Andrew Noyes 8145b45ad5 Update documentation 2019-07-30 17:33:21 -07:00
A.J. Beamon b5d2234a13 Merge branch 'release-6.1' into merge-release-6.1-into-master
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbbackup/backup.actor.cpp
#	fdbserver/MoveKeys.actor.cpp
#	flow/FastAlloc.h
#	versions.target
2019-07-30 16:23:42 -07:00
Andrew Noyes d0ecdb4fb1 Replace std::map with sorted std::vector 2019-07-30 16:17:14 -07:00
Evan Tschannen 06fc8cb904
Merge pull request #1919 from etschannen/feature-buffered-popped
Implement popped on bufferedCursor
2019-07-30 15:56:41 -07:00
A.J. Beamon 14648e20f9
Merge pull request #1901 from ajbeamon/data-distribution-receives-bytes-input-rate
Send bytes input rate to data distribution
2019-07-30 15:01:36 -07:00
Evan Tschannen 7a932479dd throw away state if we ever read popped data from the disk queue adapter 2019-07-30 10:14:39 -07:00
Andrew Noyes 9f32edf4df Avoid memcpy for small types
This is undefined behavior, since it's potentially a misaligned access.
But it's _probably_ not worse than the status quo
2019-07-29 17:11:45 -07:00
Andrew Noyes 997da6882a Explain test subtlety 2019-07-29 16:00:14 -07:00
Andrew Noyes 9d32cbcf50 Deserialize Arena after VectorRef in flat_buffers unit test 2019-07-29 15:45:54 -07:00
Evan Tschannen 1a4ca05a04
Merge pull request #1889 from ajbeamon/add-cache-memory-parameter
Add cache_memory parameter to fdbserver
2019-07-26 13:34:24 -07:00
Evan Tschannen 98c3b24036
Merge pull request #1869 from alexmiller-apple/sharded-txs-performance
Raise the priority of TLogRejoin above TLogPeekReply
2019-07-26 13:30:13 -07:00
Andrew Noyes fc7f9e7c69 Fix Void flatbuffers serialization
Before this fix, the encoding of Void happens to 'work' in that this
implementation can both read and write it, but it is not a flatbuffers
message since it contains a invalid offset (the implementation 'works'
because it does not dereference that offset).
2019-07-25 17:30:43 -07:00
A.J. Beamon b91795d288 Send bytes input rate to DD. 2019-07-25 16:27:32 -07:00
A.J. Beamon a92b6cd3d1 Merge branch 'master' into add-cache-memory-parameter
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
2019-07-25 13:41:57 -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 806a0822f1 timeoutError that takes Future<Error<T>> as input 2019-07-24 15:36:28 -07:00
A.J. Beamon 94be9560ea Add cache_memory parameter to fdbserver to control the size of the (4K) page cache. Change the default slighty from 2000 MiB to 2GiB. 2019-07-23 15:05:21 -07:00
A.J. Beamon 6e078a41a7
Merge pull request #1828 from mpilman/features/lexicographical-ordered-traces
Make trace files lexicographically ordered
2019-07-23 08:31:59 -07:00
A.J. Beamon e98cee016d Fix unsafe usage of now() function from multiple threads in trace logging. 2019-07-22 22:31:38 -07:00
Andrew Noyes 5cef65b6c4
Update flow/FileTraceLogWriter.cpp
Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-07-22 16:38:18 -07:00
mpilman de4fe4d640 Remove dead code and revert back to base 10
there can be at most 2^32 files with a distinct index. Therefore
`log10(index) < 10` - this means base 10 is good enough.
2019-07-22 16:20:03 -07:00
mpilman aa93f8411a Merge branch 'features/lexicographical-ordered-traces' of github.com:mpilman/foundationdb into features/lexicographical-ordered-traces 2019-07-22 14:22:51 -07:00
mpilman 001bfaf80c made trace index unsigned 2019-07-22 14:20:09 -07:00
Markus Pilman a48bdc0095
Update flow/FileTraceLogWriter.cpp
Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2019-07-22 14:16:34 -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
mpilman c26c68d6d2 Address review comments 2019-07-22 11:45:05 -07:00
mpilman a66dc937fc Make trace files lexicographically ordered
This resolves #1825

The basic idea is that we prefix every sequence number with its with,
separated by a dot. That way the filename length isn't increased
drastically (unlike using a fixed whidth number with 0-padding)
and the file names will be lexicographically ordered.
2019-07-22 10:10:47 -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 df7f0cffa1 Raise the priority of TLogRejoin above the default work priority.
With sharded txs tags, the master now receives data from transaction
logs at an order of magnitude higher rate.  This is the intentional
desires result of sharding the txs tag.  With a sufficient number of
TLogs, the master will saturate its CPU time handling the peek
responses.

Performance tests revealed some unstable oddities in how long a recovery
would take, which was eventually root caused to a priority inversion
between TLogRejoin requests and TLog peek replies.

Once peek replies saturate the CPU, the master would proceed to ignore
further TLogRejoin messages.  TLogRejoin is what marks a TLog as
available to the failure monitor, which is also what decides between a
ServerPeekCursor and a MergePeekCursor for a SetPeekCursor.  Ignoring
TLogRejoins meant that the sharded txs locality tags for those servers
would be merge peeked over all TLogs.  This is much less efficient than
just peeking one copy of data from the one preferred server.

Depending on the race between TLogPeek replies saturating the CPU and
TLogRejoin requests being submitted, a variable number of tags would be
affected, and thus the performance test would have some variance in its
results.
2019-07-19 16:55:04 -07:00
Evan Tschannen 3045826e3c
Merge pull request #1819 from mpilman/flatbuffers-fixes2
Flatbuffers fixes2
2019-07-19 16:33:50 -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
Jingyu Zhou 8e9aaa767e
Merge pull request #1860 from alexmiller-apple/comma-operator
Remove `operator , (vector<T>, T)` as an append operator.
2019-07-19 12:53:32 -07:00
Alex Miller 9f0a9da7c3 Remove `operator , (vector<T>, T)` as an append operator.
Because no one expects the comma overload.
2019-07-18 21:16:08 -07:00
mpilman 1ac2d01b03 Merge remote-tracking branch 'upstream/master' into flatbuffers-fixes2 2019-07-18 09:50:08 -07:00
A.J. Beamon d981de18e4 Restrict huge arena sampling to the network thread. Revert removal of thread_local definitions. 2019-07-17 16:23:17 -07:00
Alvin Moore b9e938972c
Merge pull request #1719 from mpilman/features/static-libc++
statically link libstdc++ on Linux and remove std::variant
2019-07-16 21:00:02 -07:00