Ich recherchiere derzeit für ein Uni-Projekt, bei dem es von Vorteil ist, eine Postgresql database zu sharden.
Ich habe ein Setup mit 3 doppelten Servern erstellt, die 11 Terabyte pro Stück aufnehmen können mitt der Stackoverflow database auf PostgreSQL 11.
Zuerst möchte ich die Leistung auf einem einzelnen node, dann auf einem einzelnen node mit Partitionierung und schließlich auf mehreren nodes mit Sharding messen. Für die Metriken denke ich an die Verwendung von SQLQueryStress.
Ich bin ein PostgreSQL-Neuling und habe mich gefragt, ob jemand ein Feedback zu meiner Idee geben möchte. Ich würde gerne etwas Neues machen, aber das ist schwer in Bezug auf meine Unerfahrenheit.
Mit freundlichen Grüßen
P.S.
Außerdem bin ich niederländisch, so ist mein Deutsch nicht perfekt
Ich glaube nicht dass das Testen einzelner (isolierter) Statements eine vernünftige Beurteilung der Vorteile von Sharding zeigen könnte.
Nach meinem Verständnis wird Sharding erst dann einen Vorteil bieten wenn viele Zugriffe gleichzeitig erfolgen die auf die verschiedenen Shards verteile werden können. Z.B. wenn mehrere Auswertungen die nur Daten für ein Land benötigen gleichzeitig laufen. Wenn die Daten eines Landes jeweils auf einem eigenen Shard liegen, dann ist der Gesamtdurchsatz sicher höher. Jede Abfrage für sich wird dadurch aber nicht schneller.
Deswegen wäre vermutlich ein Lasttest-Tool wie pgbench (dort kann man die SQL Statements auch konfigurieren), HammerDB oder eventuell JMeter die bessere Wahl.
Wir haben unser Papier eingewickelt. Hier ist eine Link zur endgültigen Version. Denken Sie daran, dass dies eine nicht veröffentlichte Studie von nur 3 Wochen ist und ein Masterprojekt des ersten Jahres ist. Danke für Ihre Hilfe.