Pergunta

Predis afirma ter sharding do lado do cliente (suporte para hash consistentes de chaves). http://github.com/nrk/predis

Eu posso fazer sharding usando o Connect a uma matriz de perfis (nós), mas não é um hash consistente. Quando adiciono outro nó à piscina, algumas das chaves não podem ser encontradas. Alguém tem alguma experiência nisso?

Usando o PHP 5.2 (e a versão PHP 5.2 da Redis).

Foi útil?

Solução

Parece uma questão de permissões com a conta do domínio \ sn_spappprod.Tem um login SQL com os direitos necessários?Se você tiver uma fazenda multi-servidor, você tem um alias em cada servidor?

Um bom truque para ver se o seu usuário tem acesso é usar um testfile, consulte a seção inferior do Este artigo sobre como fazer isso.Se esse teste retornar sem erros, sua conexão com o SQL Server está OK - Certifique-se de usar o servidor de alias Name2 ao executar o teste.

Se o teste retornar um erro, seu alias provavelmente não será configurado corretamente no servidor.

Também pode ser que sua conta não tenha as permissões necessárias para executar o assistente de configuração.Consulte a seção "Configuração da Conta de Administração do Usuário" em Este artigo .

Outras dicas

A solução é usar o sharding virtual. Não conheço o Predis Framework, mas prevejo que ele usa algum tipo de matriz - você provavelmente o preenche com informações sobre cada fragmento na start -up.

Suponha que você tenha no máximo 10 fragmentos (é improvável que esse número seja alcançado). Em seguida, crie a matriz de sharding que aponta para apenas três servidores reais. No futuro, quando você adicionará novos nós, migrará dados relacionados para o novo shard e o mapeamento de alterações. Essa abordagem preserva a função de alteração de hash da forma.

Mapeamento inicial:

0 => 0 //node #0
1 => 0
2 => 0
3 => 1 //node #1
4 => 1
5 => 1
6 => 2 //node #2
7 => 2
8 => 2
9 => 2

Quando você adiciona um novo nó, você altera apenas o mapeamento:

0 => 0
1 => 0
2 => 3 // new node #3
3 => 1
4 => 1
5 => 3 // new node #3
7 => 2
8 => 2
9 => 3 // new node #3

Portanto, você precisa mover dados com h (x) = 9 ou 5 ou 2 para o nó nó #3.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top