fosdem 2010 gt.m and openstreetmap
DESCRIPTION
Geodata in a schemafree database. Using GT.M to implement XAPI for OpenStreetMap.TRANSCRIPT
GT.M and OpenStreetMap
Geodata in aschema-free database
FOSDEM 2010 :: Brussels :: February 7th, 2010
GT.M Rock Solid. Lightning Fast.
OpenStreetMap
A free map of the planet Free geospatial data Licensed under CC-BY-SA
Created from Crowd-sourced contributions 200,000 registered users 1,000+ contributors per day
Used for: Maps Navigation / routing OpenCycleMap.org OpenPisteMap.org iPhone apps Android apps Crisis mapping
© Constantin Litvak
GT.M Rock Solid. Lightning Fast.
Coverage
CC-BY-SA 2.0 © OpenStreetMap
GT.M Rock Solid. Lightning Fast.
Earthquake!
GT.M Rock Solid. Lightning Fast.
Haiti – January 12th 2010
GT.M Rock Solid. Lightning Fast.
Haiti – January 14th 2010
GT.M Rock Solid. Lightning Fast.
What's GT.M?
Schemaless database
Key/value pairs
Mature
Mission critical - banking
Mission critical - healthcare
Layered SQL, OODB, M/DB, etc
GT.M Rock Solid. Lightning Fast.
The OpenStreetMap database
Nodes: 0.5 billion
Ways: 25 million
Relations: 100,000
Tags
highway=motorway
name=Brussels
amenity=zoo
foo=bar
REST based API
GT.M Rock Solid. Lightning Fast.
Data Schema
GT.M Rock Solid. Lightning Fast.
The Main OpenStreetMap Database Server
2 x Intel Xeon Quad Core 2.5Ghz 10 x 450Gb 15k rpm 32 GB ram PostgreSQL 8.3
One capability: Query by area
0.25² degrees
GT.M Rock Solid. Lightning Fast.
The OpenStreetMap XAPI Server
XAPI = Extended API 1 x Athlon 64 3000+ 2 x 300Gb 10k rpm 4 GB ram GT.M 4.3
Capabilities: Query by area Query by tag
GT.M Rock Solid. Lightning Fast.
Quadstrings
adaabcdcabaadab
Geospatial Index
GT.M Rock Solid. Lightning Fast.
GT.M Data
^way(27016525)="adaabcdcabaadab"^way(27016525,1)=296138118^way(27016525,2)=296138119^way(27016525,3)=296138120^way(27016525,4)=296138121^way(27016525,5)=296138118
^waytag(27016525,"addr:housenumber")=2^waytag(27016525,"building")="yes"
^wayx("building","*","adaabcdcabaadab",27016525)=""^wayx("building","*","adaabcdcabaadab",27028298)=""^wayx("building","*","adaabcdcabaadab",27028299)=""^wayx("building","*","adaabcdcabaadab",27028326)=""^wayx("building","*","adaabcdcabaadab",27028327)=""^wayx("building","*","adaabcdcabaadab",27035972)=""^wayx("building","*","adaabcdcabaadab",27035973)=""^wayx("building","*","adaabcdcabaadab",27035974)=""^wayx("building","*","adaabcdcabaadab",27035975)=""^wayx("building","*","adaabcdcabaadab",27035984)="“
<way id='27016525'><way id='27016525'> <nd ref='296138118'/><nd ref='296138118'/> <nd ref='296138119'/><nd ref='296138119'/> <nd ref='296138120'/><nd ref='296138120'/> <nd ref='296138121'/><nd ref='296138121'/> <nd ref='296138118'/><nd ref='296138118'/> <tag k='addr:housenumber' v='2'/><tag k='addr:housenumber' v='2'/> <tag k='building' v='yes'/><tag k='building' v='yes'/> </way></way>
GT.M Rock Solid. Lightning Fast.
Conclusion
GT.M is good for:
Massive datasets High performance on low end hardware Robust and mature Highly adapatable NoSQL
GT.M Rock Solid. Lightning Fast.
CC-BY-SA 2.0 Image © ITO! Data © OpenStreetMap
Thank you
openstreetmap.org
fis-gtm.com
georgejames.com
Questions?