535 Commits

Author SHA1 Message Date
Evan Tschannen
aefd68e1e7 The memory tracking trace events can crash if the memory that is being allocated is coming from a trace event itself. Specifically TDMetrics within trace events uses fast allocated memory. Trace events are supposed to be short lived, so this commits adds a global count of outstanding trace events, and disables memory tracking when a trace event exists. 2019-05-06 17:41:32 -07:00
Evan Tschannen
4fa1c008f9 Highly prioritize storageServerRejoin messages on the proxy, so that storage servers can rejoin the cluster even when a proxy is CPU saturated 2019-04-23 20:56:01 -07:00
Alex Miller
c25fac9421 Lower the priority of spilled peeks to below that of spilling.
This prevents peeking from starving the TLog of CPU time to spill, and
thus impacting write throughput at prolonged saturation.
2019-04-22 18:39:21 -07:00
Evan Tschannen
8e05713a5d do not log a SevError trace event if we cannot deserialize the connect packet 2019-04-10 17:41:02 -07:00
Evan Tschannen
05869a8383 do not log a degraded reset message if the previous reset was more than a week ago 2019-04-07 23:00:58 -07:00
Evan Tschannen
19d9b8fcd8 don’t log MachineLoadDetails from getSystemStatistics() 2019-04-07 22:55:19 -07:00
Evan Tschannen
390ab9cfed A process will mark itself as degraded if it continually disconnects from a different process which the failure monitor thinks is healthy 2019-04-04 14:11:12 -07:00
Evan Tschannen
985e1de467 Update documentation and protocol version for release 6.1.0 2019-04-02 18:39:24 -07:00
Evan Tschannen
d670b74d69 prevent trace event spam by combining huge arena samples 2019-03-30 13:36:13 -07:00
Evan Tschannen
aa368c08a2 changed NetworkAddress hash function to use more bytes from the IP address 2019-03-28 17:47:13 -07:00
Evan Tschannen
80ecb12190 change the IPv6 hash function to be more efficient 2019-03-28 14:07:46 -07:00
Evan Tschannen
b6008558d3 renamed BinaryWriter.toStringRef() to .toValue(), because the function now returns a Standalone<StringRef>()
eliminated an unnecessary copy from the proxy commit path
eliminated an unnecessary copy from buffered peek cursor
2019-03-28 11:52:50 -07:00
Evan Tschannen
34b9d5e722
Merge pull request #1364 from etschannen/feature-fast-serialize
A few performance optimizations
2019-03-27 20:57:25 -07:00
Evan Tschannen
6997075917 changed back to isV6addr instead of isV4addr for compatibility 2019-03-27 19:55:36 -07:00
Evan Tschannen
2fbecac10f fix: allocation strategy did not take into account the data used by the ArenaBlock 2019-03-27 19:54:58 -07:00
Evan Tschannen
e5a80f2c94 optimized IPaddress 2019-03-27 18:21:13 -07:00
A.J. Beamon
71e2fdafb8 Changes to ratekeeper camel case 2019-03-27 08:24:25 -07:00
Evan Tschannen
9e8237955f BinaryWriter uses arena allocation 2019-03-26 17:27:33 -07:00
Evan Tschannen
ea38b78768 BinaryWriter uses fastAllocator 2019-03-26 12:06:39 -07:00
Evan Tschannen
5e03e178de
Merge pull request #1345 from ajbeamon/support-multiple-client-or-worker-issues
Add support for a client or worker having multiple issues.
2019-03-24 17:27:50 -07:00
Alec Grieser
0ad351751a
fix build failure on Windows from undefined constant and mising parenthesis 2019-03-24 14:03:24 -04:00
Evan Tschannen
24c92a1870
Merge pull request #1352 from etschannen/feature-network-address-list
Changed NetworkAddressList to at most two addresses for performance
2019-03-24 10:22:38 -07:00
Evan Tschannen
1fc6937802 changed NetworkAddressList to at most two addresses for performance 2019-03-23 17:54:46 -07:00
Steve Atherton
09f37cf3d2
Merge pull request #533 from ajbeamon/fix-parent-directory
Fixes to parentDirectory() and abspath()
2019-03-22 23:53:46 -07:00
Andrew Noyes
eacde47050 Disable setMemoryQuota for ASAN 2019-03-22 18:47:38 -07:00
Stephen Atherton
382a7bdc5f Changed behavior regarding ~ and ~user paths to treat them as unresolvable symbolic links. 2019-03-22 16:21:12 -07:00
Stephen Atherton
524a666290 Added back previous handling of ~ in paths, with the improvement that it only treats ~ as special if it is the first character. 2019-03-22 11:44:46 -07:00
A.J. Beamon
4eb5715689 Add support for a client or worker having multiple issues. 2019-03-22 08:29:41 -07:00
Stephen Atherton
c6d96498ca parentDirectory() is now based on popPath(). Bug fix, abspath() would prepend current working directory even when not resolving symlinks. Added more unit tests. Ported path operation unit tests to fdbmonitor() since the path manipulation function implementations are significantly different. Clarified some comments. The flow project version of abspath() does not allow resolveLinks to be false, for now, because behavior of this on Windows is not well thought out or tested. 2019-03-21 16:56:36 -07:00
Stephen Atherton
bec6f0a37a Added flags to absPath() and parentDirectory() for whether or not symbolic links should be resolved when possible and whether the final resolved path must actually exist on the filesystem. Updated tests, added more cases. 2019-03-20 22:52:47 -07:00
Alec Grieser
436c9319ff
Merge pull request #1333 from vishesh/scratch
fix: Use '_' instead of ':' in IPv6 tracefile names
2019-03-20 17:00:43 -06:00
Vishesh Yadav
c37291a366 fix: Use '_' instead of ':' in IPv6 tracefile names
':' is not acceptable on Windows. Reason to choose '_' instead of '.'
is to differentiate b/w IPv4 and IPv6 easily, and also '..1' in
filename looks weirder than '__1', which would happen with shortened
IPv6 addresses. And non-shortened IPv6 addreses are just lots of 0s.
2019-03-20 14:00:33 -07:00
Evan Tschannen
f73aad863b adding missing logging for 8192 fast allocators 2019-03-20 13:48:45 -07:00
Evan Tschannen
70ac5ffda0 added random logging for huge arenas 2019-03-20 11:20:47 -07:00
Evan Tschannen
c33428b705 do not fail atomicReplace if the files does not exist 2019-03-19 13:38:30 -07:00
A.J. Beamon
10a30fed42
Merge pull request #1316 from senthil-ram/atomicreplace
atomicReplace to preserve owner & permission info
2019-03-19 08:21:35 -07:00
Evan Tschannen
ddf8e86730
Merge pull request #1275 from alexmiller-apple/tstlog9
Spill-By-Reference TLog Part 5: TLogs That Can Spill Large Amounts Of Data
2019-03-18 17:58:21 -07:00
A.J. Beamon
33a211c834
Merge pull request #1315 from etschannen/feature-memory-logging
Occasionally log a backtrace when the fast allocators allocates a new magazine
2019-03-18 16:05:20 -07:00
sramamoorthy
fe18596c01 Add a comment about ReplaceFile API 2019-03-18 15:24:08 -07:00
Evan Tschannen
c8122edb6b avoid relying on 128<<10 in knobs.cpp 2019-03-18 12:40:15 -07:00
A.J. Beamon
7711542b55
Update flow/FastAlloc.cpp
Co-Authored-By: etschannen <36455792+etschannen@users.noreply.github.com>
2019-03-18 12:34:46 -07:00
sramamoorthy
c0094830c3 addressing minor format related comments 2019-03-18 11:59:51 -07:00
sramamoorthy
51a655d9c7 atomicReplace to preserve owner & permission info
atomicReplace currently does not preserve the
ownership and permission info, this fix will
preserves the ownership and permission info - it
fails the call if it is not able to do so.
2019-03-18 00:18:05 -07:00
Evan Tschannen
fa5d929106 switch to g_nondeterministic_random to make simulation deterministic 2019-03-17 22:48:43 -07:00
Evan Tschannen
d2eb7578fd Occasionally log a backtrace when the fast allocators allocates a new magazine to help track down memory leaks 2019-03-17 21:59:56 -07:00
Stephen Atherton
9a4fc25de5 ParentDirectory() in Platform,h no longer uses absPath() so it does not resolve symbolic links, making it suitable for use in fdbmonitor. CleanPath() will return "." instead of empty string to mean a relative path that refers to the current directory. Updated tests, and added new tests for ".". 2019-03-17 15:58:04 -07:00
Stephen Atherton
f88e53e640 Merge branch 'master' of https://github.com/apple/foundationdb into fix-parent-directory 2019-03-16 00:13:09 -07:00
Stephen Atherton
98a295a803 Changed parentDirectory() trace events back to SevError outside of simulation, did the same for cleanPath(). 2019-03-16 00:07:38 -07:00
Stephen Atherton
2efb6f4c0d Added cleanPath() which puts a path in a canonical form without .., ., or duplicate separators without using the filesystem or resolving symbolic links. absPath() redefined to use cleanPath() so it will return the same result for a path without symbolic links regardless of whether or not the path actually exists. Redefined parentDirectory() to use absPath() and error on certain inputs. Added comments describing behavior of these functions, and added a unit test which verbosely tests many inputs to them. 2019-03-15 23:54:33 -07:00
Stephen Atherton
471ac206a3 Add new boost preprocessor definitions to windows build in release mode, still just for flow project to see if it's sufficient. 2019-03-15 21:03:03 -07:00