[FEAT MERGE] implement Medium Compaction & adaptive Compaction Strategy
This commit is contained in:
@ -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_;
|
||||
};
|
||||
|
||||
@ -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));
|
||||
|
||||
Reference in New Issue
Block a user