提交 e15c445f 编写于 作者: X Xu Peng

feat(db): add size api for meta


Former-commit-id: 0b240dbf664348f65a70e57a5d545857469ad37b
上级 0a7f3346
......@@ -476,20 +476,11 @@ Status DBMetaImpl::archive_files() {
}
if (criteria == "disk") {
size_t G = 1024*1024*1024UL;
long unsigned int sum = 0;
try {
auto sum_c = ConnectorPtr->sum(
&GroupFileSchema::rows,
where(
c(&GroupFileSchema::file_type) != (int)GroupFileSchema::TO_DELETE
));
sum = *sum_c;
} catch (std::exception & e) {
LOG(DEBUG) << e.what();
throw e;
}
long sum = 0;
size(sum);
// PXU TODO: refactor rows
auto to_delete = sum - limit*G/sizeof(float);
auto to_delete = (sum - limit*G)/sizeof(float);
discard_files_of_size(to_delete);
}
}
......@@ -497,6 +488,22 @@ Status DBMetaImpl::archive_files() {
return Status::OK();
}
Status DBMetaImpl::size(long& result) {
try {
auto sum_c = ConnectorPtr->sum(
&GroupFileSchema::rows,
where(
c(&GroupFileSchema::file_type) != (int)GroupFileSchema::TO_DELETE
));
result = *sum_c*sizeof(float);
} catch (std::exception & e) {
LOG(DEBUG) << e.what();
throw e;
}
return Status::OK();
}
Status DBMetaImpl::discard_files_of_size(long to_discard_size) {
LOG(DEBUG) << "Abort to discard size=" << to_discard_size;
if (to_discard_size <= 0) {
......
......@@ -52,6 +52,8 @@ public:
virtual Status archive_files() override;
virtual Status size(long& result) override;
virtual Status cleanup() override;
virtual Status cleanup_ttl_files(uint16_t seconds) override;
......
......@@ -261,6 +261,11 @@ Status LocalMetaImpl::drop_all() {
return Status::OK();
}
Status LocalMetaImpl::size(long& result) {
// PXU TODO
return Status::OK();
}
Status LocalMetaImpl::count(const std::string& group_id, long& result) {
// PXU TODO
return Status::OK();
......
......@@ -55,6 +55,8 @@ public:
virtual Status drop_all() override;
virtual Status size(long& result) override;
private:
Status GetGroupMetaInfoByPath(const std::string& path, GroupSchema& group_info);
......
......@@ -93,6 +93,8 @@ public:
virtual Status files_to_merge(const std::string& group_id,
DatePartionedGroupFilesSchema& files) = 0;
virtual Status size(long& result) = 0;
virtual Status archive_files() = 0;
virtual Status files_to_index(GroupFilesSchema&) = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册