Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
milvus
提交
5a406d6e
milvus
项目概览
BaiXuePrincess
/
milvus
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5a406d6e
编写于
5月 19, 2019
作者:
X
Xu Peng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(db): add simple delete partitions
Former-commit-id: 61aeee06c7d928939e6d3d28013630464cf0e046
上级
5f4e16f3
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
79 addition
and
6 deletion
+79
-6
cpp/src/db/DB.h
cpp/src/db/DB.h
+2
-0
cpp/src/db/DBImpl.cpp
cpp/src/db/DBImpl.cpp
+6
-0
cpp/src/db/DBImpl.h
cpp/src/db/DBImpl.h
+1
-0
cpp/src/db/DBMetaImpl.cpp
cpp/src/db/DBMetaImpl.cpp
+38
-0
cpp/src/db/DBMetaImpl.h
cpp/src/db/DBMetaImpl.h
+2
-0
cpp/src/db/LocalMetaImpl.h
cpp/src/db/LocalMetaImpl.h
+3
-1
cpp/src/db/Meta.cpp
cpp/src/db/Meta.cpp
+18
-3
cpp/src/db/Meta.h
cpp/src/db/Meta.h
+4
-2
cpp/unittest/db/meta_tests.cpp
cpp/unittest/db/meta_tests.cpp
+5
-0
未找到文件。
cpp/src/db/DB.h
浏览文件 @
5a406d6e
...
@@ -23,6 +23,8 @@ public:
...
@@ -23,6 +23,8 @@ public:
virtual
Status
add_group
(
meta
::
GroupSchema
&
group_info_
)
=
0
;
virtual
Status
add_group
(
meta
::
GroupSchema
&
group_info_
)
=
0
;
virtual
Status
get_group
(
meta
::
GroupSchema
&
group_info_
)
=
0
;
virtual
Status
get_group
(
meta
::
GroupSchema
&
group_info_
)
=
0
;
virtual
Status
delete_vectors
(
const
std
::
string
&
group_id
,
const
meta
::
DatesT
&
dates
)
=
0
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
=
0
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
=
0
;
virtual
Status
get_group_files
(
const
std
::
string
&
group_id_
,
virtual
Status
get_group_files
(
const
std
::
string
&
group_id_
,
const
int
date_delta_
,
const
int
date_delta_
,
...
...
cpp/src/db/DBImpl.cpp
浏览文件 @
5a406d6e
...
@@ -44,6 +44,12 @@ Status DBImpl<EngineT>::get_group(meta::GroupSchema& group_info) {
...
@@ -44,6 +44,12 @@ Status DBImpl<EngineT>::get_group(meta::GroupSchema& group_info) {
return
_pMeta
->
get_group
(
group_info
);
return
_pMeta
->
get_group
(
group_info
);
}
}
template
<
typename
EngineT
>
Status
DBImpl
<
EngineT
>::
delete_vectors
(
const
std
::
string
&
group_id
,
const
meta
::
DatesT
&
dates
)
{
return
_pMeta
->
delete_group_partitions
(
group_id
,
dates
);
}
template
<
typename
EngineT
>
template
<
typename
EngineT
>
Status
DBImpl
<
EngineT
>::
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
{
Status
DBImpl
<
EngineT
>::
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
{
return
_pMeta
->
has_group
(
group_id_
,
has_or_not_
);
return
_pMeta
->
has_group
(
group_id_
,
has_or_not_
);
...
...
cpp/src/db/DBImpl.h
浏览文件 @
5a406d6e
...
@@ -35,6 +35,7 @@ public:
...
@@ -35,6 +35,7 @@ public:
virtual
Status
add_group
(
meta
::
GroupSchema
&
group_info
)
override
;
virtual
Status
add_group
(
meta
::
GroupSchema
&
group_info
)
override
;
virtual
Status
get_group
(
meta
::
GroupSchema
&
group_info
)
override
;
virtual
Status
get_group
(
meta
::
GroupSchema
&
group_info
)
override
;
virtual
Status
delete_vectors
(
const
std
::
string
&
group_id
,
const
meta
::
DatesT
&
dates
)
override
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
override
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
override
;
virtual
Status
get_group_files
(
const
std
::
string
&
group_id_
,
virtual
Status
get_group_files
(
const
std
::
string
&
group_id_
,
...
...
cpp/src/db/DBMetaImpl.cpp
浏览文件 @
5a406d6e
...
@@ -104,6 +104,44 @@ Status DBMetaImpl::initialize() {
...
@@ -104,6 +104,44 @@ Status DBMetaImpl::initialize() {
return
Status
::
OK
();
return
Status
::
OK
();
}
}
// PXU TODO: Temp solution. Will fix later
Status
DBMetaImpl
::
delete_group_partitions
(
const
std
::
string
&
group_id
,
const
meta
::
DatesT
&
dates
)
{
if
(
dates
.
size
()
==
0
)
{
return
Status
::
OK
();
}
GroupSchema
group_info
;
group_info
.
group_id
=
group_id
;
auto
status
=
get_group
(
group_info
);
if
(
!
status
.
ok
())
{
return
status
;
}
auto
yesterday
=
GetDate
(
-
2
);
for
(
auto
&
date
:
dates
)
{
if
(
date
>=
yesterday
)
{
return
Status
::
Error
(
"Could not delete partitions with 2 days"
);
}
}
try
{
ConnectorPtr
->
update_all
(
set
(
c
(
&
GroupFileSchema
::
file_type
)
=
(
int
)
GroupFileSchema
::
TO_DELETE
),
where
(
c
(
&
GroupFileSchema
::
group_id
)
==
group_id
and
in
(
&
GroupFileSchema
::
date
,
dates
)
));
}
catch
(
std
::
exception
&
e
)
{
LOG
(
DEBUG
)
<<
e
.
what
();
throw
e
;
}
return
Status
::
OK
();
}
Status
DBMetaImpl
::
add_group
(
GroupSchema
&
group_info
)
{
Status
DBMetaImpl
::
add_group
(
GroupSchema
&
group_info
)
{
if
(
group_info
.
group_id
==
""
)
{
if
(
group_info
.
group_id
==
""
)
{
std
::
stringstream
ss
;
std
::
stringstream
ss
;
...
...
cpp/src/db/DBMetaImpl.h
浏览文件 @
5a406d6e
...
@@ -24,6 +24,8 @@ public:
...
@@ -24,6 +24,8 @@ public:
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
override
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
override
;
virtual
Status
add_group_file
(
GroupFileSchema
&
group_file_info
)
override
;
virtual
Status
add_group_file
(
GroupFileSchema
&
group_file_info
)
override
;
virtual
Status
delete_group_partitions
(
const
std
::
string
&
group_id
,
const
meta
::
DatesT
&
dates
)
override
;
virtual
Status
has_group_file
(
const
std
::
string
&
group_id_
,
virtual
Status
has_group_file
(
const
std
::
string
&
group_id_
,
const
std
::
string
&
file_id_
,
const
std
::
string
&
file_id_
,
...
...
cpp/src/db/LocalMetaImpl.h
浏览文件 @
5a406d6e
...
@@ -22,7 +22,9 @@ public:
...
@@ -22,7 +22,9 @@ public:
virtual
Status
get_group
(
GroupSchema
&
group_info_
)
override
;
virtual
Status
get_group
(
GroupSchema
&
group_info_
)
override
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
override
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
override
;
virtual
Status
add_group_file
(
GroupFileSchema
&
group_file_info
)
=
0
;
virtual
Status
add_group_file
(
GroupFileSchema
&
group_file_info
)
override
;
/* virtual Status delete_group_partitions(const std::string& group_id, */
/* const meta::DatesT& dates) override; */
virtual
Status
has_group_file
(
const
std
::
string
&
group_id_
,
virtual
Status
has_group_file
(
const
std
::
string
&
group_id_
,
const
std
::
string
&
file_id_
,
const
std
::
string
&
file_id_
,
...
...
cpp/src/db/Meta.cpp
浏览文件 @
5a406d6e
...
@@ -11,13 +11,28 @@ namespace vecwise {
...
@@ -11,13 +11,28 @@ namespace vecwise {
namespace
engine
{
namespace
engine
{
namespace
meta
{
namespace
meta
{
DateT
Meta
::
GetDate
(
const
std
::
time_t
&
t
)
{
DateT
Meta
::
GetDate
(
const
std
::
time_t
&
t
,
int
day_delta
)
{
tm
*
ltm
=
std
::
localtime
(
&
t
);
tm
*
ltm
=
std
::
localtime
(
&
t
);
if
(
day_delta
>
0
)
{
do
{
++
ltm
->
tm_mday
;
--
day_delta
;
}
while
(
day_delta
>
0
);
mktime
(
ltm
);
}
else
if
(
day_delta
<
0
)
{
do
{
--
ltm
->
tm_mday
;
++
day_delta
;
}
while
(
day_delta
<
0
);
mktime
(
ltm
);
}
else
{
ltm
->
tm_mday
;
}
return
ltm
->
tm_year
*
10000
+
ltm
->
tm_mon
*
100
+
ltm
->
tm_mday
;
return
ltm
->
tm_year
*
10000
+
ltm
->
tm_mon
*
100
+
ltm
->
tm_mday
;
}
}
DateT
Meta
::
GetDate
()
{
DateT
Meta
::
GetDate
(
int
day_delta
)
{
return
GetDate
(
std
::
time
(
nullptr
));
return
GetDate
(
std
::
time
(
nullptr
)
,
day_delta
);
}
}
}
// namespace meta
}
// namespace meta
...
...
cpp/src/db/Meta.h
浏览文件 @
5a406d6e
...
@@ -67,6 +67,8 @@ public:
...
@@ -67,6 +67,8 @@ public:
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
=
0
;
virtual
Status
has_group
(
const
std
::
string
&
group_id_
,
bool
&
has_or_not_
)
=
0
;
virtual
Status
add_group_file
(
GroupFileSchema
&
group_file_info
)
=
0
;
virtual
Status
add_group_file
(
GroupFileSchema
&
group_file_info
)
=
0
;
virtual
Status
delete_group_partitions
(
const
std
::
string
&
group_id
,
const
meta
::
DatesT
&
dates
)
=
0
;
virtual
Status
has_group_file
(
const
std
::
string
&
group_id_
,
virtual
Status
has_group_file
(
const
std
::
string
&
group_id_
,
const
std
::
string
&
file_id_
,
const
std
::
string
&
file_id_
,
...
@@ -98,8 +100,8 @@ public:
...
@@ -98,8 +100,8 @@ public:
virtual
Status
count
(
const
std
::
string
&
group_id
,
long
&
result
)
=
0
;
virtual
Status
count
(
const
std
::
string
&
group_id
,
long
&
result
)
=
0
;
static
DateT
GetDate
(
const
std
::
time_t
&
t
);
static
DateT
GetDate
(
const
std
::
time_t
&
t
,
int
day_delta
);
static
DateT
GetDate
();
static
DateT
GetDate
(
int
day_delta
=
0
);
};
// MetaData
};
// MetaData
...
...
cpp/unittest/db/meta_tests.cpp
浏览文件 @
5a406d6e
...
@@ -59,6 +59,11 @@ TEST_F(MetaTest, GROUP_FILE_TEST) {
...
@@ -59,6 +59,11 @@ TEST_F(MetaTest, GROUP_FILE_TEST) {
ASSERT_TRUE
(
status
.
ok
());
ASSERT_TRUE
(
status
.
ok
());
ASSERT_EQ
(
group_file
.
file_type
,
new_file_type
);
ASSERT_EQ
(
group_file
.
file_type
,
new_file_type
);
meta
::
DatesT
dates
;
dates
.
push_back
(
meta
::
Meta
::
GetDate
());
status
=
impl_
->
delete_group_partitions
(
group_file
.
group_id
,
dates
);
ASSERT_FALSE
(
status
.
ok
());
/* group_file.file_type = meta::GroupFileSchema::NEW; */
/* group_file.file_type = meta::GroupFileSchema::NEW; */
/* status = impl_->get_group_file(group_file.group_id, group_file.file_id, group_file); */
/* status = impl_->get_group_file(group_file.group_id, group_file.file_id, group_file); */
/* ASSERT_TRUE(status.ok()); */
/* ASSERT_TRUE(status.ok()); */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录