2

我在配置 CRDT 存储桶类型和使用 bitcask 后端时遇到问题。我希望能够使用 set 类型并保持 bitcask 到期的功能。

如果我不指定后端,我可以创建和使用存储桶类型

sudo riak-admin bucket-type create sets '{"props":{"datatype":"set"}}'

但是如果我尝试在 props 中指定一个后端,那么每当我尝试使用该类型时,riak 似乎就会崩溃并且我失去了连接。

sudo riak-admin bucket-type create sets2 '{"props":{"datatype":"set","backend":"bitcask"}}'

这是我尝试使用存储桶类型时 error.log 中的唯一日志。如果有帮助,我还尝试将后端指定为 leveldb 和 memory 以及 bitcask,但没有成功。

2016-10-13 13:41:25.965 [错误] <0.8870.0> gen_fsm <0.8870.0> 处于活动状态,因原因终止:在 riak_core_vnode 中没有匹配 {riak_kv_multi_backend、undefined_backend、<<"bitcask">>} 的案例条款:vnode_command/3 line 346 2016-10-13 13:41:25.965 [error] <0.8870.0> CRASH REPORT 进程 <0.8870.0> 有 1 个邻居退出,原因是:没有匹配 {riak_kv_multi_backend,undefined_backend,<< “bitcask”>>} in riak_core_vnode:vnode_command/3 line 346 in gen_fsm:terminate/7 line 622 2016-10-13 13:41:25.965 [error] <0.168.0> Supervisor riak_core_vnode_sup 有子 undefined 从 {riak_core_vnode, start_link,undefined} 在 <0.8870.0> 退出,原因是没有 case 子句匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in context child_terminated 2016-10-13 13:41:25.965 [error] <0.8896.0> gen_fsm <0.8896.0> in state ready terminate with reason: no case Clause match {riak_kv_multi_backend, undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 2016-10-13 13:41:25.965 [error] <0.8896.0> CRASH REPORT Process <0.8896.0> 有 10 个邻居因原因退出:在 riak_core_vnode:vnode_command/3 第 346 行中 gen_fsm:terminate/7 第 622 行中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句 2016-10-13 13:41:25.966 [错误] <0.8897。 0> 主管 {<0.8897.0>,poolboy_sup} 有子 riak_core_vnode_worker 以 riak_core_vnode_worker:start_link([{worker_module,riak_core_vnode_worker},{worker_args,[1370157784997721485815954530671515330927436759040,...]},...]) 在未定义退出,原因是没有 case 子句匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 在 riak_core_vnode:vnode_error/3 line 346 in context shutdown 2016-10-13 13:41:25.966 [错误] <0.8897.0> gen_server <0.8897.0> 因原因终止:在 riak_core_vnode:vnode_command/ 中没有匹配 {riak_kv_multi_backend、undefined_backend、<<"bitcask">>} 的 case 子句3 line 346 2016-10-13 13:41:25.966 [error] <0.8897.0> CRASH REPORT Process <0.8897.0> with 0 个邻居退出,原因是:没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask" 的 case 子句>>} in riak_core_vnode:vnode_command/3 line 346 in gen_server:terminate/6 line 744[1370157784997721485815954530671515330927436759040,...]},...]) 在未定义退出时,原因是没有 case 子句匹配 riak_core_vnode:vnode_command/3 line 346 in context shutdown_error 201-error 201-6 -13 13:41:25.966 [错误] <0.8897.0> gen_server <0.8897.0> 因原因终止:在 riak_core_vnode:vnode_command/3 第 346 行中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句2016-10-13 13:41:25.966 [错误] <0.8897.0> 崩溃报告进程 <0.8897.0> 有 0 个邻居退出,原因是:没有匹配 {riak_kv_multi_backend、undefined_backend、<<"bitcask">>} 的案例子句在 riak_core_vnode:vnode_command/3 第 346 行 gen_server:terminate/6 第 744 行[1370157784997721485815954530671515330927436759040,...]},...]) 在未定义退出时,原因是没有 case 子句匹配 riak_core_vnode:vnode_command/3 line 346 in context shutdown_error 201-error 201-6 -13 13:41:25.966 [错误] <0.8897.0> gen_server <0.8897.0> 因原因终止:在 riak_core_vnode:vnode_command/3 第 346 行中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句2016-10-13 13:41:25.966 [错误] <0.8897.0> 崩溃报告进程 <0.8897.0> 有 0 个邻居退出,原因是:没有匹配 {riak_kv_multi_backend、undefined_backend、<<"bitcask">>} 的案例子句在 riak_core_vnode:vnode_command/3 第 346 行 gen_server:terminate/6 第 744 行..])在未定义退出时,原因没有 case 子句匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in context shutdown_error 2016-10-13 13:41:25.966 [错误] <0.8897.0> gen_server <0.8897.0> 因原因终止:在 riak_core_vnode:vnode_command/3 行 346 2016-10-13 13:41:25.966 中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句[错误] <0.8897.0> CRASH REPORT 进程 <0.8897.0> 有 0 个邻居退出,原因是:没有 case 子句匹配 riak_core_vnode 中的 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>}:vnode_command/3 line 346 in gen_server :terminate/6 第 744 行..])在未定义退出时,原因没有 case 子句匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in context shutdown_error 2016-10-13 13:41:25.966 [错误] <0.8897.0> gen_server <0.8897.0> 因原因终止:在 riak_core_vnode:vnode_command/3 行 346 2016-10-13 13:41:25.966 中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句[错误] <0.8897.0> CRASH REPORT 进程 <0.8897.0> 有 0 个邻居退出,原因是:没有 case 子句匹配 riak_core_vnode 中的 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>}:vnode_command/3 line 346 in gen_server :terminate/6 第 744 行undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in context shutdown_error 2016-10-13 13:41:25.966 [error] <0.8897.0> gen_server <0.8897.0> 终止原因:否在 riak_core_vnode:vnode_command/3 行 346 2016-10-13 13:41:25.966 [error] <0.8897.0> CRASH REPORT Process <0.8897.0> 中匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句有 0 个邻居退出,原因是:在 riak_core_vnode:vnode_command/3 line 346 in gen_server:terminate/6 line 744 中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句undefined_backend,<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in context shutdown_error 2016-10-13 13:41:25.966 [error] <0.8897.0> gen_server <0.8897.0> 终止原因:否在 riak_core_vnode:vnode_command/3 行 346 2016-10-13 13:41:25.966 [error] <0.8897.0> CRASH REPORT Process <0.8897.0> 中匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句有 0 个邻居退出,原因是:在 riak_core_vnode:vnode_command/3 line 346 in gen_server:terminate/6 line 744 中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的 case 子句8897.0> 因原因终止:在 riak_core_vnode:vnode_command/3 行 346 2016-10-13 13:41:25.966 [错误] <0.8897.0> 中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的案例条款报告进程 <0.8897.0> 与 0 个邻居退出,原因是:没有 case 子句匹配 riak_core_vnode:vnode_command/3 第 346 行中的 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} gen_server:terminate/6 第 744 行8897.0> 因原因终止:在 riak_core_vnode:vnode_command/3 行 346 2016-10-13 13:41:25.966 [错误] <0.8897.0> 中没有匹配 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} 的案例条款报告进程 <0.8897.0> 与 0 个邻居退出,原因是:没有 case 子句匹配 riak_core_vnode:vnode_command/3 第 346 行中的 {riak_kv_multi_backend,undefined_backend,<<"bitcask">>} gen_server:terminate/6 第 744 行<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in gen_server:terminate/6 line 744<<"bitcask">>} in riak_core_vnode:vnode_command/3 line 346 in gen_server:terminate/6 line 744

我正在使用 Riak v2.0.7 LTS

4

1 回答 1

5

当 Riak 在配置中找不到您为该存储桶类型定义的后端名称时,就会发生错误。当使用多个后端时,您需要在创建存储桶类型时使用配置中定义的名称。

因此,假设使用riak 文档中的示例配置:

storage_backend = multi multi_backend.bitcask_mult.storage_backend = bitcask

要为 bitcask 创建存储桶,您应该使用 bitcask_mult 作为后端名称:

sudo riak-admin bucket-type create sets2 '{"props":{"datatype":"set","backend":"bitcask_mult"}}'

希望有帮助

于 2016-10-18T09:44:45.163 回答