Hood-Bildung - Gemeindegrenzen
Steffen Winkler
freifunk at steffen-winkler.de
Fr Sep 21 12:40:57 CEST 2018
Hallo Adrian,
also so etwas habe ich noch nicht gehört. Du zweifelst hier die
Intelligenz der Entwickler der Datenbank selbst an. Wir arbeiten bei uns
mit einer sehr großen MysqL- und Posgres-Datenbank und teilweise auch
mit sehr viel Last. Sicher muss einiges auch atomar abgearbeitet werden,
also es soll keiner dazwischen pfuschen. Wie man etwas zusammenfasst,
geht über verschiedene Wege, entweder über eine zusammengefasste Query
oder über Transaktionen. Aber am Ende regelt die Datenbank ganz allein,
wie die Abfragen nacheinander oder parallel verarbeitet werden. Deswegen
sorgt man mit cleveren Queries dafür, dass so eine atomare Operation
sehr schnell geht, denn es entsteht für die folgenden Abfragen einfach
nur Wartezeit. Im schlimmsten Fall läuft man in einen Timeout aber dann
hat man etwas grundsätzlich falsch gemacht. Deadlock heißt, dass min. 2
in Abhängigkeit voneinander warten und es sich nie auflösen kann. So
etwas passiert bei der Datenbank nicht, weil Queries immer zu einem Ende
kommen werden. Der Intelligenz der Datenbank ist es überlassen, ob sie
die ganze Tabelle lockt um eine Warteschlange aufzubauen oder ob sie das
Zeilenweise macht. Beides hat Vorteile. Schreibt man selbst
Parallelverarbeitung mit Threads oder Prozessen, kann es schon Deadlocks
geben aber so etwas wird in modernen Programmiersprachen anders
geregelt, hat man als Entwickler nichts mehr mit zu tun.
Grüße von Steffen.
Mehr Informationen über die Mailingliste franken