2012-09-24 14 views
5

CouchDB görünüm API'sinin stale=update_after özelliğinin nasıl çalıştığını merak ediyorum.CouchDB's stale = update_after yazılımının performansı nedir?

O zamanlar bayat sonuçlar verir ve here görebilirsiniz görünümü günceller:

bayat ise = tamam ayarlanır, CouchDB bayat olsa bile görünümü yenilenmez, yararı geliştirilmiş olan sorgu gecikmesi Stale = update_after ayarlanmışsa, eski sonuç döndükten sonra CouchDB görünümü güncelleyecektir. update_after, 1.1.0 sürümünde eklendi. görünüm endeksi güncellenmesi birkaç dakika gerektirecek kadar - -

Ben bazı belgeleri sayıda taktınız varsayın ve sonra stale=update_after ile arka arkaya iki kez görünümü sorgula. İlk sorgu çok hızlı bir şekilde geri dönecek; update_after'un tüm noktası budur.

Sorum, ikinci sorgu da eski sonuçları hızlıca döndürecek mi yoksa görünümün güncelleştirmeyi bitirmesini bekleyecek mi?

cevap

5

İkinci sorgu da eski sonuçları döndürür. Sorgunun sunucuya ulaştığı anda kullanılabilen kısmi sonuçları kullanır. Belge eklediysen, iyisin.

Ancak, görünümünüzü değiştirdiyseniz, ilk sorgu ilk sorgudaki sonuçları döndürecek ve görüntünün tam bir yeniden oluşturulmasını tetikleyecektir. Yani ikinci sorgu muhtemelen hiçbir sonuç vermeyecek ya da sadece çok az satır olacaktır.

Yani kısa cevap: Sizin durumunuzda, her iki sorgunun da hızlı bir şekilde geri döneceği, ikinci sorgu muhtemelen bir olasılıkla ilk olarak aynı sonucu veren bazı ek satırlarla olacaktır.

Umarım yardımcı olabilirim!

Sevgiler, Bernhard

+1

bu iddia ile iddianızı uzlaştırmak Can: "Bu sonuç döndürülür, ancak görünüm güncelleme tamamlanıncaya kadar, diğer istemciler tarafından yapılan sorgular geciktirebilir sonra indeksi günceller" (http://blog.safaribooksonline.com/2012/03/14/improving-couchdb-performance/) –

+2

Geç cevap için özür dilerim: stale = update_after HER ZAMAN hemen döner. "Diğer istemciler" stale = update_after kullanmıyorsa, sorguları gecikir. Ama bu biraz yanıltıcıdır, çünkü sorguları zaten geciktirilirdi. –

+0

bunu tekrar yanıtladığınız için teşekkürler Bernhard. Bunu bildiğimde DAİMA bana çok yardımcı oldu. – Christian