Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
indiff7643
Terarkdb
提交
c4a1aa2b
T
Terarkdb
项目概览
indiff7643
/
Terarkdb
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Terarkdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c4a1aa2b
编写于
12月 11, 2019
作者:
L
linyuanjin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add unix socket support
上级
95a44a94
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
29 addition
and
11 deletion
+29
-11
db/db_impl.cc
db/db_impl.cc
+1
-1
utilities/console/server.cc
utilities/console/server.cc
+22
-7
utilities/console/server.h
utilities/console/server.h
+6
-3
未找到文件。
db/db_impl.cc
浏览文件 @
c4a1aa2b
...
...
@@ -245,7 +245,7 @@ DBImpl::DBImpl(const DBOptions& options, const std::string& dbname,
error_handler_
(
this
,
immutable_db_options_
,
&
mutex_
),
atomic_flush_install_cv_
(
&
mutex_
),
bytedance_tags_
(
"dbname="
+
dbname
),
console_runner_
(
env_
,
immutable_db_options_
.
info_log
.
get
())
{
console_runner_
(
dbname
,
env_
,
immutable_db_options_
.
info_log
.
get
())
{
// !batch_per_trx_ implies seq_per_batch_ because it is only unset for
// WriteUnprepared, which should use seq_per_batch_.
assert
(
batch_per_txn_
||
seq_per_batch_
);
...
...
utilities/console/server.cc
浏览文件 @
c4a1aa2b
...
...
@@ -20,6 +20,7 @@ constexpr unsigned int kTCPKeepAlive = 300;
constexpr
unsigned
int
kTimeout
=
360
;
constexpr
unsigned
int
kReadLength
=
4096
;
constexpr
unsigned
int
kMaxInputBuffer
=
10485760
;
constexpr
unsigned
int
kUnixSocketPerm
=
700
;
static
void
ReleaseOrMarkClient
(
int
fd
,
Client
*
c
,
EventLoop
<
Client
>
*
el
)
{
if
(
c
->
ref_count
==
0
)
{
...
...
@@ -135,7 +136,8 @@ static void ServerCron(long *last_cron_time, long curr_time,
}
}
int
ServerMain
(
ServerRunner
*
runner
,
Env
*
env
,
Logger
*
log
)
{
int
ServerMain
(
ServerRunner
*
runner
,
const
std
::
string
&
path
,
Env
*
env
,
Logger
*
log
)
{
const
int
el_fd
=
EventLoop
<
Client
>::
Open
();
if
(
el_fd
<
0
)
{
ROCKS_LOG_ERROR
(
log
,
"Failed creating the event loop. Error message: '%s'"
,
...
...
@@ -151,12 +153,25 @@ int ServerMain(ServerRunner *runner, Env *env, Logger *log) {
}
char
err
[
ANET_ERR_LEN
];
const
int
ac_fd
=
anetTcpServer
(
err
,
kPort
,
const_cast
<
char
*>
(
kBindAddr
),
kBacklog
);
if
(
ac_fd
<
0
)
{
ROCKS_LOG_ERROR
(
log
,
"Failed creating the TCP server. Error message: '%s'"
,
err
);
return
1
;
int
ac_fd
;
if
(
path
.
empty
())
{
// currently, it's just for debug
ac_fd
=
anetTcpServer
(
err
,
kPort
,
const_cast
<
char
*>
(
kBindAddr
),
kBacklog
);
if
(
ac_fd
<
0
)
{
ROCKS_LOG_ERROR
(
log
,
"Failed creating the TCP server. Error message: '%s'"
,
err
);
return
1
;
}
}
else
{
std
::
string
sock_path
=
path
+
"/console.sock"
;
unlink
(
sock_path
.
c_str
());
/* don't care if this fails */
ac_fd
=
anetUnixServer
(
err
,
(
char
*
)
sock_path
.
c_str
(),
kUnixSocketPerm
,
kBacklog
);
if
(
ac_fd
<
0
)
{
ROCKS_LOG_ERROR
(
log
,
"Failed creating the Unix socket server. Error message: '%s'"
,
err
);
return
1
;
}
}
anetNonBlock
(
nullptr
,
ac_fd
);
...
...
utilities/console/server.h
浏览文件 @
c4a1aa2b
...
...
@@ -16,7 +16,8 @@ using namespace gujia;
struct
ServerRunner
;
int
ServerMain
(
ServerRunner
*
runner
,
rocksdb
::
Env
*
env
,
rocksdb
::
Logger
*
log
);
int
ServerMain
(
ServerRunner
*
runner
,
const
std
::
string
&
path
,
rocksdb
::
Env
*
env
,
rocksdb
::
Logger
*
log
);
struct
Client
{
RespMachine
resp
;
...
...
@@ -31,8 +32,10 @@ struct Client {
};
struct
ServerRunner
{
ServerRunner
(
rocksdb
::
Env
*
env
,
rocksdb
::
Logger
*
log
)
{
std
::
thread
job
([
this
,
env
,
log
]()
{
ServerMain
(
this
,
env
,
log
);
});
ServerRunner
(
const
std
::
string
&
path
,
rocksdb
::
Env
*
env
,
rocksdb
::
Logger
*
log
)
{
auto
p
=
&
path
;
std
::
thread
job
([
this
,
p
,
env
,
log
]()
{
ServerMain
(
this
,
*
p
,
env
,
log
);
});
job
.
detach
();
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录