RiCell: .gap und .idx -> gzip

Ideen und Vorschläge sind willkommen.

RiCell: .gap und .idx -> gzip

Beitragvon PCA42 » Do Apr 16, 2009 9:05 pm

Die .gap und die .idx sind vom Inhalt her schön sortiert. Wenn die gleich als Gzip-Stream behandelt werden, läßt sich da sicher Platz sparen.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: RiCell: .gap und .idx -> gzip

Beitragvon Quix0r » Mo Mai 25, 2009 3:32 pm

Das kann für "kleine" Festplatten von großem Interesse sein. Muss ja nur beim Laden beim Startup und beim Speichern am Ende passieren.

Zwischendurch - also beim Indexieren und Flushen - könnten unkomprimierte Dateien erzeugt werden, um Resourcen zu sparen. Beim Shutdown bzw. Startup nach Crash könnten diese dann gleich komprimiert werden.

Um den Standart einzuhalten schlage ich eine zweite Dateierweiterung .gz hinten dran vor. Also .gap.gz und .idx.gz

Macht das mit gängigen Windows-Versionen noch Probleme?
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: RiCell: .gap und .idx -> gzip

Beitragvon PCA42 » Mo Mai 25, 2009 5:19 pm

Quix0r hat geschrieben:Zwischendurch - also beim Indexieren und Flushen - könnten unkomprimierte Dateien erzeugt werden, um Resourcen zu sparen. Beim Shutdown bzw. Startup nach Crash könnten diese dann gleich komprimiert werden.

Die Dateien werden "zwischendurch" nicht erzeugt. Beim Start von Yacy werden sie gelesen und gelöscht, beim Beenden erzeugt.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: RiCell: .gap und .idx -> gzip

Beitragvon Quix0r » Di Mai 26, 2009 10:25 am

Ah, okay. Dann ist das ja hinfällig. :)
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: RiCell: .gap und .idx -> gzip

Beitragvon Orbiter » Di Mai 26, 2009 11:13 am

hm, ja also: die gap- und idx-Dateien sind ja eigentlich nicht groß, hier ist das Platzproblem damit auch nicht so groß. Die Dateien sind nur für einen schnellen Start da, aber es stimmt schon: warum nicht komprimieren wenns gut geht. Das Problem ist aber: die Dinger sind ja dafür da, damit der Start schnell geht, würde also eine Komprimierung und dekomprimierung die Geschwindigkeit drücken? Möglich, oder auch nicht, ggf. geht das Schreiben und lesen sogar schneller, wenn man IO spart und die Performance fürs gzip ausreicht. Man kann das nur einfach mal ausprobieren. Daher habe ich da mal etwas gebaut heute morgen in der S-Bahn, aber noch nicht ausprobiert. Commit kommt demnächst, aber wie gesagt nicht als fertige Lösung sondern um mal was herumzuprobieren wie das mit der Performance ist.
Orbiter
 
Beiträge: 5797
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: RiCell: .gap und .idx -> gzip

Beitragvon dulcedo » Di Mai 26, 2009 12:26 pm

Ich würde alle Aktionen die Plattenplatz auf Kosten von Hauptspeicher sparen hintenanstellen weil dazu die Hardware in der breiten Masse noch nicht weit genug ist. Ein YaCy kann ich heute fast genauso gut an einem exclusiven USB-Kanal betreiben wie auf einer direkt angeschlossenen SCSI-Platte, Festplattenplatz ist sicher nicht das Problem.
YaCy will doch eigentlich brachliegende Ressourcen zur Verfügung stellen, nicht den Benutzer dazu nötigen die Ressourcen erst aufzurüsten.
Im Fall von Hauptspeicher geht das sehr schnell in die unökoligische Richtung Austausch anstelle von akzeptabler Erweiterung, bitte auch mal aus diesem Blickwinkel betrachten. Polemisch: Oder wer zahlt mir die Abwrackprämie?
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: RiCell: .gap und .idx -> gzip

Beitragvon PCA42 » Di Mai 26, 2009 1:39 pm

Ich hab heut auch mal eine kleinere (300 MB) Index-Datei mit gzip bearbeitet. Für die gesparten 30% beim Packen lohnt sich meines Erachtens der Rechenaufwand nicht. Das Schreiben (packen) dauert viel länger. Beim Laden (yacy-Start) sollte es keine Verluste geben.

@Dulcedo: Da das Operationen mit Streams sind verbraucht das keinen Arbeitsspeicher. Gzip wird auch bereits für DHT eingesetzt.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: RiCell: .gap und .idx -> gzip

Beitragvon PCA42 » So Jun 21, 2009 6:31 pm

Hab da heute beim Anschauen der Datenbank-Struktur noch eine andere Idee gehabt.

In den Blob-Dateien kann ein Datensatz nur 2 GB groß sein (int wird für die Größe verwendet). In den Index-Dateien wird jedoch immer die genaue Stelle mit einem long abgebildet. Da die Dateien immer im Stück gelesen und geschrieben werden, kann man doch die Werte über eine Addition der einzelnen Int ermitteln. Damit ist statt dem long auch nur ein int nötig. Statt 20 nur noch 16 Byte pro Eintrag. 20% ganz einfach gespart. ;)
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home


Zurück zu Wunschliste

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste