-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/containers pt2 btree #21
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Build: - added PCH usage - updated dependencies.
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
September 27, 2024 22:26
c0fa2d7
to
9803817
Compare
… overloads for parent_nodes. Fixes for various compilation warnings and errors. Minor cleanups.
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
September 27, 2024 23:27
9803817
to
7924f16
Compare
Added more sanity checks. Minor cleanups.
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
September 28, 2024 11:35
25e9764
to
dc410d8
Compare
…dren counts (and how it relates to node splitting and merging).
… semantics). Fixed a bug in bptree_base::free(). Minor other stylistic changes.
- all node types at all levels form horizontal/breadth doubly linked lists - precise in-parent-position for child nodes is tracked (simplifying other code and eliminating the need for binary searches in a couple of places). Added testing for pure in-memory operation. Various related refactoring, cleanups ando optimizations.
Linux: fixed compiler warnings and linker errors.
…ar search might be faster than binary search. Moved more shared/duplicated logic up into find_nodes_for().
…pecified comparator).
… (quick-fix for sporadic failures on an 8GB Win11 machine).
…e readable while debugging).
Improved the iterators implementation: - support decrementable end iterators - optimized decrement operators. Fixed public bptree::find() not to crash on empty bptrees. Fixed bptree_base::reserve() to take into account existing capacity/free nodes. Expanded the unit test. Minor other related cleanups.
Decreased test data size (to avoid timeouts on GitHub).
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
October 11, 2024 13:21
59ba2bb
to
c6b3134
Compare
…mous mappings that cannot be done in-place. Linux: disabled/excluded the POSIX fallback in-case-mremap-fails (relying solely on mremap now).
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
October 13, 2024 20:47
5848cbe
to
fae4dd5
Compare
…sion (with relocation) does not destroy the preexisting contents.
…() (now that there is no fallback for mremap we have to add explicit handling of initial mapping with an explicit/special-cased mmap call).
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
October 13, 2024 22:18
fae4dd5
to
cca72fc
Compare
Fixed a (node) leak in the bulk version of insert(). Fixed logic in insert (and the new merge) for maintaining the minimum-number-of-children-per-node rule (at the beginning and end of the bulk_append phase). Changed unlink_node() to also free the node.
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
October 17, 2024 12:29
e366c26
to
cb21b2b
Compare
… a std compliant interface).
…tomatic optimal ABI). Support for bulk insert from non-contiguous containers. Added the find_next() helper function to speedup bulk operations (and in the future enable hinted-insertion like operations). Added lower_bound() method. Separate reserve and reserve_additional methods. Minor work on supporting non-trivial types.
Added hinted insert(). Minor related cleanups and refactoring.
…generate CMake cache/refetch std_fix).
Added the get_contiguous_span_and_move_to_next_node() 'extended' member function to iterators to ease implementing efficient algorithms w/o further breaking encapsulation.
…st end 'pointers'. Moved more leaf node deallocation bits up into base classes. Fixed end() to work with empty containers. Fixed bptree_base_wkey::erase() handling one more edge case when deleting a value at the end of a leaf. Fixed erase( iterator ) to update separator keys.
Various minor stylistic cleanups.
psiha
force-pushed
the
feature/containers_pt2_btree
branch
4 times, most recently
from
October 26, 2024 17:26
8f59ba5
to
c1d396c
Compare
Using (faster) pdqsort from Boost.Move for bulk inserts. Using automatic minimal-size deduction for node_size_type. Optimized the core find() function. Various fixes around the pass_in_reg machinery. Made use_linear_search_for_sorted_array actually user specializable by converting it into a variable. Switched to using a smaller node size (with a brief comment). Fixed bulk_insert_prepare() for empty input. Fixed bulk_insert_into_empty() handling of short input sequences. Fixed node_count_required_for_values() logic. Fixed handling of an edge case in the bulk insert helper merge() function. Added basic benchmarking.
psiha
force-pushed
the
feature/containers_pt2_btree
branch
from
October 26, 2024 17:39
c1d396c
to
9f5f994
Compare
Fixed an edge case handling in lower_bound_impl(). Fixed hinted insert to handle the edge case requiring separator key update.
Added more documentation links. Minor debug build bug fixes.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.