Thema: Delphi Firebird Embedded

Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#30

Re: Firebird Embedded

  Alt 27. Okt 2009, 07:53
Hallo,

Zitat:
Jetzt habe ich irgendwo gelesen, dass bei Interbase(die Open Source Version woraus Firebird entstanden ist) ein READ COMMITE für den Server ständiger Stress bedeutet, angeblich muss dadurch die die Transaction Iventory Page aller Transaktionen jedes Mal neu zusammengestellt werden, wenn ein READ COMMITE verwendet wird.
Transaction Iventory Page - TIP

Fast richtig.
Jede neu erzeugte Transaktion bekommt eine Liste der "interessanten" Transaktionen mit,
nennen wir das mal so.
Irgendwann ist jede Transaktion uninteressant,
- wenn die diese erzeugt hat, (hard) committed ist
- es keine früheren Transaktionen mehr gibt
(die diese Trans. in der eigenen TIP haben)
jaja, so einfach ist es nicht, aber lassen wir das mal stehen

Bei einem SoftCommit wird aber die originale TIP kopiert und weiterverwendet.
Sind in der Zwischenzeit einige der sich dort befindlichen Transaktionen "uninteressant",
bleiben die trotzdem drin, wir haben ja kopiert,
statt eine neue TIP zu erzeugen.

das verballert
1. unnötig Speicher
2. muss die viel zu grosse TIP immer wieder (komplett) durchsucht werden

Das war mal vereinfacht.
Unter IBPhoenix.com kann man das sich auch komplizierter erklären lassen
(Stichwort MGA, Multi Generation Architecture)

Die ZEOS nur SoftCommits kann (neue Version ist gerade raus, wie sieht es damit aus ???),
wird der Server mit der Zeit immer langsamer.
Es hilft dann nur ein Beenden aller Anwendungen (Disconnect/Connect reicht).
Abhilfe bei ZEOS ist z.B. bei jedem Form ein neues Connect zu machen.


Heiko
Heiko
  Mit Zitat antworten Zitat