2010-01-23 02:13:59 +00:00
|
|
|
#ifndef _MERGER_H_
|
|
|
|
#define _MERGER_H_
|
|
|
|
|
2010-03-17 21:51:26 +00:00
|
|
|
#include "logstore.h"
|
|
|
|
#include "datatuple.h"
|
2010-01-23 02:13:59 +00:00
|
|
|
|
2010-03-13 00:05:06 +00:00
|
|
|
#include <stasis/common.h>
|
|
|
|
#undef try
|
|
|
|
#undef end
|
|
|
|
|
2010-12-11 00:51:19 +00:00
|
|
|
class merge_scheduler {
|
2010-01-23 02:13:59 +00:00
|
|
|
public:
|
2010-12-11 00:51:19 +00:00
|
|
|
merge_scheduler(logtable<datatuple> * ltable);
|
|
|
|
~merge_scheduler();
|
2010-05-19 23:42:06 +00:00
|
|
|
|
2010-12-11 00:51:19 +00:00
|
|
|
void start();
|
|
|
|
void shutdown();
|
2010-01-23 02:13:59 +00:00
|
|
|
|
2010-12-11 00:51:19 +00:00
|
|
|
void * memMergeThread();
|
|
|
|
void * diskMergeThread();
|
2010-01-23 02:13:59 +00:00
|
|
|
|
2010-12-11 00:51:19 +00:00
|
|
|
private:
|
|
|
|
pthread_t mem_merge_thread_;
|
|
|
|
pthread_t disk_merge_thread_;
|
|
|
|
logtable<datatuple> * ltable_;
|
|
|
|
const double MIN_R;
|
2010-01-23 02:13:59 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|