Ergebnis 1 bis 10 von 10

Thema: verteilte Datenbank

  1. #1
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard verteilte Datenbank

    Hallo,

    Ich stehe vor folgendem Problem:

    - Es gibt 3 örtlich getrennte Filialen.
    - Diese sollen auf den gleichen Datenbestand zugreifen können.
    - Eine VPN-Lösung ist zu langsam (Alle Filialen ins gleiche Netz einbinden und auf einen Server zugreifen lassen)

    Meine Idee war es, die Vernetzung über verteilte Datenbanken zu machen...

    Jetzt wüsste ich erst mal gerne ob es da Erfahrungswerte gibt bezüglich der Geschwindigkeit. (Pro Filiale etwa 12 Rechner, welche Internetverbindung sollten die Filailen dann mindestens haben?)

    Mein Plan wäre halt der, das in jeder Filaile ein DB-Server steht. Diese würden sich dann per PG_Cluster oder PG_Pool im Hintergrund "austauschen".

    Es soll möglich sein, dass Mitarbeiter in Filaile A einen Artikel anlegen und die Mitarbeiter aus Filiale B dann z.B. mit diesem Artikel einen Kaufvertrag eingeben können, oder auch diesen Artikel nochmals verändern. -> Daher fallen Slony oder andere DB-Master/Slave-Varianten wohl aus.

    Hat damit schonmal jemand Erfahrungswerte gesammelt?

    Gruß
    Ingo

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen
    Hallo,

    Ich stehe vor folgendem Problem:

    - Es gibt 3 örtlich getrennte Filialen.
    - Diese sollen auf den gleichen Datenbestand zugreifen können.
    - Eine VPN-Lösung ist zu langsam (Alle Filialen ins gleiche Netz einbinden und auf einen Server zugreifen lassen)

    Meine Idee war es, die Vernetzung über verteilte Datenbanken zu machen...

    Jetzt wüsste ich erst mal gerne ob es da Erfahrungswerte gibt bezüglich der Geschwindigkeit. (Pro Filiale etwa 12 Rechner, welche Internetverbindung sollten die Filailen dann mindestens haben?)

    Mein Plan wäre halt der, das in jeder Filaile ein DB-Server steht. Diese würden sich dann per PG_Cluster oder PG_Pool im Hintergrund "austauschen".

    Es soll möglich sein, dass Mitarbeiter in Filaile A einen Artikel anlegen und die Mitarbeiter aus Filiale B dann z.B. mit diesem Artikel einen Kaufvertrag eingeben können, oder auch diesen Artikel nochmals verändern. -> Daher fallen Slony oder andere DB-Master/Slave-Varianten wohl aus.

    Hat damit schonmal jemand Erfahrungswerte gesammelt?

    Gruß
    Ingo
    Master-Master ist nicht, erst recht nicht bei lahmer Anbindung. Welche Datenmengen fallen denn an? Vielleicht wäre ein zentraler Server, auf den alle zugreifen, die einfachste Lösung. Dies geht problemlos, wenn sich die Abfragen auf Single-Recod-Inserts und -Selects reduzieren lassen bzw. da keine großen Datenmengen sind.

    Was sind für Clients im Einsatz? ODBC ist eher zäh.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Ich gehe nicht davon aus, dass zwei Filialen gleichzeitig Daten bearbeiten wollen, oder? Also würde eine "zeitnahe" Replikation genügen.

    Zusätzlich halt noch Methoden zum Generieren eindeutiger IDs (UUID) und ggf. zum Sperren von Datensätzen in anderen Filialen.

    Sollte sich machen lassen, aber für ein genaues Konzept müssen mehr Details bekannt sein.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Ich gehe nicht davon aus, dass zwei Filialen gleichzeitig Daten bearbeiten wollen, oder? Also würde eine "zeitnahe" Replikation genügen.
    Ich zitiere mal:
    Code:
    Es soll möglich sein, dass Mitarbeiter in Filaile A einen Artikel anlegen und die Mitarbeiter aus Filiale B dann z.B. mit diesem Artikel einen Kaufvertrag eingeben können, oder auch diesen Artikel nochmals verändern.
    Das klingt wenig spektakulär. Filiale A arbeitet auf DB in Zentrale, und dann Filiale B. Beide bearbeiten einen (!) Datensatz. Wenig Traffic. Es ist wohl auch unwahrscheinlich, der der an A erfaßte Datensatz gleichzeitig von B und C aus zu bearbeiten ist. Und selbst wenn, select for update existiert. Die Notwendigkeit einer umfangreichen Replikation sehe ich da nicht. Und auch nicht die Notwendigkeit, sowohl an A als auch an B einen eigenen Server hinzustellen.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Stimmt schon. Die Frage ist halt, wieviel Zeit zwischen Artikel anlegen und Verkaufen des Artikels liegt. In einer vernünftigen Buchhaltung sind die Artikel schon beim Einkauf angelegt und es vergehen Stunden/Tage/Wochen, bis der Artikel auch verkauft wird.

    Von daher bleibt weiterhin die Frage offen, wie "zeitnah" das ganze ablaufen soll.

    Was wiederum zu meiner letzten Aussage führt: es sind zu wenig Daten vorhanden, um da auch nur ansatzweise helfen zu können ;-)
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  6. #6
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard

    Danke erstmal fürs Brainstorming...

    Es ist wohl von folgendem auszugehen:
    Es gibt 10.000 Lieferanten, 120.000 Artikel, 200.000 Kunden und 500.000 Kaufverträge. (Ein Kaufvertrag hat etwa 10 Positionen).

    Pro Tag kommen vielleicht 30 Kaufverträge und 29 Kunden dazu.
    Einmal im Monat kommen dann vielleicht 20 Lieferanten und 300 Artikel dazu.

    Zum Vergleich: Wenn ich in unserem Netzwerk einen Anmeldevorgang (zur Datenbank) durchführe dauert dies etwa 2,3 sekunden.
    Der selbe Vorgang dauert über VPN zum Kunden 25 sekunden.

    In unserer Firma haben wir 1&1 DSL 16.000
    Download-Geschwindigkeit: 11.087 kbit/s (1.386 kByte/s)
    Upload-Geschwindigkeit: 881 kbit/s (110 kByte/s)

    Der Kunde hat Arcor DSL 2000
    Download-Geschwindigkeit: 1.928 kbit/s (241 kByte/s)
    Upload-Geschwindigkeit: 485 kbit/s (23 kByte/s)

    Es ist (wie ads bemerkte) ausreichend eine "zeitnahe" Replikation zu haben.
    Denn es wird so sein, dass in der Filiale, wo der Kunde angelegt wird auch dessen Kaufvertrag und deren Positionen erfasst werden.

    Lediglich einige Statistikmodule sind übergreifend. (Chefinfo soll z.b. alle Kaufverträge aus allen 3 Filialen anzeigen.) Aber selbst da dürfte ruhig ein Versatz von 5 bis 10 minuten drin sein...

    Innerhalb der Filialen sollen die Datenbankzugriffe aber blitzeschnell sein.
    Wenn ich z.B. einen neuen Kunden anlege will ich nicht 1 minute warten, bis ich ihn geladen habe und in einem Kaufvertrag verwenden kann. Durchaus können aber dann ruhig 5 minuten vergehen, bevor dieser Kunde/Kaufvertrag bei den anderen beiden Filailen auftaucht. Wenn er aber dann mal dort auftaucht, soll man auf ihn wieder schnell zugreifen können (Beispielsweise der Kommissionist, der die Kundenwaren an die Speditionen weiterreicht / plant)

  7. #7
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen

    Zum Vergleich: Wenn ich in unserem Netzwerk einen Anmeldevorgang (zur Datenbank) durchführe dauert dies etwa 2,3 sekunden.
    Der selbe Vorgang dauert über VPN zum Kunden 25 sekunden.
    Warum dauert das so lange?

    Über eine 2 MBit-Leitung (synchron beide Richtungen):

    Code:
    kretschmer@tux:~$ time psql -h apache -p 5433 test -c "select version()";
                                                      version
    -----------------------------------------------------------------------------------------------------------
     PostgreSQL 8.4devel on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7), 32-bit
    (1 row)
    
    
    real    0m0.413s
    user    0m0.068s
    sys     0m0.020s
    kretschmer@tux:~$
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  8. #8
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard

    Das dauert so lange, weil da noch mehr im Hintergrund stattfindet...

    Es wird überprüft ob der User in der Datenbank eingatragen ist, dann werden sämtliche Rechte die dieser User auf Objekte unserer Warenwirtschaft hat eingelesen usw...

    Was denkst du denn was die bessere Strategie ist:
    - Alle 3 Filialen brauchen einen sehr schnellen Internetzugang und sie greifen alle auf einen Server zu
    - Jede Filiale hat einen eigenen Server und diese synchronisieren sich im Hintergrund (Einige Tabellen müssen aber Zentral sein z.B. haben wir eine Tabelle, in der die PK's für die Datensätze verwaltet werden)

    Gruß Ingo

  9. #9
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen

    Was denkst du denn was die bessere Strategie ist:
    - Alle 3 Filialen brauchen einen sehr schnellen Internetzugang und sie greifen alle auf einen Server zu
    - Jede Filiale hat einen eigenen Server und diese synchronisieren sich im Hintergrund (Einige Tabellen müssen aber Zentral sein z.B. haben wir eine Tabelle, in der die PK's für die Datensätze verwaltet werden)

    Gruß Ingo
    Replikation über nicht wirklich schnelle Leitungen ist nicht wirklich lustig. Slony z.B. fängt wieder von vorne an, wenn die Leitung mal weg bricht. Ich würde also eher zur Lösung mit einem Server in der Zentrale greifen (und den Traffic versuchen gering zu halten).

    Okay, es muß ja nicht eine Replikation sein, es reicht, die Änderungen zu übertragen. Das müßtest Du dann aber ausprogrammieren. Ich stelle mir das nicht trivial vor.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #10
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.055

    Standard

    Es geht, das kann man lösen.

    Ich würde trotzdem die Daten replizieren, mit 2 Versionsnummern versehen und zusätzlich ein Advisory Locking übers Netzwerk hinweg versuchen. Das kostet dann nicht viel Traffic.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

Ähnliche Themen

  1. verteilte Datenbanken
    Von marcel im Forum Allgemeines
    Antworten: 11
    Letzter Beitrag: 18.06.2009, 10:18
  2. Frage Kopieren mit Select von Datenbank zu Datenbank
    Von franz_m22 im Forum Migration
    Antworten: 2
    Letzter Beitrag: 10.04.2009, 22:32
  3. PostgreSQL / Speicher über verteilte Systeme?
    Von CenText im Forum Allgemeines
    Antworten: 2
    Letzter Beitrag: 06.07.2008, 19:38
  4. Verteilte Datenbank
    Von m_haussner im Forum Konfiguration
    Antworten: 1
    Letzter Beitrag: 24.01.2007, 07:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum