[FEAT MERGE] implement Medium Compaction & adaptive Compaction Strategy

This commit is contained in:
obdev
2022-12-19 13:26:58 +00:00
committed by ob-robot
parent 5c19d8c8c7
commit c94062401a
177 changed files with 12721 additions and 3494 deletions

View File

@ -117,7 +117,7 @@ class ObBasicDag : public ObIDag
{
public:
ObBasicDag() :
ObIDag(ObDagType::DAG_TYPE_MINOR_MERGE),
ObIDag(ObDagType::DAG_TYPE_MAJOR_MERGE),
id_(ObTimeUtility::current_time() + random())
{}
void init(int64_t id) { id_ = id; }
@ -457,11 +457,8 @@ class ObOperator
public:
ObOperator() : num_(0) {}
~ObOperator() {}
void inc() { ++num_; }
void dec()
{
--num_;
}
void inc() { ATOMIC_INC(&num_); }
void dec() { ATOMIC_DEC(&num_); }
private:
int64_t num_;
};

View File

@ -377,7 +377,7 @@ class TestDag : public ObIDag
{
public:
TestDag() :
ObIDag(ObDagType::DAG_TYPE_MINOR_MERGE), id_(0), expect_(-1), expect_ret_(0), running_(false), tester_(NULL) { }
ObIDag(ObDagType::DAG_TYPE_MERGE_EXECUTE), id_(0), expect_(-1), expect_ret_(0), running_(false), tester_(NULL) { }
explicit TestDag(const ObDagType::ObDagTypeEnum type) :
ObIDag(type), id_(0), expect_(-1), expect_ret_(0), running_(false), tester_(NULL) { }
virtual ~TestDag()
@ -469,7 +469,7 @@ private:
class TestHPDag : public TestDag
{
public:
TestHPDag() : TestDag(ObDagType::DAG_TYPE_MINOR_MERGE) {}
TestHPDag() : TestDag(ObDagType::DAG_TYPE_MERGE_EXECUTE) {}
private:
DISALLOW_COPY_AND_ASSIGN(TestHPDag);
};
@ -485,7 +485,7 @@ private:
class TestCompMidDag : public TestDag
{
public:
TestCompMidDag() : TestDag(ObDagType::DAG_TYPE_MINOR_MERGE) {}
TestCompMidDag() : TestDag(ObDagType::DAG_TYPE_MERGE_EXECUTE) {}
private:
DISALLOW_COPY_AND_ASSIGN(TestCompMidDag);
};
@ -1317,7 +1317,7 @@ TEST_F(TestDagScheduler, test_get_dag_count)
int64_t counter = 1;
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAJOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MINOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MERGE_EXECUTE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_DDL));
EXPECT_EQ(-1, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAX));
@ -1328,7 +1328,7 @@ TEST_F(TestDagScheduler, test_get_dag_count)
EXPECT_EQ(OB_SUCCESS, dag->add_task(*mul_task));
EXPECT_EQ(OB_SUCCESS, scheduler->add_dag(dag));
sleep(1);
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MINOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MERGE_EXECUTE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAJOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_DDL));
EXPECT_EQ(-1, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAX));
@ -1339,7 +1339,7 @@ TEST_F(TestDagScheduler, test_get_dag_count)
EXPECT_EQ(OB_SUCCESS, mul_task->init(&counter));
EXPECT_EQ(OB_SUCCESS, dag->add_task(*mul_task));
EXPECT_EQ(OB_SUCCESS, scheduler->add_dag(dag));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MINOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MERGE_EXECUTE));
EXPECT_EQ(1, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAJOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_DDL));
EXPECT_EQ(-1, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAX));
@ -1349,7 +1349,7 @@ TEST_F(TestDagScheduler, test_get_dag_count)
EXPECT_EQ(OB_SUCCESS, mul_task2->init(&counter));
EXPECT_EQ(OB_SUCCESS, dag2->add_task(*mul_task2));
EXPECT_EQ(OB_SUCCESS, scheduler->add_dag(dag2));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MINOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_MERGE_EXECUTE));
EXPECT_EQ(2, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAJOR_MERGE));
EXPECT_EQ(0, scheduler->get_dag_count(ObDagType::DAG_TYPE_DDL));
EXPECT_EQ(-1, scheduler->get_dag_count(ObDagType::DAG_TYPE_MAX));