[openstreetmap/openstreetmap-website] Idempotency for API 0.6 (#2201)

mmd notifications at github.com
Thu Apr 18 20:06:08 UTC 2019

> Storing 800k objects that have a short lifetime is just not what relational databases are designed for. Well I mean acting as a cache in general is not really what they are designed for...

Just to add one more data point:

800k seemed a bit too pessimistic, actual numbers in the prototype are in the max 300k range, and that's still based on a human-readable format. The string compresses down to 20k-50k (factor 6 - 15).

As a purely binary format, at least 21 bytes are needed to store all information representing a single change in a diff result file:

- operation: 2 bit (values: create/modify/delete)
- object type: 2 bit (values: node/way/relation)
- deletion_skipped: 1 bit (true/false)
- old_id: 64 bit
- new_id: 64 bit
- version: 32 bit
(Note: actual sequence of rows needs to be preserved!)

I guess there's a number of different options to store this kind of data.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20190418/230b11f8/attachment-0001.html>

More information about the rails-dev mailing list