extend dbf 2TB (Terabyte) max file size

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

extend dbf 2TB (Terabyte) max file size

Beitrag von AUGE_OHR »

hi,

hab diese Message gefunden

https://groups.google.com/forum/#!topic ... Fc6qLTERi8

Code: Alles auswählen

#include "dbinfo.ch"
...
 set( _SET_DBFLOCKSCHEME, DB_DBFLOCK_HB64 )
2014-10-17 14:55 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
+ added support for large index files over 4GB length.
These are slightly modified CDX indexes which stores index page numbers
instead of index page offsets inside index file. This trick increase
maximum index files size from 2^32 (4GB) to 2^41 (2TB). This index
format is enabled automatically when DB_DBFLOCK_HB64 is used. This is
the same behavior as in DBFNTX and DBFNSX for which I added support
for large indexes (up to 4TB) few years ago.

Warning: new CDX indexes are not backward compatible and cannot be
read by other systems or older [x]Harbour versions.
If you try to open new indexes using older [x]Harbour RDDs
then RTE "DBFCDX/1012 Corruption detected" is generated.
When current Harbour *DBFCDX/SIXCDX RDD open index file
then it automatically recognize type of index file so it
will work correctly with both versions without any problem.
In short words: People using DB_DBFLOCK_HB64 should remember
that after reindexing with new Harbour applications old ones
cannot read new CDX indexes.
wäre nicht schlecht wenn das Xbase++ auch hätte ...
p.s. benötigt 64 Bit App
gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: extend dbf 2TB (Terabyte) max file size

Beitrag von Jan »

Jimmy,

dieser Forenbereich ist nicht für harbour vorgesehen. Und die Diskussion um Sinn oder Unsinn von 64 Bit Xbase++ oder ob und wann Alaska das machen wird hatten wir auch schon oft genug. Es genügt nicht wenn Du das hier als schön zu haben deklarierst - das mußt Du mit Alaska diskutieren.Und der Hinweis das Du gerne Dateien mit mehr als 2 TB schrieben möchtest ist vermutlich nicht allzu antreibend für solch eine Umstellung. Wer hat schon im normalen Leben so große Dateien?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: extend dbf 2TB (Terabyte) max file size

Beitrag von brandelh »

Haben wir nicht genug Probleme mit den 2 GB Dateien und den dazugehörigen Indexdateien (Performance, Zuverlässigkeit etc.) ?
Wenn die Datei 10 mal so groß wäre, dauert der Reindex noch länger ;-)

PS: auch die 32 bit EXE kann Memo Dateien über 4 GB verwalten, es geht mit 64 Bit Variablen auch mit 32 Bit.

Was nicht geht ist die LOCK Sperre der Xbase Dateien, da diese nunmal die gerade Hälfe für die Daten und den Rest für Lockoffset verwendet wird.
Man könnte einen Treiber der völlig inkompatibel mit allem ist schreiben (ich nicht) und größere Dateien nutzen, aber das lohnt einfach nicht.
Gruß
Hubert
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: extend dbf 2TB (Terabyte) max file size

Beitrag von ramses »

Macht es überhaupt Sinn derart grosse Datenbestände mit DBF's zu verwalten?

Ich würde dies jedenfalls aus vielen Gründen nicht tun sondern für sowas eine Datenbank bezw. PostgreSQL verwenden.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: extend dbf 2TB (Terabyte) max file size

Beitrag von AUGE_OHR »

hi,

DBF Datei > 2 GB ist nicht das Problem. wie Hubert richtig sagt ist es das Locking und das ist API.
sicherlich habe schon einige darüber nachgedacht wie man die 2 GB überschreiten kann denn es IST möglich.

Ihr geht von "local" 2 TB aus ... schon mal an einen DbServer gedacht :idea:
es gib ja den teuren ADS Server aber es gibt eben auch "kostenlose" DbServer die LetoDB
SQL ist dann keine Alternative wenn man seinen Source Code nicht verändern will

klar das es nur geht mit 64 Bit. Es kann also noch Jahre Dauern bis Alaska auf dem Stand ist.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: extend dbf 2TB (Terabyte) max file size

Beitrag von brandelh »

AUGE_OHR hat geschrieben: Mo, 13. Jul 2020 19:46 DBF Datei > 2 GB ist nicht das Problem. wie Hubert richtig sagt ist es das Locking und das ist API.
sicherlich habe schon einige darüber nachgedacht wie man die 2 GB überschreiten kann denn es IST möglich.
die API (Windows) kann größere Dateien, das "Logische" locking der xBase derivate blockiert den Adressbereich, das ist das Problem.
Mit FOPEN() etc. z.B. kann man größere Dateien öffnen und schreiben.

Auch 32 Bit Systeme, können größere Dateien schreiben, da diese über 2 Register auch 64 Bit Werte darstellen können.
Gruß
Hubert
Antworten