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

Florian Lohoff f at zz.de
Di Sep 7 13:20:27 UTC 2010


On Tue, Sep 07, 2010 at 12:07:21PM +0200, Bernhard Zwischenbrugger wrote:
> 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.

Die bloecke sind in einzelnen files - D.h. kein index sondern nur durch
arithmetik kann ich den dateinamen bzw pfad erzeugen. Das wird schwieriger
wenn die bounding box halt mehrere bloecke beinhaltet - aber dennoch moeglich.

Innerhalb der bloecke wird dann eine lineare suche angewendet was jetzt in
anbetracht von 256kbyte bzw X Megabyte ja kein problem darstellt.
Die TRAPI haelt die Daten sogar superklein d.h. 4KByte etc - Ist natuerlich
reichlich suboptimal fuer die heutigen Festplatten aber in anbetracht der
Programmiersprache perl muss halt die datenmenge die linear durchsucht wird
klein gehalten werden.

> Das wären 3 Zugriffe auf die Festplatte um die Daten zu bekommen. Auf  
> meinem Laptop dauert ein Zugriff ca. 11ms.

1 Zugriff - Weil ich den dateinamen berechnen kann. Stimmt natuerlich nicht
denn man muss durchaus mal mehrere plattenzugriffe allein fuer ein "open" auf eine
datei rechnen (dindex, directory entry, inode, indirect blocks etc)

> 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.

Es ist hoellen komplex das zeugs - das ist oben nur ansatzweise das was man braucht.
Wo legt man ways ab? Die koennen ja durch mehrere bboxen gehen? Was ist mir relations
die ja von haus aus keine position haben?

Was ist wenn der user einen node haben will fuer den nur die "id" bekannt ist aber
nicht die position d.h. es muss auch einen globalen node index geben der dann jeweils
den block adressiert. Und kommen wir dann zum thema inkrementelle updates die ja
zeitgleich zu read accesses laufen muessten.

Flo
-- 
Florian Lohoff                                                 f at zz.de
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 827 bytes
Beschreibung: Digital signature
URL         : <http://lists.openstreetmap.org/pipermail/talk-de/attachments/20100907/8bf7f11b/attachment.sig>


Mehr Informationen über die Mailingliste Talk-de