Erforschung des Kipppunkts der Sharding

Hallo!

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 :slight_smile:

Mit sharding kann ich Dir aus dem handgelenk jetzt nicht viel sagen, aber Partitionierung: das ist in 12 erheblich schneller und besser als in 11.

Was ist das Ziel mit Sharding, was ihr erreichen wollt?

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.

Was ist überhaupt das Ziel des Versuchs, was soll dieser beweisen?

Hallo,

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.