How Algolia Reduces Latency For 21B Searches Per Month

https://stackshare.io/algolia/how-algolia-reduces-latency-for-21b-searches-per-month

介绍了 Algolia 如何实现低延迟的搜索服务。提到了几个关键工具如下:

他们家的服务状态页做得不错: https://status.algolia.com/

PostgreSQL Configuration Cheat Sheet

https://pgdash.io/blog/postgres-configuration-cheatsheet.html

Linux Technology for the New Year: eBPF

https://thenewstack.io/linux-technology-for-the-new-year-ebpf/

eBPF 越来越火了,虽然 RHEL 7 还不支持,但是 RHEL 8 已经使用了 4.18 版本的内核,是时候学起来了。

How We Solved a Storage Problem in PostgreSQL Without Adding a Single Byte of Storage

https://hakibenita.com/how-we-solved-a-storage-problem-in-postgre-sql-without-adding-a-single-bytes-of-storage

pg 的默认 work_mem 是 4MB,作者使用的 sql 查询需要处理一个二进制的列,这需要使用大约 300MB 的空间,超过了 work_mem 的大小,所以一运行查询就消耗很多的硬盘空间。

解决方案是不直接使用二进制列的内容,而是先做一个 md5 hash,并且使用 uuid 类型将要处理的数据减少到 16 字节,最终需要消耗的硬盘空间从 309MB 减少到了 7MB。因为计算 hash,查询的执行时间从 160ms 上升到 374ms,不过对于夜间跑的任务来说,这个不是问题。

Time-series data: Why (and how) to use a relational database instead of NoSQL

https://blog.timescale.com/time-series-data-why-and-how-to-use-a-relational-database-instead-of-nosql-d0cd6975e87c

介绍了 TimescaleDB 如何利用 Postgres 来构建一个时序数据库。几个点:

  • OLTP 的内存和硬盘数据交换成本很高。
  • 时序数据的写是 append only 的。
  • time/space chunking

Want a super-fast messaging system?

https://hackernoon.com/want-a-super-fast-messaging-system-c19c9f8cf560

NATS 的作者介绍他们团队在设计一个高性能的消息队列服务上的经验,主要关心四个方面:

  1. Message Per IO call
  2. Message Routing
  3. Protocol Parser
  4. Scalability

知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。