ok?
This commit is contained in:
parent
fddaf6b9d0
commit
4becf40f06
5 changed files with 19 additions and 100 deletions
|
|
@ -6,24 +6,27 @@
|
|||
|
||||
class MergeSorter {
|
||||
private:
|
||||
std::vector<Record> buffer_;
|
||||
const std::string& tmp_dir_;
|
||||
size_t buffer_rows_ = 0;
|
||||
size_t disk_reads_ = 0;
|
||||
size_t disk_writes_ = 0;
|
||||
size_t phases_ = 0;
|
||||
std::vector<Record> buffer_;
|
||||
const std::string &tmp_dir_;
|
||||
size_t buffer_rows_ = 0;
|
||||
size_t disk_reads_ = 0;
|
||||
size_t disk_writes_ = 0;
|
||||
size_t phases_ = 0;
|
||||
|
||||
std::span<Record> get_chunk_span(size_t chunk_index);
|
||||
size_t create_initial_runs(const std::string& input_file, const std::string& next_dir);
|
||||
size_t merge_pass(const std::string& current_dir, const std::string& next_dir, size_t run_count);
|
||||
void perform_k_way_merge(std::vector<std::unique_ptr<FileReader>>& readers,
|
||||
FileWriter& writer);
|
||||
std::span<Record> get_chunk_span(size_t chunk_index);
|
||||
size_t create_initial_runs(const std::string &input_file,
|
||||
const std::string &next_dir);
|
||||
size_t merge_pass(const std::string ¤t_dir, const std::string &next_dir,
|
||||
size_t run_count);
|
||||
void perform_k_way_merge(std::vector<std::unique_ptr<FileReader>> &readers,
|
||||
FileWriter &writer);
|
||||
|
||||
public:
|
||||
MergeSorter(size_t buffer_rows, size_t buffer_cols, const std::string& tmp_dir);
|
||||
void sort_file(const std::string& input_file, const std::string& output_file);
|
||||
MergeSorter(size_t buffer_rows, size_t buffer_cols,
|
||||
const std::string &tmp_dir);
|
||||
void sort_file(const std::string &input_file, const std::string &output_file);
|
||||
|
||||
size_t disk_reads();
|
||||
size_t disk_writes();
|
||||
size_t phases();
|
||||
size_t disk_reads();
|
||||
size_t disk_writes();
|
||||
size_t phases();
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue