Domanda

Credo letto da qualche parte che quando viene richiesta una vista della "mappa" è eseguito solo attraverso i documenti che sono stati aggiunti dall'ultima volta che è stato richiesto? Come è determinata? Pensavo di aver visto qualcosa su un numero di sequenza. È questo qualcosa che si può arrivare a? La sua non è una parte del UUID finale sul campo _rev è?

Un modo per forzare un 'Recalc' di tutta la vista (in tutti i record)?

È stato utile?

Soluzione

La sezione su Visualizza rilevamenti Panoramica tecnica è una grande guida per questo .

Il costruttore vista utilizza il database di sequenze ID per determinare se il gruppo di viste è completamente up-to-date con il database. In caso contrario, il motore di visualizzazione esamina i tutti i documenti del database (in ordine sequenziale al sacco) modificati dopo l'ultimo aggiornamento. I documenti vengono letti nell'ordine in cui si verificano nel file su disco, riducendo la frequenza e il costo della testina del disco.
Come documenti vengono esaminati, i valori delle righe precedenti vengono rimossi dagli indici vista, se esistono. Se il documento viene selezionato da una funzione di visualizzazione, i risultati funzionali sono inseriti nella vista come una nuova riga.

CouchDB primi controlli per vedere se niente è cambiato in tutto il database utilizzando una sequenza id (che viene aggiornato ogni volta che c'è un cambiamento a qualsiasi documento nel database). Se qualcosa è cambiato si va alla ricerca di tali documenti ed esegue la funzione di mappa su di loro.

In realtà non dovrebbe essere alcuna necessità di ricostruire / rigenerare i vostri punti di vista dal momento che in modo incrementale aggiorna come si modificano i documenti (si noti che non aggiornerà la vista fino a quando lo si utilizza però). Con il cappello detto in un modo (e sono sicuro che ci sia un modo migliore) sarebbe quello di rimuovere il documento di design che descrive la vista e reinserirla visto che un documento di progettazione non è diverso (quasi) da un documento normale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top