AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken firebird embedded und paralleler Zugriff
Thema durchsuchen
Ansicht
Themen-Optionen

firebird embedded und paralleler Zugriff

Ein Thema von khh · begonnen am 25. Jun 2012 · letzter Beitrag vom 27. Jun 2012
Antwort Antwort
Seite 3 von 3     123   
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#21

AW: firebird embedded und paralleler Zugriff

  Alt 26. Jun 2012, 18:59
Zitat:
Geht natürlich nicht unbedingt, wenn die eine Datei auf 'nem Netzlaufwerk nutzen und die Programme keine Verbindung aufbauen können, bzw. sie eh nix voneinander wissen.
Das ist richtig, wenn es verschiedene Hosts sind, braucht man einen Server.
Mehrere Programmzugriffe gleichzeitig auf einem Host geht allerdings, dort gibt es in der FB 2.5 einen globalen, internen Lockmechanismus / Locktable der das regelt.
Zugriffe über ein Netzlaufwerk sind ein "No-Go" beim FB embedded, steht glaube ich sogar im Manual.

Ich wüsste nun aber keine embedded-Datenbank, die concurrent writes ohne manuelles Locking ermöglicht...SQLite kann das ja AFAIK ohne Locking auch nicht.
(allerdings bin ich jetzt auch nicht so der Mensch, der alle embedded-Datenbanken auswendig kennt )
Auf einem Rechner kann das gehen. Was passiert mit den gelockten Datensätzen wenn ein Programm vor dem Unlock abstürzt? Machen die das mit 'nem Haltbarkeitsdatum für ein locking, oder zieht ein Programm dann alle mit in den Tod?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#22

AW: firebird embedded und paralleler Zugriff

  Alt 26. Jun 2012, 20:53
Gute Frage!! Mal ausprobieren...geht über studieren. Allerdings hatte ich beim FB embedded bei abstürzenden Programmen bisher noch nie Probleme mit Locks.
(und ich habe die Programme schon oft durch Programmfehler in der Entwicklungsphase abstürzen lassen..)

Ich weiss allerdings nicht, wie die das intern machen...leider gibt es da kaum interne Specs, da die Tech-Spezifikationen der Webseite immer noch auf dem Stand der 2.0 sind und auch darauf hingewiesen wird, dass die Dokus etwas hinterherhinken.
(kann gut sein, dass es irgendwo versteckt ist, aber die Seite ist leider eh nicht sonderlich übersichtlich...schade eigentlich, FB ist so eine gute Datenbank..)
Würde mich selbst sehr interessieren, wie die neue Embedded-Superclassic-Architektur des 2.5 intern genau funktioniert.
Beim Client-/Server-Modell ist es ja klar, da ein Prozess alles handeln kann, aber wieso die Embedded so funktioniert wie sie funktioniert, wirft schon Fragen auf

Geändert von blackfin (26. Jun 2012 um 21:00 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#23

AW: firebird embedded und paralleler Zugriff

  Alt 27. Jun 2012, 05:47
guten Morgen,

Gute Frage!! Mal ausprobieren...geht über studieren. Allerdings hatte ich beim FB embedded bei abstürzenden Programmen bisher noch nie Probleme mit Locks.
logisch - kanns auch nicht geben, weil Firebird ohne Locks funktioniert und ein komplett anderes Modell verwendet (Multigenerationenarchitektur)



Würde mich selbst sehr interessieren, wie die neue Embedded-Superclassic-Architektur des 2.5 intern genau funktioniert.
Beim Client-/Server-Modell ist es ja klar, da ein Prozess alles handeln kann, aber wieso die Embedded so funktioniert wie sie funktioniert, wirft schon Fragen auf
Helen Borrie bereitet gerade die Fortsetzung ihres Buches vor, das sich auch um FB 2.5 kümmern wird. Und ich vermute ganz stark, dass hier auch das Thema ausführlich behandelt wird. Eine "Beta" Version kann bei IBPhoenix.com auf der EntwicklerCD erworben werden. Damit kann man auch die Weiterentwicklung von Firebird finanziell unterstützen.

GRüße
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#24

AW: firebird embedded und paralleler Zugriff

  Alt 27. Jun 2012, 07:04
Wie es ganz genau funktioniert, das wissen nur die Core-Devs, aber vielleicht reicht dir das: Obwohl Firebird dem MVCC-Modell folgt, verwendet Firebird intern Locks und der "Lock Manager" ist die koordinative Komponente, um gemeinsam benutzte Ressourcen wie Data Pages etc. vor dem gegenseitigen Zugriff zu schützen. So speichert Firebird 2.5 unter Windows z.B. in einem Verzeichnis C:\ProgramData\Firebird sogenannte Lock-Files (Lock-Table), die der Lock-Manager verwaltet. Dadurch ist es auch möglich, dass ein Mischen von Classic/SuperClassic (inkl. Embedded, da auf SuperClassic basierend) für den Zugriff auf eine Datenbank auch schreibend funktioniert. Was man halt nicht machen kann, und was durch eine Fehlermeldung beim Connect von Firebird unterbunden wird ist, ein Mischen von 32 und 64-bit Firebird Prozessen, da sich hier das Layout der Lock-Table unterscheidet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#25

AW: firebird embedded und paralleler Zugriff

  Alt 27. Jun 2012, 08:55
So speichert Firebird 2.5 unter Windows z.B. in einem Verzeichnis C:\ProgramData\Firebird sogenannte Lock-Files (Lock-Table),
Toll, daß heißt wenn ich den FBEmbedded in einem portablen Programm verwende, dann mülle ich alle möglichen Systeme zu?
Ich wollte die Embedded doch grade verwenden, damit das nicht passiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: firebird embedded und paralleler Zugriff

  Alt 27. Jun 2012, 09:01
Naja, zum Einen räumt FB die Dateien ja bei einem regulären Programm-Ende auch wieder auf und im Endeffekt musst Du Dich halt entscheiden, was Du alles an Funktionalität haben willst. Ich will nicht sagen, dass Du (gefühlt) ständig am Nörgeln bist, aber Du legst eine sehr hohe Messlatte an und ich hoffe, dass Du auch in Deinem eigenen Alltagsgeschäft mit den üblichen Randbedingungen (Zeit etc.) diesem Anspruch ebenfalls gerecht wirst.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#27

AW: firebird embedded und paralleler Zugriff

  Alt 27. Jun 2012, 09:03
Es wird auch wieder aufgeräumt.

Ach ja, hatte ich vergessen zu erwähnen: http://dyemanov.blogspot.fr/2012/05/...and-files.html
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#28

AW: firebird embedded und paralleler Zugriff

  Alt 27. Jun 2012, 14:31
Aber auch nur bei "normalem" Programmende ... wer sagt, daß sich mein Programm immer normal beendet?

Na gut, dann hoff ich mal, das räumt auch das Verzeichnis weg.
War ja eher davon ausgegangen, daß es eben nur eine Anwendung pro Datenbankdatei ist ... wer hätte da geglaubt, daß nun doch wieder irgendwas Globales nötig ist.
Aber vielleicht kann man dieses Feature auch einfach deaktivieren?

Schade daß es kein globales Temp-Verzeichnis gibt, denn diese werden regelmäßig automatisch bereinigt. (bei mir privat, was leider nicht überall standardmäßig aktiv ist, und auch auf vielen Servern)
In das C:\Windows\Temp kann nicht jeder reinschreiben und ansonsten hat jeder Benutzer ein Eigenes, wo auch nicht jeder rann kommt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz