Menzies Distributing the world. Problem The whole world in one - - PowerPoint PPT Presentation

menzies
SMART_READER_LITE
LIVE PREVIEW

Menzies Distributing the world. Problem The whole world in one - - PowerPoint PPT Presentation

Menzies Distributing the world. Problem The whole world in one server API GET node/#id Returns the XML for that node. PUT node/#id Updates the node, returns new version number. DELETE node/#id Deletes the node, returns new version number(?). PUT


slide-1
SLIDE 1

Menzies

Distributing the world.

slide-2
SLIDE 2

Problem

The whole world in one server

slide-3
SLIDE 3

API

GET node/#id Returns the XML for that node. PUT node/#id Updates the node, returns new version number. DELETE node/#id Deletes the node, returns new version number(?). PUT node/create Creates the node, returns new node number. GET node/#id/history Returns all versions of the node. GET node/#id/#version Returns the XML for that version of the node. GET node/#id/ways Returns the XML for all ways that this node is part of. GET node/#id/relations Returns the XML for all relations that this node is part of. GET nodes?nodes=#id,#id,... Returns the XML for all given node numbers. GET map?bbox=min_lat,min_lon,max_lat,max_lon Gets all the way, nodes and relations inside a bounding box

slide-4
SLIDE 4

Challenges

Optimize bounding box. Distribute data amongst servers.

slide-5
SLIDE 5

Splitting Nodes

Split nodes across multiple servers... Which nodes go where? Based on existing node density? Based on access patterns?

slide-6
SLIDE 6

Node Density

slide-7
SLIDE 7

Editing @ Midnight UTC

slide-8
SLIDE 8

Editing @ 1AM UTC

slide-9
SLIDE 9

Editing @ 2AM UTC

slide-10
SLIDE 10

Editing @ 3AM UTC

slide-11
SLIDE 11

Editing @ 4AM UTC

slide-12
SLIDE 12

Editing @ 5AM UTC

slide-13
SLIDE 13

Editing @ 6AM UTC

slide-14
SLIDE 14

Editing @ 7AM UTC

slide-15
SLIDE 15

Editing @ 8AM UTC

slide-16
SLIDE 16

Editing @ 9AM UTC

slide-17
SLIDE 17

Editing @ 10AM UTC

slide-18
SLIDE 18

Editing @ 11AM UTC

slide-19
SLIDE 19

Editing @ Noon UTC

slide-20
SLIDE 20

Editing @ 1PM UTC

slide-21
SLIDE 21

Editing @ 2PM UTC

slide-22
SLIDE 22

Editing @ 3PM UTC

slide-23
SLIDE 23

Editing @ 4PM UTC

slide-24
SLIDE 24

Editing @ 5PM UTC

slide-25
SLIDE 25

Editing @ 6PM UTC

slide-26
SLIDE 26

Editing @ 7PM UTC

slide-27
SLIDE 27

Editing @ 8PM UTC

slide-28
SLIDE 28

Editing @ 9PM UTC

slide-29
SLIDE 29

Editing @ 10PM UTC

slide-30
SLIDE 30

Editing @ 11PM UTC

slide-31
SLIDE 31

Static Latitude (3 servers)

slide-32
SLIDE 32

Finding Nodes

R-tree: Spatial index implementation Three levels of the R-tree containing Africa

slide-33
SLIDE 33

Before Profiling

slide-34
SLIDE 34

UW, London and Brazil at Once

slide-35
SLIDE 35

Improvements

Concurrent Database getWaysFromNode => getWaysFromNodes Thread => Forked

slide-36
SLIDE 36

Post Improvements

slide-37
SLIDE 37

More Improvements

Do the hard work in C Pickling XML

slide-38
SLIDE 38

Final Run

slide-39
SLIDE 39

After Profiling

slide-40
SLIDE 40

Comparison

Bounding Box Queries