47 points by 7777777phil about 4 hours ago | 23 comments | View on ycombinator
akhil08agrawal 9 minutes ago |
bob1029 about 1 hour ago |
The query itself represents information. If you can anticipate 100% of the ways in which you intend to query the information (no surprises), I'd argue there might be an ideal way to store it.
ronsor about 1 hour ago |
* For lossless compression of generic data, gzip or zstd.
* For text, documentation, and information without fancy formatting, markdown, which is effectively a plain-text superset.
* For small datasets, blobs, objects, and what not, JSON.
* For larger datasets and durable storage, SQLite3.
Whenever there's text involved, use UTF-8. Whenever there's dates, use ISO8601 format (UTC timezone) or Unix timestamps.
Following these rules will keep you happy 80% of the time.
__MatrixMan__ about 2 hours ago |
danans about 1 hour ago |
eliasdejong 8 minutes ago |
Conceptually similar to CAP, but with storage trade-offs. The idea is you can only pick 2 out of 3.
notepad0x90 26 minutes ago |
pbreit about 3 hours ago |
andix about 1 hour ago |
kittikitti about 1 hour ago |
I've been thinking about trade-offs as "pick two of three" in the abstract, but the bookshelf example made it concrete. The insight that matters is: if you know your query patterns, you can optimize differently.
As a PM, I keep trying to build systems that work for "every case." But this article reminded me that's the wrong goal. The hash table works because it accepts the space-time trade-off. The heap works because it embraces disorder for non-priority items.
Sometimes the best system isn't the most elegant one—it's the one that matches how you'll actually use it.
Good reminder to stop over-optimizing for flexibility I'll never need.
Thanks for sharing.