如何更改 Riak 中现有存储桶类型的存储后端?

How to change the storage backend of an existing bucket type in Riak?

我有一个 Riak 服务器并且最近创建并激活了一个新的存储桶类型:

$ riak-admin bucket-type create sso_tokens
$ riak-admin bucket-type activate sso_tokens

根据我的默认配置,存储后端设置为 leveldb

在那之后,我意识到我需要存储桶才能使旧密钥过期。换句话说,我需要将存储后端更改为 bitcaskmemory。我决定 bitcask 最适合我。

现在我的问题是:如何更改现有 sso_tokens 存储桶类型的存储后端?阅读文档后,我不清楚我能否做到这一点。不过,我发现如何在 创建 存储桶类型时设置存储后端(请参阅下面的命令)。

$ riak-admin bucket-type create new_sso_tokens '{"props":{"backend":"bitcask"}}'

谢谢。

无效,您目前无法仅更改单个存储桶类型的后端。如果你愿意,你可以改变整个集群的后端,如果它是整体的(即所有 Bitcask 或所有 LevelDB)。目前 http://docs.basho.com/riak/kv/ 上没有记录它,但是文档的以下 Github 问题描述了一种更改后端的方法:

https://github.com/basho/basho_docs/issues/1605

您可以在存储桶类型上设置后端,但前提是您使用的是多后端功能(如此处所述:http://docs.basho.com/riak/kv/2.2.0/setup/planning/backend/multi/),并且一旦设置好存储桶类型,您就不能再以这种方式更改.

您可能有兴趣了解 Riak 2.2 在 LevelDB 中添加了对全局过期的支持,如下所述:http://docs.basho.com/riak/kv/latest/configuring/global-object-expiration/