From eb8dbaa770a57557d67c817c2839c64f536a6ce4 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 13 Sep 2023 16:22:03 -0400 Subject: Began re-architecting the project for concurrency support The project is now in a state where it builds, but it probably has a lot of bugs still. --- tests/internal_level_tests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index 9deb485..b0dfacb 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -37,11 +37,11 @@ START_TEST(t_memlevel_merge) ck_assert_int_eq(merging_level->get_record_count(), 100); auto old_level = base_level; - base_level = ILevel::merge_levels(old_level, merging_level); + auto new_level = ILevel::merge_levels(old_level, merging_level); delete old_level; delete merging_level; - ck_assert_int_eq(base_level->get_record_count(), 200); + ck_assert_int_eq(new_level->get_record_count(), 200); delete base_level; delete tbl1; -- cgit v1.2.3 From 7f56949bc847b56da69c9eb3ebe081d6cf9f61c6 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 18 Sep 2023 12:25:01 -0400 Subject: General bugfixes --- tests/internal_level_tests.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index b0dfacb..58369ff 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -36,10 +36,8 @@ START_TEST(t_memlevel_merge) merging_level->append_buffer(tbl2); ck_assert_int_eq(merging_level->get_record_count(), 100); - auto old_level = base_level; - auto new_level = ILevel::merge_levels(old_level, merging_level); + auto new_level = ILevel::merge_levels(base_level, merging_level); - delete old_level; delete merging_level; ck_assert_int_eq(new_level->get_record_count(), 200); -- cgit v1.2.3 From 7c03d771475421c1d5a2bbc135242536af1a371c Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 25 Sep 2023 10:49:36 -0400 Subject: Re-structuring Project + scheduling updates This is a big one--probably should have split it apart, but I'm feeling lazy this morning. * Organized the mess of header files in include/framework by splitting them out into their own subdirectories, and renaming a few files to remove redundancies introduced by the directory structure. * Introduced a new framework/ShardRequirements.h header file for simpler shard development. This header simply contains the necessary includes from framework/* for creating shard files. This should help to remove structural dependencies from the framework file structure and shards, as well as centralizing the necessary framework files to make shard development easier. * Created a (currently dummy) SchedulerInterface, and make the scheduler implementation a template parameter of the dynamic extension for easier testing of various scheduling policies. There's still more work to be done to fully integrate the scheduler (queries, multiple buffers), but some more of the necessary framework code for this has been added as well. * Adjusted the Task interface setup for the scheduler. The task structures have been removed from ExtensionStructure and placed in their own header file. Additionally, I started experimenting with using std::variant, as opposed to inheritence, to implement subtype polymorphism on the Merge and Query tasks. The scheduler now has a general task queue that contains both, and std::variant, std::visit, and std::get are used to manipulate them without virtual functions. * Removed Alex.h, as it can't build anyway. There's a branch out there containing the Alex implementation stripped of the C++20 stuff. So there's no need to keep it here. --- tests/internal_level_tests.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index 58369ff..056e458 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -10,10 +10,10 @@ * */ #include "shard/WIRS.h" -#include "framework/InternalLevel.h" -#include "framework/RecordInterface.h" -#include "framework/QueryInterface.h" -#include "framework/ShardInterface.h" +#include "framework/structure/InternalLevel.h" +#include "framework/interface/Record.h" +#include "framework/interface/Query.h" +#include "framework/interface/Shard.h" #include "testing.h" -- cgit v1.2.3 From cc415c7c100a17c4e944915aeab01be99b14adb9 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 7 Nov 2023 13:36:11 -0500 Subject: Switched default DE test case over to ISAMTree --- tests/internal_level_tests.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index 056e458..1009ea8 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -9,7 +9,8 @@ * All rights reserved. Published under the Modified BSD License. * */ -#include "shard/WIRS.h" +#include "shard/ISAMTree.h" +#include "query/rangequery.h" #include "framework/structure/InternalLevel.h" #include "framework/interface/Record.h" #include "framework/interface/Query.h" @@ -21,12 +22,12 @@ using namespace de; -typedef InternalLevel, WIRSQuery> ILevel; +typedef InternalLevel, rq::Query, Rec>> ILevel; START_TEST(t_memlevel_merge) { - auto tbl1 = create_test_mbuffer(100); - auto tbl2 = create_test_mbuffer(100); + auto tbl1 = create_test_mbuffer(100); + auto tbl2 = create_test_mbuffer(100); auto base_level = new ILevel(1, 1); base_level->append_buffer(tbl1); @@ -48,8 +49,8 @@ START_TEST(t_memlevel_merge) ILevel *create_test_memlevel(size_t reccnt) { - auto tbl1 = create_test_mbuffer(reccnt/2); - auto tbl2 = create_test_mbuffer(reccnt/2); + auto tbl1 = create_test_mbuffer(reccnt/2); + auto tbl2 = create_test_mbuffer(reccnt/2); auto base_level = new ILevel(1, 2); base_level->append_buffer(tbl1); -- cgit v1.2.3 From 357cab549c2ed33970562b84ff6f83923742343d Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Tue, 7 Nov 2023 15:34:24 -0500 Subject: Comment and License updates --- tests/internal_level_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index 1009ea8..cb74bca 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -6,7 +6,7 @@ * Copyright (C) 2023 Douglas Rumbaugh * Dong Xie * - * All rights reserved. Published under the Modified BSD License. + * Distributed under the Modified BSD License. * */ #include "shard/ISAMTree.h" -- cgit v1.2.3 From 3c127eda69295cb306739bdd3c5ddccff6026a8d Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 13 Dec 2023 12:39:54 -0500 Subject: Refactoring: corrected a number of names and added more comments --- tests/internal_level_tests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index cb74bca..9299c07 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -37,7 +37,7 @@ START_TEST(t_memlevel_merge) merging_level->append_buffer(tbl2); ck_assert_int_eq(merging_level->get_record_count(), 100); - auto new_level = ILevel::merge_levels(base_level, merging_level); + auto new_level = ILevel::reconstruction(base_level, merging_level); delete merging_level; ck_assert_int_eq(new_level->get_record_count(), 200); @@ -66,7 +66,7 @@ Suite *unit_testing() { Suite *unit = suite_create("InternalLevel Unit Testing"); - TCase *merge = tcase_create("de::InternalLevel::merge_level Testing"); + TCase *merge = tcase_create("de::InternalLevel::reconstruction Testing"); tcase_add_test(merge, t_memlevel_merge); suite_add_tcase(unit, merge); -- cgit v1.2.3 From 7e503464176adbd0880373325e30a6bfd58616f0 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 11 Jan 2024 16:31:24 -0500 Subject: InternalLevel update and tests Plus some assorted fixes for move semantics stuff in BufferView that accompanied these changes. --- tests/internal_level_tests.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index 9299c07..b8aa56f 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -30,11 +30,11 @@ START_TEST(t_memlevel_merge) auto tbl2 = create_test_mbuffer(100); auto base_level = new ILevel(1, 1); - base_level->append_buffer(tbl1); + base_level->append_buffer(tbl1->get_buffer_view()); ck_assert_int_eq(base_level->get_record_count(), 100); auto merging_level = new ILevel(0, 1); - merging_level->append_buffer(tbl2); + merging_level->append_buffer(tbl2->get_buffer_view()); ck_assert_int_eq(merging_level->get_record_count(), 100); auto new_level = ILevel::reconstruction(base_level, merging_level); @@ -53,8 +53,8 @@ ILevel *create_test_memlevel(size_t reccnt) { auto tbl2 = create_test_mbuffer(reccnt/2); auto base_level = new ILevel(1, 2); - base_level->append_buffer(tbl1); - base_level->append_buffer(tbl2); + base_level->append_buffer(tbl1->get_buffer_view()); + base_level->append_buffer(tbl2->get_buffer_view()); delete tbl1; delete tbl2; -- cgit v1.2.3 From c4514c2e62a711189cf3c914297885d97fb51a09 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Fri, 12 Jan 2024 14:08:33 -0500 Subject: Initial pass at unit test refactoring Restructured unit tests to be a bit more modular. I have some further plans to expand on this, particular for the query tests (including both shard and framework level test functions that can be injected at will). --- tests/internal_level_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index b8aa56f..79b9c21 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -16,7 +16,7 @@ #include "framework/interface/Query.h" #include "framework/interface/Shard.h" -#include "testing.h" +#include "include/testing.h" #include -- cgit v1.2.3 From 2c5d549b3618b9ea72e6eece4cb4f3da5a6811a8 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Wed, 7 Feb 2024 13:42:34 -0500 Subject: Fully realized shard concept interface --- tests/internal_level_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/internal_level_tests.cpp') diff --git a/tests/internal_level_tests.cpp b/tests/internal_level_tests.cpp index 79b9c21..06b0bab 100644 --- a/tests/internal_level_tests.cpp +++ b/tests/internal_level_tests.cpp @@ -22,7 +22,7 @@ using namespace de; -typedef InternalLevel, rq::Query, Rec>> ILevel; +typedef InternalLevel, rq::Query>> ILevel; START_TEST(t_memlevel_merge) { -- cgit v1.2.3