NoSql mit meinen eigenen benutzerdefinierten Binärdateien?

Ursprünglich musste ich mit nur 1,5 [TB] von Daten umgehen. Da habe ich nur schnell schreiben / liest (ohne SQL), habe ich mein eigenes flaches Binärdateiformat (implementiert mit python ) entworfen und einfach (und glücklicherweise) meine Daten gespeichert und es auf einer Maschine manipuliert. Natürlich, für Backup-Zwecke, fügte ich 2 Maschinen als exakte Spiegel (mit rsync ) verwendet werden.

Gegenwärtig wachsen meine Bedürfnisse, und es besteht die Notwendigkeit, eine Lösung aufzubauen, die erfolgreich bis zu 20 [TB] (und noch mehr) Daten skalieren würde. Ich würde mich freuen, weiterhin mein flaches Dateiformat für die Speicherung zu verwenden . Es ist schnell, zuverlässig und gibt mir alles was ich brauche.

Die Sache, die ich besorgt bin, ist Replikation, Datenkonsistenz usw. (wie offensichtlich müssen die Daten verteilt werden – nicht all data können auf one machine gespeichert one machine ) über das Netzwerk.

Gibt es irgendwelche ready-made Lösungen ( Linux / python based ), die es mir erlauben würden , mein Dateiformat für die Speicherung zu verwenden, doch würde ich die anderen Komponenten behandeln, die NoSql Lösungen normalerweise bereitstellen? (Datenkonsistenz / Verfügbarkeit / einfache Replikation)?

Grundsätzlich alles, was ich will, ist sicher, dass meine Binärdateien in meinem Netzwerk konsistent sind. Ich verwende ein Netzwerk von 60 Core-Duo-Maschinen (jeweils mit 1GB RAM und 1.5TB disk )

    2 Solutions collect form web for “NoSql mit meinen eigenen benutzerdefinierten Binärdateien?”

    Ansatz: Verteilte Karte in Python mit dem Disco-Projekt reduzieren

    Scheint wie ein guter Weg, sich deinem Problem zu nähern. Ich habe das Disco-Projekt mit ähnlichen Problemen benutzt.

    Sie können Ihre Dateien unter n Anzahl von Maschinen (Prozesse) verteilen und die Karte implementieren und Funktionen reduzieren, die zu Ihrer Logik passen.

    Das Tutorial des Disco-Projektes beschreibt genau, wie man eine Lösung für Ihre Probleme implementiert. Sie werden beeindruckt sein, wie wenig Code Sie schreiben müssen und definitiv können Sie das Format Ihrer Binärdatei behalten.

    Eine weitere ähnliche Option ist die Verwendung von Amazon Elastic MapReduce

    Vielleicht wird ein Teil des Kommentars auf dem Kivaloo-System, das für Tarsnap entwickelt wurde, Ihnen helfen zu entscheiden, was am besten geeignet ist: http://www.daemonology.net/blog/2011-03-28-kivaloo-data-store.html

    Ohne mehr über Ihre Anwendung zu wissen (Größe / Art der Aufzeichnungen, Häufigkeit des Lesens / Schreibens) oder benutzerdefiniertes Format ist es schwer, mehr zu sagen.

    Python ist die beste Programmiersprache der Welt.