Commit Graph

130 Commits

Author SHA1 Message Date
Dan Adkins f99277f45c DiskQueue: use explicitly sized int32_t instead of int in on-disk format.
It was assumed that the payloadSize field in the page header was 32 bits.
This was checked by a static_assert on the size of the PageHeader struct.

This change makes that field size explicit, rather than assuming that
sizeof(int) == sizeof(int32_t).
2022-11-02 13:49:58 -07:00
Steve Atherton d12bb31233 File write() buffer lifetime fix in DiskQueue.
Both push() and pushAndCommit() now require reference-counted pageData and file->write() is wrapped in uncancellable(holdWhile(pageData, ..)).  To support this with no additional overhead, StringBuffer returns a Standalone reference to its contents.
2022-10-31 22:06:48 -07:00
Steve Atherton f4e8854e8c
Merge pull request #8517 from sfc-gh-etschannen/feature-disk-queue-perf
added a disk queue load generator
2022-10-28 14:15:55 -07:00
Evan Tschannen 51e2f8e74b made the test clean up after itself 2022-10-28 09:26:48 -07:00
Steve Atherton 6b55d8ff01 Merge commit 'f2c1cd6792b45f04968d3c3d335723430be2e6a9' into redwood-page-lifetimes 2022-10-23 01:45:53 -07:00
Steve Atherton f2c1cd6792 Bug fix: If a disk queue reader drops its future memory corruption could occur so the actor is made uncancellable and the TrackMe member will keep the disk queue alive until it finishes. 2022-10-23 01:45:04 -07:00
Steve Atherton 6e1073a6da Fix bugs with file IO buffer lifetimes in DiskQueue by changing waitForAll() to waitForAllReadyThenThrow() so that if one operation errors the buffers used by the others will not be destroyed. 2022-10-23 01:38:50 -07:00
Evan Tschannen a452e1899b added a disk queue load generator 2022-10-20 12:39:34 -07:00
A.J. Beamon 4fd64630e8 Convert literal string ref instances to use _sr suffix 2022-09-19 11:35:58 -07:00
Markus Pilman 1de37afd52
Make TEST macros C++ only (#7558)
* proof of concept

* use code-probe instead of test

* code probe working on gcc

* code probe implemented

* renamed TestProbe to CodeProbe

* fixed refactoring typo

* support filtered output

* print probes at end of simulation

* fix missed probes print

* fix deduplication

* Fix refactoring issues

* revert bad refactor

* make sure file paths are relative

* fix more wrong refactor changes
2022-07-19 13:15:51 -07:00
Markus Pilman 03d913a1de Flow compiling 2022-06-27 17:05:55 -06:00
Markus Pilman ffaf15c12a moved wellknownendpoints and fixed some includes 2022-06-23 17:03:53 -06:00
sfc-gh-tclinkenbeard a71099471b Update copyright header dates 2022-03-21 13:36:23 -07:00
sfc-gh-tclinkenbeard 62f547ff6e Add line before actorcompiler.h include (to prevent IDE from reordering includes) 2022-03-16 14:15:48 -07:00
sfc-gh-tclinkenbeard 66d71e107d Move actorcompiler.h include to the end of includes 2022-03-16 00:09:16 -07:00
A.J. Beamon 250a88e682 Enforce that trace event suppression calls happen first when using trace event call chaining. Fix various instances where we weren't following this requirement. 2022-02-24 12:25:52 -08:00
Yi Wu 8c92c330c3 fix hash size 2022-02-07 13:32:52 -08:00
Yi Wu 0bd4618b79 minor fix 2022-02-07 13:32:52 -08:00
Yi Wu cda68a0e4d Support xxhash3 for checksuming DiskQueue for TLogs 2022-02-07 13:32:52 -08:00
Andrew Noyes fd33d31ff5 Enable -Wdelete-non-virtual-dtor for clang build
We had been disabling -Wdelete-non-virtual-dtor, because this seems to be done intentionally in the generated code of the actor compiler. I spent some time trying to rewrite it in a way that doesn't literally delete/destroy through a pointer to a base class without a virtual destructor, but I was unable to come up with something that passes correctness. My best guess is that we do this so that we can destroy actor state classes, call callbacks registered on the actor SAV, and then destroy the SAV.

Anyway now we'll detect new usages of deleting through a pointer to a base class without a virtual destructor.
2021-12-20 16:19:31 -08:00
sfc-gh-tclinkenbeard 9e06b6e6e3 Make IClosable interface const-correct 2021-10-18 13:40:47 -07:00
Xiaoge Su abf73047ca Enforce std:: specifier rather than using namespace 2021-09-16 19:40:28 -07:00
sfc-gh-tclinkenbeard 3442ebd3b7 Fix more -Wreorder-ctor warnings across many files 2021-07-24 11:20:51 -07:00
sfc-gh-tclinkenbeard 382533c4e1 Add FDB_ prefix to BOOLEAN_PARAM macros 2021-07-09 05:42:14 -07:00
sfc-gh-tclinkenbeard 8cc40e3a2b Expand use of BOOLEAN_PARAM 2021-07-02 21:41:50 -07:00
Evan Tschannen fcb8bd6475
Revert "Make the sim2 run loop match the behavior of the net2 run loop." 2021-06-22 14:50:01 -07:00
Evan Tschannen f57f0d64f4 Merge branch 'master' into feature-sim-time-batching
# Conflicts:
#	fdbserver/DataDistribution.actor.cpp
2021-05-20 09:09:35 -07:00
Steve Atherton 7567fca3cf Changed knob to int64_t from int as its default value overflows. 2021-04-13 22:05:06 -07:00
A.J. Beamon feede1d2f6 Fix line length of test macro + comments to be within the 120 character limit 2021-04-13 10:48:52 -07:00
Evan Tschannen 5b0c7bb789 fixed broken test macros 2021-03-19 13:22:45 -07:00
Evan Tschannen e1ebe2f487 clang-format 2021-03-19 13:17:39 -07:00
Evan Tschannen d7491a8f30 removed logging 2021-03-19 13:08:22 -07:00
Evan Tschannen a6e30cf821 more truncate logging 2021-03-18 23:19:13 -07:00
Evan Tschannen 06039d6e30 log file sizes 2021-03-18 22:42:39 -07:00
Evan Tschannen 36803d8013 more logging 2021-03-18 22:21:37 -07:00
Evan Tschannen de9295042e log more page sequences 2021-03-18 21:57:23 -07:00
Evan Tschannen 2de515f703 logging fix 2021-03-18 21:35:56 -07:00
Evan Tschannen 67b9e49d99 more logging 2021-03-18 21:34:04 -07:00
Evan Tschannen f81e5142cb get tracing to compile 2021-03-18 20:27:47 -07:00
Evan Tschannen ad462478de fix trace 2021-03-18 20:22:38 -07:00
Evan Tschannen 695a5efdb5 another trace 2021-03-18 20:21:20 -07:00
Evan Tschannen 34782b0fe2 another wrong trace 2021-03-18 20:07:18 -07:00
Evan Tschannen 797cfaf1e5 more logging fixes 2021-03-18 19:23:30 -07:00
Evan Tschannen 9909b811ff disable broken logging 2021-03-18 19:21:50 -07:00
Evan Tschannen 055cda4c1f enable all diskqueue logging 2021-03-18 19:20:27 -07:00
Evan Tschannen cc66466ef3 more logging 2021-03-18 18:50:18 -07:00
Vishesh Yadav d7252da951 clang-format: Fix the TEST() macros which require comments in line 2021-03-10 16:50:53 -08:00
FDB Formatster df90cc89de apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
Andrew Noyes 79cec09255 Apply clang-tidy's performance-inefficient-vector-operation fix
I ran this command in my build directory after compiling with
OPEN_FOR_IDE. It took a few small tweaks to get it to compile, which is
outside the scope of this commit.

    $ python run-clang-tidy.py -j $(nproc) -checks='-*,performance-inefficient-vector-operation' -fix
2021-03-04 03:58:25 +00:00
Andrew Noyes 4ee97c0784 Use clang-tidy to automatically fix missing overrides
Use `clang-tidy -p . $file -checks='-*,modernize-use-override' -header-filter='.*' -fix`
to fix missing overrides, and then use git clang-format to reformat just
those changes. This went pretty well for most files.

Formatting the following files went off the rails, so I'm going to
follow up with a commit that's just clang-tidy and no clang-format.

- fdbclient/DatabaseBackupAgent.actor.cpp
- fdbclient/FileBackupAgent.actor.cpp
- fdbserver/OldTLogServer_4_6.actor.cpp
- fdbmonitor/SimpleIni.h
- fdbserver/workloads/ClientTransactionProfileCorrectness.actor.cpp
2021-01-26 02:04:12 +00:00