2011-02-02 5 views
1

Je cherche une solution pour ajouter de la persistance à mon application native-code. Il devrait être simple (pas de SQL), rapide, et surtout fiable.Base de données simple, rapide et fiable (NoSQL)

La meilleure approche que je peux penser est l'utilisation de fichiers mappés en mémoire. C'est aussi simple et rapide que possible - vous stockez simplement les valeurs dans des tableaux de données simples en "mémoire". Cependant, je ne pense pas que ce soit très fiable - une panne de courant pourrait laisser la base de données dans un état incohérent ou corrompu. La possibilité de synchroniser de manière transactionnelle un groupe de fichiers mappés en mémoire sur le disque permettrait de résoudre ce problème, mais je ne pense pas que ce soit possible. En outre, à moins que le système de fichiers ne prenne en charge les clichés ou le clonage COW (par exemple, Brtfs), les sauvegardes impliquent l'arrêt total de l'application pendant la copie des fichiers.

Est-ce que quelqu'un a de meilleures idées?

+0

Mémoire ≠ Persistant. – coreyward

+1

Pas de SQL, qu'en est-il de SQLite? est-ce juste la base de données que vous essayez d'éviter? SQLite est juste un fichier plat .. – caesay

+0

@coreyward: umm, vous savez ce qu'est un fichier mappé en mémoire, non? Modifier la "mémoire" d'un fichier est mappé pour éditer également le fichier sur le disque, mais pas immédiatement. @Tommy: Je veux juste éviter la conversion inutile vers/à partir de chaînes, échappement de chaîne etc –

Répondre

0

Votre liste d'exigences ressemble à Redis. Voir http://redis.io/ pour plus d'informations.

Une autre possibilité est Cassandra. Voir http://cassandra.apache.org/ pour plus d'informations à ce sujet.

+0

Je pense qu'il cherche une solution plus simple. – arthurprs

+0

Merci. J'ai regardé Cassandra mais cela semblait exagéré. Tout ce qui se concentre sur l'évolutivité sera probablement trop pour mes besoins. –

0

RocksDB ou LevelDB d'autres grandes options.

Questions connexes