News for hackers. Stuff that matters.
Re:We saved $50k/year with a Go microservice coded in a hack... by DCoder on Wednesday April 11, 2018 @01:01AM (#16808195)
This is a pretty popular pattern known as Entity-Attribute-Value [0]. It's used by many products where a) data model needs to be very flexible and allow new attributes without schema changes, or b) a typical entity has a large number of possible attributes that may or may not be set for all entities ("sparse" attributes). WordPress uses this to store post metadata, Magento uses this to store product attributes and most of other data, Drupal uses a variation of this to store all the posts and other content you create… I have too much experience with this model to be surprised.

[0]: https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80...

Re:We saved $50k/year with a Go microservice coded in a hack... by dbrgn on Wednesday April 11, 2018 @02:33AM (#16808565)
Sounds like a great case for Postgres hstore (like OpenStreetMap does it)?
Re:We saved $50k/year with a Go microservice coded in a hack... by stu432 on Wednesday April 11, 2018 @05:05AM (#16809288)
I mean, not really, theres no magic in Postgres' implementation of the pattern. They even spell it out for you:

"can be useful in various scenarios, such as rows with many attributes that are rarely examined"

They are querying these quite heavily, they aren't just random attributes they need to retrieve.

Re:We saved $50k/year with a Go microservice coded in a hack... by dbrgn on Wednesday April 11, 2018 @06:10PM (#16816202)
You're right, I think most OSM databases extract the most commonly used keys into dedicated, potentially indexed columns.
Re:We saved $50k/year with a Go microservice coded in a hack... by bpicolo on Wednesday April 11, 2018 @08:54AM (#16810591)
hstore querying is quite slow (and GIN indexes on hstores are pretty massive). I'd always go jsonb over hstores these days, but jsonb has the same indexing problem. JSON has a well-optimized/spec compliant serializer/deserializer in every language you can imagine as a baseline, whereas hstore does not.
Re:We saved $50k/year with a Go microservice coded in a hack... by rickycook on Wednesday April 11, 2018 @03:28AM (#16808828)
i think that’s basically what it was designed for :p