iOS CoreData - il des inconvénients à l'activation de sqlite WAL / Write-Ahead Logging

Lors de la WWDC 2013 session '207: Quoi de neuf dans la Base de Données', ils mentionnent que vous pouvez activer SQLite WAL en passant, un dictionnaire lors de l'ajout d'un magasin persistant:

@{ NSSQLitePragmasOption: @"journal_mode = WAL" }

(qui est disponible sur iOS4+ et sera la valeur par défaut pour les futures versions iOS).

Je me demande si ce serait généralement une bonne chose à activer dans mon application pour les précédentes versions iOS trop.

J'ai consulté le SQLite page sur écrire à l'avance de journalisation et les inconvénients qu'ils mentionnent, la plupart d'entre eux ne semblent pas s'appliquer à iOS, à l'exception de:

  • WAL peut-être très légèrement plus lent (peut-être 1% ou 2% plus lent) que l'
    traditionnelles de restauration-journal de l'approche dans les applications que dans la plupart des cas
    lit et rarement écrire.

à peu près tous les avantages de le faire sonner comme ils vont probablement être un avantage sur iOS:

  • WAL est nettement plus rapide dans la plupart des scénarios.
  • WAL fournit plus de la simultanéité comme les lecteurs de ne pas bloquer les écrivains et un écrivain ne bloque pas les lecteurs. La lecture et l'écriture peut être réalisée en même temps.
  • Disk I/O operations a tendance à être plus séquentielle à l'aide de WAL.
  • WAL utilise beaucoup moins de fsync() exploitation et est donc moins vulnérables à des problèmes sur les systèmes où la fsync() de l'appel système est cassé.

Je suis considère que (peut-être sujet à faire quelques vérifications sur mon appli pour assurez-vous de ne pas ralentir les choses) que ce serait une bonne chose pour l'activer, mais est-il un inconvénient que je devrait voir le ou les problèmes connus?

InformationsquelleAutor JosephH | 2013-07-05