CouchDB è molto esplicito sui compromessi che effettua. In questo caso specifico, stiamo parlando di avere un database a prova di crash che, purtroppo, può e utilizzerà un sacco di disco fino alla compattazione.
Si ottiene con questa affidabilità e molta concorrenza per le letture. Avrai anche la possibilità di replicare perfettamente con qualsiasi altro nodo. Questo è il bacon di esso. Il fatto di dover compattare a causa dei contatori sbattuti ne fa schifo. Dimentica di andare in giro con _rev_limit. Ti fotterai facendolo perché le revisioni sono così fondamentali per Couch.
Una possibilità che si ha è la registrazione di alcune informazioni, la data e l'ora, IP e altre cose. Dovresti quindi creare una vista che emetta i dati necessari e utilizzare _count come funzione di riduzione. Otterrai le informazioni di cui hai bisogno e altre informazioni utili per l'analisi. Questa è la soluzione "basta creare una vista".
La seconda possibilità sarebbe l'utilizzo di redis (http://redis.io/commands/incr). Redis è abbastanza carino e si adatta bene a questo caso d'uso (http://ai.mee.nu/is_couchdb_the_anti-redis). Questa sarebbe la soluzione "lo strumento giusto per il lavoro giusto".
La terza possibilità sarebbe semplicemente ignorarlo. Potrebbe non essere affatto un problema (se compatti spesso). Questa sarebbe la soluzione "just relax".
Devi prendere il buono con il cattivo e assicurarti che i vantaggi superino gli svantaggi. Misura tutto due volte prima di tagliare/ottimizzare.
Sono d'accordo, ma penso che ci dovrebbe essere un modo migliore per risolvere questo problema. Sto esplorando limitando le revisioni a un determinato documento. Aggiornerà questa domanda con i miei risultati ... –
Alcune ricerche rivelano questo thread - http://www.mail-archive.com/[email protected]/msg01974.html –
Se un database è configurato con _revs_limit = 1, il feed Risoluzione conflitti e modifiche funzionerà ancora? Ipoteticamente, per mantenere un contatore incrementale, possiamo avere una coppia chiave/valore nel documento il cui database è configurato con _revs_limit = 1 Pensieri? Grazie! –