Commit Graph

4809 Commits

Author SHA1 Message Date
mpilman 1c6c73af6d Fixed infinite recursion 2019-04-05 13:12:19 -07:00
mpilman c6bc23791d Fixed format error in microbench 2019-04-05 13:12:19 -07:00
mpilman 39ecbedd74 Fixed compilation errors on OS X & gcc8 2019-04-05 13:12:19 -07:00
mpilman 1c16f87a4e Remove trace-calls to printable (in non-workloads) 2019-04-05 13:12:19 -07:00
mpilman ea67b742c7 Implemented Traceable for printable types 2019-04-05 13:12:19 -07:00
mpilman c9ee7f54e7 Add compound type to micro-benchmark 2019-04-05 13:12:19 -07:00
mpilman 8120a33bda Fix `>`-direction when initializing TraceEvent 2019-04-05 13:12:19 -07:00
mpilman 32a3aea8bb Make strings random in tracing micro-benchmark 2019-04-05 13:12:19 -07:00
mpilman bb82f8560a process all volatile ints correctly in traces 2019-04-05 13:12:19 -07:00
mpilman 9938a49c1e make primitive test longer 2019-04-05 13:12:19 -07:00
mpilman 8af0f15a43 primitive performance test for TraceEvent 2019-04-05 13:12:19 -07:00
mpilman 02e3b634fb Compile sqlite with NDEBUG so we can debug 2019-04-05 13:12:19 -07:00
mpilman ae84f5424a Fix potential segfault when init changes enabled 2019-04-05 13:12:19 -07:00
mpilman c008e16c81 Defer formatting in traces to make them cheaper
This is the first part of making `TraceEvent` cheaper. The main idea is
to defer calls to any code that formats string. These are the main
changes:

- TraceEvent::detail now takes a c-string instead of std::string for
  literals. This prevents unnecessary allocations if the trace is not
  going to be printed in the first place (for example for SevDebug).
  Before that `detail` expected a `std::string` as key, which mean that
  any string literal would be copied on each call.
- Templates Traceable and SpecialTraceMetricType. These templates can be
  specialized for any type that needs to be printed. The actual
  formatting will be deferred to after the `enabled` check. This
  provides two benefits: (1) if a TraceEvent is disabled, we don't pay
  for the formatting and (2) TraceEvent can trace types that it doesn't
  know about.
- TraceEvent::enabled will be set in the constructor if the Severity is
  passed. This will make sure that `TraceEvent::init` is not called.
- `TraceEvent::detail` will be inlined. So for disabled TraceEvent
  calls, a call to detail will only introduce a if-branch which is much
  cheaper than a function call.
2019-04-05 13:12:19 -07:00
Jingyu Zhou acf60c5e9a
Merge pull request #1414 from jzhou77/pprof
Add manually triggered heap profiling
2019-04-04 22:27:33 -07:00
Jingyu Zhou 5be592632b Change trace event message
If heap profiler is not running, we can't take a snapshot of the profile.
2019-04-04 15:29:50 -07:00
Jingyu Zhou f538df5e6c Add TraceEvent if unable to invoke heap profiler 2019-04-04 15:26:41 -07:00
Alex Miller 8f49be480b
Update fdbserver/worker.actor.cpp
Co-Authored-By: jzhou77 <jingyuzhou@gmail.com>
2019-04-04 13:32:10 -07:00
Jingyu Zhou eaaf58ee34 Refactor profiler into cpu and heap profilers 2019-04-03 20:54:30 -07:00
Alex Miller 433060ef95
Update fdbclient/ClientWorkerInterface.h
Co-Authored-By: jzhou77 <jingyuzhou@gmail.com>
2019-04-03 20:05:19 -07:00
Alex Miller ee7822f032
Merge pull request #1412 from atn34/fix-sandbox-port
Fix port to match sandbox foundationdb.conf
2019-04-03 19:29:51 -07:00
Jingyu Zhou 3371cf22d4 Add manually triggered heap profiling
At client side:
fdb> profile
ERROR: Usage: profile <client|list|flow|heap>
fdb> profile heap 127.0.0.1:4500

