Commit Graph

112 Commits

Author SHA1 Message Date
Alex Miller ea6898144d Merge remote-tracking branch 'upstream/master' into flowlock-api 2019-07-03 20:44:15 -07:00
Stephen Atherton 71ba490cf8 Removed use of the C "struct hack" as it is not valid C++. Replaced zero-length members with functions returning a pointer for arrays or a reference for single members. 2019-07-02 16:02:58 -07:00
Alex Miller 8e1ab6e7db Merge remote-tracking branch 'upstream/master' into flowlock-api 2019-06-28 17:32:54 -07:00
Stephen Atherton f1f1081202 Merge branch 'master' of github.com:apple/foundationdb into feature-redwood
# Conflicts:
#	fdbserver/VersionedBTree.actor.cpp
2019-06-24 20:17:49 -07:00
Stephen Atherton 112b0918c9 Refactored set() speed test to produce random sets of consecutive records with random prefixes that will often share common bytes. 2019-06-24 01:05:16 -07:00
Stephen Atherton d4b7f9b606 Fixed some cmake, compile, and IDE warnings. 2019-06-17 18:55:49 -07:00
Stephen Atherton 100789b354 More bug fixes in handling upperBound changes in modified pages and worst-case delta size calculation. Normalized some formatting in debug statements. Fixed compile error on linux. Updated test specs. 2019-06-05 20:58:47 -07:00
Stephen Atherton 6aad34620d Bug fix in upper boundary selection in commitSubtree(). More debug output. 2019-06-04 04:55:09 -07:00
Stephen Atherton 653440d54c Changes and bug fixes in how boundary keys are modified during clears in internal pages by rewriting how internal pages are modified, making edge cases much easier to handle. Several debug output improvements. Page numbers stored on disk are now big endian. 2019-06-04 04:03:52 -07:00
Stephen Atherton 9f064ad7cf Added back minimal btree internal page boundaries using RedwoodRecordRef. 2019-05-30 02:10:07 -07:00
Stephen Atherton 098ac46af9 RedwoodRecordRef::deltaSize() now calculates actual delta size instead of a conservative estimate. 2019-05-29 18:06:11 -07:00
Stephen Atherton 3e155a2563 Bug fixes. 2019-05-29 17:38:55 -07:00
Stephen Atherton cedcfcddd0 Bug fix in RedwoodRecordRef::Delta var int writer, new tests. 2019-05-29 16:47:53 -07:00
Stephen Atherton 1e5b9faa11 Bug fixes in RedwoodRecordRef::Delta. 2019-05-29 16:26:58 -07:00
Stephen Atherton 02882dbf00 Checkpointing progress, RedwoodRecordRef and DeltaTree tests pass but BTree test does not. RedwoodRecordRef::Delta rewritten to actually do prefix compression on key and integer fields. Added related unit tests and benchmarks. Some improvements to DeltaTree and requirements on its T and Delta types to avoid repeated common prefix discovery. 2019-05-29 06:23:32 -07:00
Stephen Atherton f99c36aad2 Fixed merge mistake. 2019-05-22 00:23:31 -07:00
Stephen Atherton ebc96a7e0e Merge branch 'master' of github.com:apple/foundationdb into feature-redwood
# Conflicts:
#	fdbserver/VersionedBTree.actor.cpp
2019-05-21 23:49:27 -07:00
Stephen Atherton e9197a8f70 Added time limit. 2019-05-21 22:19:14 -07:00
Stephen Atherton 3f8fce0296 Checkpointing progress on single-version mode in VersionedBTree. Subtree clears now work, preserving internal page boundary keys when necessary. Multi-version mode is unfortunately now broken, in addition to being incomplete. Added serial and simple btree unit test options. 2019-05-21 19:16:32 -07:00
A.J. Beamon 5f55f3f613 Replace g_random and g_nondeterministic_random with functions deterministicRandom() and nondeterministicRandom() that return thread_local random number generators. Delete g_debug_random and trace_random. Allow only deterministicRandom() to be seeded, and require it to be seeded from each thread on which it is used. 2019-05-10 14:01:52 -07:00
Austin Seipp bf378952cb fdbserver: fix some print/scan format warnings
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-06 13:35:29 -07:00
Stephen Atherton 2801298ae8 Checkpointing incomplete and correctness-breaking progress on adding single-version mode to VersionedBTree. 2019-04-29 17:00:29 -07:00
Andrew Noyes ef04471a66 Fix more unused-variable warnings 2019-04-17 16:04:10 -07:00
Andrew Noyes 13ba915a19 Fix more unused variable warnings 2019-04-17 15:38:08 -07:00
Andrew Noyes 6207d724f8 Fix all -Wunused-variable warnings 2019-04-15 18:13:00 -07:00
Jingyu Zhou f7f8ddd894 Fix warnings on unused variables
Found by -Wunused-variable flag.
2019-04-01 14:00:20 -07:00
Stephen Atherton 64554e90d4 Change this to THIS in actors for IDE compatibility. 2019-03-27 13:42:49 -07:00
Jingyu Zhou 7c02ee6fdd Fix compiler warning about unreferenced exception variable 2019-03-26 13:43:47 -07:00
Stephen Atherton 126252a274 Changed checksum to crc32. Disabled pager housekeeping for now. Added more btree read/write/commit metrics. Changed readPage to use disk read priority. Bug fix in CommitSubtree causing it to recurse to children unnecessarily. Added point read speed test at the end of set performance unit test. 2019-03-15 00:46:09 -07:00
Stephen Atherton 767de5aa4d Redwood unit test improvements. Correctness errors now cause test to terminate earlier, and errors occurring after final commit are no longer ignored. Fixed bug in reverse iterator movement in Cursor. Several debug output improvements. 2019-02-24 03:47:32 -08:00
Stephen Atherton 6660ccd936 Large rewrite/refactor from the page format outward. Replaced the in-page format, PrefixTree, with more general and templated implementation of the same concept, DeltaTree, which will be incrementally modifiable soon. New implementation for in-page cursors to use a per-page arena and share decoded binary tree nodes between cursors in the same page. New implementation for internal record B+Tree cursor which uses reference counted path hops which makes cloning a cursor very cheap. New implementation of external facing B+Tree cursor which makes efficient use of two internal cursors to find user-visible KV pairs and return them without copying keys and values except in the case of a large sharded value. 2019-02-21 02:46:30 -08:00
mpilman 7730e161ae Changed this-ACTOR references to THIS 2019-02-19 15:16:59 -08:00
mpilman 4be90c91d6 Moved THIS and THIS_ADDR to actorcompiler.h 2019-02-19 15:16:59 -08:00
mpilman 3a0f9839b9 Fix minor IDE build errors 2019-02-19 15:16:59 -08:00
Andrew Noyes 067a445e06 Replace unused _ variables with wait(success(...)) 2019-02-12 17:30:30 -08:00
Alex Miller b4b7f382a7 Fix issues that a newer compiler warned about. 2018-12-14 14:43:50 -08:00
Stephen Atherton 534e50de71 Added counters for page writes, sets, and commits. 2018-12-05 22:41:04 -08:00
Stephen Atherton b08497b7ea Bug fix, at least some users of IKeyValueStore expect the read actors to make their own copies of key arguments. 2018-10-25 19:48:31 -07:00
Stephen Atherton f17cc1e20f StorageServer will no longer send io_error or other inappropriate errors to a client (this would never happen on SQLite). Many bug fixes around error handling, initialization, and shutdown in Redwood. StorageServer now calls init() on its underlying storage engine. 2018-10-24 15:57:06 -07:00
Alex Miller 6bb1f4093d
Merge pull request #856 from dropbox/pr/include-fix
Adjust all includes to be relative to the root.
2018-10-22 09:51:55 -07:00
Evan Tschannen 1ef29cbf0d more windows build fixes 2018-10-19 17:00:24 -07:00
Robert Escriva 268093a96d Adjust all includes to be relative to the root.
Remove the use of relative paths.  A header at foo/bar.h could be included by
files under foo/ with "bar.h", but would be included everywhere else as
"foo/bar.h".  Adjust so that every include references such a header with the
latter form.

