Pergunta

Tanto quanto eu entendo, índices CouchDB são atualizados quando uma visão é consultado. Assumindo que há mais leituras do que escreve, não é tão ruim para o dimensionamento? Como eu iria configurar CouchDB a índices de atualização nas gravações, ou melhor ainda, em uma programação?

Foi útil?

Solução

CouchDB faz vistas Regenerar em atualização, mas apenas sobre o que mudou desde o último acesso de leitura para a vista. Assumindo que o seu volume de leitura supera muito o seu volume de gravação, isso não deve ser um problema.

Quando você está mudando um grande número de documentos ao mesmo tempo isso poderia levar à possibilidade dos primeiros pedidos de leitura que tomam uma quantidade considerável de tempo. Para aliviar este um foram sugeridas algumas possibilidades diferentes. A maioria depende de registrar com notificações de atualização do CouchDB e provocando lê automaticamente.

Um exemplo de script para fazer exatamente que está disponível no wiki do CouchDB em [1].

[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate

Outras dicas

a) "Escala" é tal um termo sobrecarregado. O "tipo" de escala que você está se referindo? (De qualquer forma, eu não posso ver como isso afeta você negativamente).

b) Atualização sobre as gravações: Apenas consultar a sua visão depois de uma gravação. Note-se que a adição de um monte de dados para o índice é mais recurso amigável (que não é específico para CouchDB). Então você pode querer desencadear a sua visão a cada N escreve.

c) Programada:. Configurar um cronjob que consulta sua visão a cada M minutos

d) Aguarde CouchDB a evoluir para lhe fornecer a infra-estrutura que permite configurá-lo com um parâmetro de configuração.

e) (MELHOR OPÇÃO). Sujar as mãos e nos ajuda a polir CouchDB! As contribuições são muito apreciados.

d) RTFM ( piscar :)

Você não pode e também, por que você iria querer isso?

Pense nisso assim:

  • Quando você importar dados para o MySQL você pode transformar de indizes porque é mais caro para atualizar o índice para cada linha inserir, que é para atualizar o índice para 100 gravações (ou no entanto muitas linhas importadas) em uma única corrida .
  • É por isso que CouchDB atualiza o índice de leitura porque é menos caro para integrar essas 100 alterações ao mesmo tempo, então cada mudança quando ele é escrito.

Esta é uma das vantagens do CouchDB! :) Eu não estou dizendo que esta é uma característica CouchDB somente, mas é apenas inteligente para fazer isso em leitura.

Uma coisa que você pode fazer é ler com update = false, que é um sujo ler e pode não retornar o que você espera. Se você sempre faz isso, você poderia marcar uma "regular" ler através de um cron e atualizar seu índice com isso. Eu só não acho que faz sentido.

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