[OSM-dev] C++ implementation of the API

Tom Hughes tom at compton.nu
Mon May 26 16:33:00 BST 2008

In message <3f7a6e1c0805260805r549bd02ere680ae7c24256c34 at mail.gmail.com>
          Ludwig <ludwigbrinckmann at gmail.com> wrote:

> My concern is that even if a reimplementation of the API in some other form
> will not fundamentally solve the scalability problem if all data requests
> will have to be served by a single machine.

What makes you think they are served by a single machine? They aren't.

There are in fact a total of four machines involved in serving
calls to the API in various ways.

> Will not the introduction of the 0.6 API offer a solution in the sense that
> will will with far greater reliability allow the separation of read and
> write requests? With versioned map elements all read requests could be
> redirected to some mirror server, while only write requests will continue to
> hit the real (master) server. With read requests removed from the main
> server, it should be able to handle serve more active mappers better than at
> the moment.

The database server is not a bottleneck at the moment so there is
no point worrying about this. It doesn't need any change to the
user facing API anyway so it really isn't worth worrying about
at the moment.

Map data for editing purposes will always have to come from the
master database anyway, or you might get an old version which you
are then unable to upload.

> Could the effort for a API reimplementation be directed to some sort of
> smart mirror service using HTTP redirects, which would shield client
> applications from the existence of the mirror services?

There is no need for all this - we could already hide whatever magic
redirection and load sharing we wanted to do from the clients. The web
server already distributes calls over different application servers
and duplicate web servers is just a question of adding DNS entries.


Tom Hughes (tom at compton.nu)

More information about the dev mailing list