Signed-off-by: Robert Escriva <rescriva@dropbox.com>
2018-10-19 17:35:33 +00:00
Evan Tschannen 8dd900a337 fixed the windows build 2018-10-18 20:26:45 -07:00
Stephen Atherton 5bc45958d8 Finished VersionedBTree's IClosable implementation. Added deletion of existing unit test pager state. 2018-10-15 03:43:43 -07:00
Stephen Atherton 3c36722ef8 Renamed redwood test cases to match references in test spec files. 2018-10-05 22:13:22 -07:00
Stephen Atherton 3ea9193fa7 Renamed redwood to redwood-experimental. UnitTest names can now be hidden using # as the first character so that random correctness tests will not run them. Excluded redwood tests from correctness testing. Reverted default storage engine to ssd. 2018-10-05 14:43:54 -07:00
Stephen Atherton 5d9cd9acdc Correctness test now has additional random reader which doesn't do verification but isn't stopped when the btree is closed. Fixed bug exposed by this where pager snapshots will still try to read pages after the pager has been shut down or even destroyed. Added new error type, shutdown_in_progress. 2018-10-04 23:46:37 -07:00
Stephen Atherton 15c1f87681 Rewrite superpage writes to fix bugs involving logical ID reuse and to make the logic cleaner. Correctness test is stronger, with pipelined writes/commits during verification. 2018-10-01 16:51:57 -07:00
Stephen Atherton a9f467c502 Btree correctness verification of contents is now asynchronous. 2018-09-28 00:35:03 -07:00
Stephen Atherton 5c3a93e41f Bug fixes involving PrefixTree length encodings and page size limits, correctness test improvements such as better key size selection and random key reuse, reduced memory footprint of control set. 2018-09-27 16:07:29 -07:00