[Talk-de] XAPI Neubauen WAS:Re: XAPI ständig tot

Bernhard Zwischenbrugger bz at datenkueche.com
Di Sep 7 10:07:21 UTC 2010


hi

Der TRAPI Ansatz klingt sehr gut.

Die Welt wird also zerschnitten in Rechtecke die z.B. 256kByte haben und 
nacheinandere
in ein File gespeichert.
Am Anfang des Files muss ein Index sein, der einen direkten Sprung auf 
so einen
256kByte Block ermöglicht.
Sollte der Index zu groß sein, dann muss da ein zweistufiger Index 
gemacht werden.
Der erste Index zeigt also auf einen Index der dann wiederum auf den 
256kByte Block
zeigt.

Das wären 3 Zugriffe auf die Festplatte um die Daten zu bekommen. Auf 
meinem Laptop dauert ein Zugriff ca. 11ms.
3 Zugriffe würden somit 33ms dauern und mit dem restlichen Programm 
zusammen, sollten
Zugriffszeiten von 50ms möglich sein ohne irgendwas zu cachen.
Wenn der Index im Ram bleibt, verkürzt sich das ganze natürlich, wobei 
hier eigentlich schon
ein Festplatten Cache reichen sollte.

Damit wäre das schwierigste Problem - die bbox Suche erledigt 
(theoretisch zumindest).
Die restlichen indexe auf id, tag, ... sind eigentlich einfacher - auch 
wenn sie wohl mehr
Festplatten Speicher brauchen.

lg, Bernhard

>> Am Dienstag 07 September 2010, 08:08:31 schrieb Josias Polchau:
>>      
>>> Ich hatte immer gelernt:
>>> Entweder Schnell oder Platzsparend.
>>>        
>> Das gilt da aber nicht. Im kleinen stimmt das meistens.
>>
>> Wenn aber, wie Flo hier eindrucksvoll gezeigt hat, der Such-Index einerseits
>> größer ist als der zu erwartende Arbeitsspeicher und andererseits der
>> Suchindex fast genau so groß ist wie die Daten selbst, dann gilt deine Regel
>> eben nicht mehr.
>>
>> Dann lieber weniger Daten, die man komplett im Arbeitsspeicher halten kann,
>> diese mit einem groben Index partitionieren und dann in einem Segment
>> sequenzielle Suche. Das ist schneller als eine Index-basierte Suche auf der
>> Platte.
>>      
> Yep - wenn der index nicht mehr in den speicher passt dann macht das Thema SQL
> nicht mehr sooo viel spass. Und wer hat schon>32GB Speicher.
>
> Es lassen sich massgeschneidert viel effizentere index bauen weil wir erstmal
> davon ausgehen das wir immer eine bounding box setzen. Lieder einfach bounding
> boxen bauen und dann immer wennns z.b.>1Mbyte/s wird splitten in 2 sub bounding
> boxes die jeweils ~256Kbyte sind ....
>
> Siehe einfach mal TRAPI ...
>
> Man muss auch aufpassen das man das feature der platten eher mal nutzt 1MByte in
> den speicher zu schaufeln als an 20 stellen jeweils nur ein kbyte zu lesen.
>
> Flo
>    
>
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
>    




Mehr Informationen über die Mailingliste Talk-de