[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:
https://github.com/openstreetmap/openstreetmap-website/issues/2201#issuecomment-484669790
-------------- 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