On the server side:
$ HEAPPROFILE=/tmp/fdbserver bin/fdbserver -C ../test.cluster -p 127.0.0.1:4500
Starting tracking the heap
FDBD joined cluster.
Dumping heap profile to /tmp/fdbserver.0001.heap (1024 MB allocated cumulatively, 13 MB currently in use)
Dumping heap profile to /tmp/fdbserver.0002.heap (User triggered heap dump)
2019-04-03 16:00:54 -07:00
Alex Miller ee571ac2d8
Merge pull request #1386 from mpilman/features/client-simulator
Implemented JavaWorkload
2019-04-03 14:46:30 -07:00
Andrew Noyes 638978d9bb Fix comment 2019-04-03 13:52:00 -07:00
Andrew Noyes 021224c44d Fix port to match sandbox foundationdb.conf 2019-04-03 13:49:44 -07:00
Markus Pilman 101a05ae77
Merge branch 'master' into features/client-simulator 2019-04-03 10:03:56 -08:00
Jingyu Zhou fc59587b3c
Merge pull request #1393 from jzhou77/pprof
Gperftools Profiling fix.
2019-04-03 10:35:31 -07:00
Evan Tschannen 375955f0f4
Merge pull request #1409 from etschannen/master
Merge 6.1 into master (updated versions.target)
2019-04-02 22:38:28 -07:00
Evan Tschannen 44c3072629 updated versions.target and release notes 2019-04-02 22:36:55 -07:00
Evan Tschannen 39c595223b Merge branch 'release-6.1' 2019-04-02 22:30:02 -07:00
Evan Tschannen dcbfb02a87
Merge pull request #1408 from etschannen/post-release-cleanup-6.1.0
Post release cleanup 6.1.0
2019-04-02 22:27:23 -07:00
Evan Tschannen 4514043dab update installer WIX GUID following release 2019-04-02 22:26:26 -07:00
Evan Tschannen 1963b93bf3 update versions target to 6.1.1 2019-04-02 22:26:26 -07:00
Jingyu Zhou bb775eaf45 Only add compiler flags of gperftools for gcc 2019-04-02 19:58:21 -07:00
Evan Tschannen f5b1015f70
Merge pull request #1407 from etschannen/prepare-release-6.1.0
update installer WIX GUID following release
2019-04-02 18:44:30 -07:00
Evan Tschannen 56356814f9 update installer WIX GUID following release 2019-04-02 18:41:52 -07:00
Evan Tschannen e5606589bb
Merge pull request #1405 from etschannen/release-6.1
Update documentation and protocol version for release 6.1.0
2019-04-02 18:40:16 -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 41de0191b3
Merge pull request #1382 from cdonati/python-pack-versionstamp
Fix Versionstamp encoding issue for Value objects
2019-04-02 18:17:18 -07:00
Evan Tschannen 30133a30e0
Merge pull request #1403 from etschannen/release-6.1
Ported a bug fix to the 6.0 log system, and updated documentation
2019-04-02 17:56:18 -07:00
Evan Tschannen 6223b0b94d
Merge pull request #1397 from etschannen/feature-maintenance-zone
Added the ability to mark a zoneId for maintenance
2019-04-02 17:55:34 -07:00
Jingyu Zhou 56a1128a9b Enhance cmake's gperftools support
Add compiler flags and link flags for gperftools.
2019-04-02 17:34:29 -07:00
mpilman 30500d5a61 Added docs for building with JavaWorkload 2019-04-02 17:26:35 -07:00
mpilman 160949d071 Remove unnecessary function 2019-04-02 16:28:34 -07:00
mpilman d38efac7f8 minor code cleanup 2019-04-02 16:23:36 -07:00
Evan Tschannen 31ed73d9f5 Ported the bug fix https://github.com/apple/foundationdb/pull/1379 to OldTLogServer_6_0 2019-04-02 15:27:37 -07:00
Evan Tschannen 4d6334eb90 removed a known limitation about force_recovery_with_data_loss 2019-04-02 15:23:55 -07:00
Evan Tschannen 6881a8fc69 Added more release notes for 6.1.0 2019-04-02 15:19:44 -07:00
Alvin Moore b3450af8a7
Merge pull request #1338 from mpilman/features/stripped-binaries
Strip debug symbols with `make packages`
2019-04-02 15:03:37 -07:00
Evan Tschannen 1d4a6ab551 cleaned up status to keep the healthyZone read separated from relicaFutures 2019-04-02 14:46:56 -07:00