2016-11-29 4 views
3

J'ai un serveur Riak et ont récemment créé et activé un nouveau type de seau:Comment modifier le backend de stockage d'un type de compartiment existant dans Riak?

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

Sur la base de ma configuration par défaut, le backend de stockage a été mis à leveldb. Après cela, j'ai réalisé que j'avais besoin des seaux pour pouvoir expirer les anciennes clés. En d'autres termes, j'avais besoin de changer le backend de stockage pour qu'il soit bitcask ou memory. J'ai décidé que bitcask me conviendrait le mieux. Maintenant, ma question est: comment puis-je changer le backend de stockage pour le type de seau sso_tokens existant? Après avoir lu la documentation, il n'est pas clair que je puisse le faire. J'ai trouvé, cependant, comment définir le backend de stockage lorsque créant le type de baquet (voir commande ci-dessous).

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

Merci.

Répondre

1

Annuler vous ne pouvez pas modifier l'extrémité arrière sur un seul type de seau actuellement. Si vous voulez vous pouvez changer le backend pour le cluster entier s'il est monolithique (c'est-à-dire tout Bitcask ou tout LevelDB). Il est pas quelque chose qui est documenté sur http://docs.basho.com/riak/kv/ mais la question Github suivante pour la documentation décrit une méthode pour changer le back-end:

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

Vous pouvez régler le back-end au type de seau, mais seulement si vous êtes en utilisant la fonction multi-backend (comme décrit ici: http://docs.basho.com/riak/kv/2.2.0/setup/planning/backend/multi/) et vous ne pouvez pas changer le type de compartiment de cette façon une fois qu'il a été défini.

Vous pourriez être intéressé de savoir que Riak 2.2 a ajouté le support de l'expiration globale dans LevelDB comme documenté ici: http://docs.basho.com/riak/kv/latest/configuring/global-object-expiration/.

+0

Merci Craig, c'est intéressant. Savez-vous s'il existe un moyen de supprimer le type de seau 'sso_tokens' afin de pouvoir le recréer, en définissant le backend approprié cette fois-ci? –

+0

Malheureusement, il n'existe aucun moyen de supprimer les compartiments ou les types de compartiment. Voir: http://stackoverflow.com/questions/27567451/how-to-deactivate-or-delete-a-bucket-type-in-riak – Craig

+0

Oh! C'est vraiment malheureux. Je parie qu'il y a de bonnes raisons à cela, mais est-ce que cela signifie que si vous faites une erreur dans la création du type de seau, vous devez vivre avec lui pour toujours? Heureusement, je travaille avec des machines virtuelles, donc je peux toujours remonter dans le temps et récupérer un instantané. –