Ich möchte mehrere Raspberrys (und vielleicht auch noch allgemein anderen Linux-Rechner) zu einem Verbund zusammenfügen. Und zwar ganz normal über das Netzwerk. Soweit so gut. Nun sollen auf jedem der Rechner bestimmte Hintergrundprogramme laufen, welche die angeschlossene Hardware ausliest, und zwar mit beliebiger Geschwindigkeit (ich denkle da so an eines bis zu 20 Werte pro Sekunde). Diese Werte sollen nun nicht irgendwie angezeigt werden, sondern in einer (verteilte) Datenbank weggesschieben werden. Hierzu sollte es eine linrary geben, welche ich zu meinen Ausleseprogrammen einfach hinzulinken kann und welche u.a. die Funktionen schreibe_wert und lese_wert bereitstellt.
Verteilte Datenbank deshalb, weil das ganze auf allen Rechnern im Verbund genauso funktionieren soll, und ich möchte nicht bestimmen muessen, wo die werte tatsaechlich gespeichert werden. Überall sollen mit den gleichen Funktionen werte gelesen und geschrieben werden können. Natuerlich moechte ich auch mitbekommen, wenn ein anderer Rechner einen neuen Wert in die Datenbank geschrieben hat. Ich woll dann ggf. eine Routine triggern, die dann einen anderen Wert berechnet, und den wieder in die Datenbank schreibt. Und so weiter. ich hoffe, ich habe mich verstaendlich ausgedrückt. Wichtig ist:
Auf jedem beliebigen rechner können sich Programme anmelden, dass die Aenderungen eines bestimmten wertes mitbekommen wollen (z.B. über eine callback-routine). Irgendow im Verbund könnte dann auch ein Programm laufen, was einige Werte in echtzeit grafisch anzeigt.
Es sollte niemals ein in die Datenbank geschriebener Wert verlorengehen. Änderungen sollen mit kleinst möglicher Verzögerung an alle anderen programme (welche diese Werte benötigen) weiteregereicht werden.
Die Datenbank muss einen guten Durchsatz haben,
also alle Werte sollten mit bis zu 20 pro Sekunde zuverlaessig aufgenommen werden können und der ganze Mechanismus ikm Hintergrund (mitteilungen an andere Programme auf anderen rechnern) soll ganz transparent ablaufen. Kein rechner soll ausgezeichnet sein (also kein Server-Client modell).
Welche Software (so es die gibt) würde man hierfür einsetzen?