@@ -26,11 +26,13 @@ import global_resource_usage;
26
26
27
27
namespace infinity {
28
28
29
- class NewCleanupTask ;
29
+ class CleanupTask ;
30
+ class NotifyOptimizeTask ;
31
+ class NotifyCompactTask ;
30
32
31
33
export class PeriodicTrigger {
32
34
public:
33
- explicit PeriodicTrigger (i64 interval) : interval_(interval), last_check_(std::chrono::system_clock::now()) {
35
+ explicit PeriodicTrigger (const i64 interval) : interval_(interval), last_check_(std::chrono::system_clock::now()) {
34
36
#ifdef INFINITY_DEBUG
35
37
GlobalResourceUsage::IncrObjectCount (" PeriodicTrigger" );
36
38
#endif
@@ -44,7 +46,7 @@ public:
44
46
45
47
bool Check ();
46
48
47
- void UpdateInternal (i64 new_interval) { interval_ = new_interval; }
49
+ void UpdateInternal (const i64 new_interval) { interval_ = new_interval; }
48
50
49
51
virtual void Trigger () = 0;
50
52
@@ -56,51 +58,48 @@ protected:
56
58
std::atomic_int64_t duration_{0 };
57
59
};
58
60
59
- export class NewCleanupPeriodicTrigger final : public PeriodicTrigger {
61
+ export class CleanupPeriodicTrigger final : public PeriodicTrigger {
60
62
public:
61
- NewCleanupPeriodicTrigger ( i64 interval) : PeriodicTrigger(interval) {}
63
+ explicit CleanupPeriodicTrigger ( const i64 interval) : PeriodicTrigger(interval) {}
62
64
63
- std::shared_ptr<NewCleanupTask> CreateNewCleanupTask ();
65
+ std::shared_ptr<CleanupTask> CreateCleanupTask ();
64
66
65
- virtual void Trigger () override ;
66
-
67
- private:
68
- //
67
+ void Trigger () override ;
69
68
};
70
69
71
70
export class CheckpointPeriodicTrigger final : public PeriodicTrigger {
72
71
public:
73
- explicit CheckpointPeriodicTrigger (i64 interval) : PeriodicTrigger(interval) {}
72
+ explicit CheckpointPeriodicTrigger (const i64 interval) : PeriodicTrigger(interval) {}
74
73
75
- virtual void Trigger () override ;
74
+ void Trigger () override ;
76
75
};
77
76
78
- export class CompactSegmentPeriodicTrigger final : public PeriodicTrigger {
77
+ export class CompactPeriodicTrigger final : public PeriodicTrigger {
79
78
public:
80
- explicit CompactSegmentPeriodicTrigger ( i64 interval, CompactionProcessor *compact_processor)
79
+ explicit CompactPeriodicTrigger ( const i64 interval, CompactionProcessor *compact_processor)
81
80
: PeriodicTrigger(interval), compact_processor_(compact_processor) {}
82
81
83
- explicit CompactSegmentPeriodicTrigger ( i64 interval) : PeriodicTrigger(interval), new_compaction_( true ) {}
82
+ explicit CompactPeriodicTrigger ( const i64 interval) : PeriodicTrigger(interval) {}
84
83
85
- virtual void Trigger () override ;
84
+ void Trigger () override ;
86
85
87
86
private:
88
- CompactionProcessor *const compact_processor_{};
89
- bool new_compaction_ = false ;
87
+ CompactionProcessor *compact_processor_{};
88
+ std::shared_ptr<NotifyCompactTask> compact_task_{} ;
90
89
};
91
90
92
91
export class OptimizeIndexPeriodicTrigger final : public PeriodicTrigger {
93
92
public:
94
- explicit OptimizeIndexPeriodicTrigger (i64 interval, CompactionProcessor *compact_processor)
93
+ explicit OptimizeIndexPeriodicTrigger (const i64 interval, CompactionProcessor *compact_processor)
95
94
: PeriodicTrigger(interval), compact_processor_(compact_processor) {}
96
95
97
- explicit OptimizeIndexPeriodicTrigger (i64 interval) : PeriodicTrigger(interval), new_optimize_( true ) {}
96
+ explicit OptimizeIndexPeriodicTrigger (const i64 interval) : PeriodicTrigger(interval) {}
98
97
99
- virtual void Trigger () override ;
98
+ void Trigger () override ;
100
99
101
100
private:
102
- CompactionProcessor *const compact_processor_ = nullptr ;
103
- bool new_optimize_ = false ;
101
+ CompactionProcessor *compact_processor_{} ;
102
+ std::shared_ptr<NotifyOptimizeTask> optimize_task_{} ;
104
103
};
105
104
106
105
} // namespace infinity
0 commit comments