2012-04-19 7 views
4

Désolé je ne pouvais pas penser à un titre plus descriptif: Nous avons un problème avec la mise à jour des vues couchDB car ils sont inaccessibles pendant la réindexation du document de conception. Est-ce la seule solution pour permettre des vues périmées?couchDB vues inaccessibles lors de la mise à jour

Dans un scénario, plusieurs nœuds couchDB se répliquent les uns avec les autres. Si vous mettez à jour une vue dans l'un, tous les nœuds couchDB réindexeront le document de conception. N'est-il pas possible de mettre à jour la vue sur un noeud et de répliquer le résultat? Je suppose que le problème est que de nouveaux documents pourraient être insérés dans d'autres nœuds pendant que celui-ci est réindexé. Dans un autre scénario, nous avons plusieurs nœuds couchDB qui sont en lecture/écriture et se répliquent les uns avec les autres. Pour les applications Web, il existe un autre cluster avec des nœuds couchDB en lecture seule ... ils ne sont pas répliqués, mais sont répliqués à partir du pool de lecture/écriture. Une solution ici pourrait être de retirer un noeud du cluster, de mettre à jour la vue et d'attendre que le noeud réindexe. Toutefois, ce noeud ne manquera-t-il pas les documents créés lors de la réindexation? Est-il possible de continuer à recevoir des insertions de documents tout en réindexant?

Y a-t-il d'autres solutions possibles? Nous migrons vers le deuxième scénario, ce qui me préoccupe principalement, mais je me demande s'il existe une solution générale pour les deux cas. L'utilisation de vues périmées n'est pas un scénario idéal car la réindexation peut prendre beaucoup de temps et c'est un site très fréquenté.

Répondre

4

C'est génial d'apprendre que vous avez du succès avec CouchDB.

Je vous suggère d'utiliser le staging-and-upgrade technique décrit dans le wiki. Il faut un peu de préparation pour travailler, mais une fois que vous l'avez fait fonctionner, cela fonctionne très bien sans effort humain.

Questions connexes