DDIA chapter 3
- OLTP 系统通常面向最终用户,这意味着系统可能会收到大量的请求。为了处理负载,应用程序在每个查询中通常只访问少量的记录。应用程序使用某种键来请求记录,存储引擎使用索引来查找所请求的键的数据。硬盘查找时间往往是这里的瓶颈。
- 数据仓库和类似的分析系统会少见一些,因为它们主要由业务分析人员使用,而不是最终用户。它们的查询量要比 OLTP 系统少得多,但通常每个查询开销高昂,需要在短时间内扫描数百万条记录。硬盘带宽往往是瓶颈,列式存储是针对这种工作负载的日益流行的解决方案。
DDIA chapter 4
异步消息传递系统……与 RPC 类似,因为客户端的请求以低延迟传送到另一个进程;与数据库类似,不是通过直接的网络连接发送消息,而是通过称消息队列的中介来临时存储消息……这种通信模式是异步的:发送者不会等待消息被传递,而只是发送它,然后忘记它。
https://redis.io/docs/latest/operate/oss_and_stack/management/optimization/benchmarks/
fine-tuned, 256 bytes data SET/GET 200,000 ops/sec
normal, with 60,000 connections 50,000 q/s
normal, with 30,000 connections 60,000 q/s
normal, with 100 connections 120,000 q/s
Redis Explained - by Mahdi Yusuf (architecturenotes.co)
Building a Website to Scale to 100 Million Page Views Per Day and Beyond
Jepsen: Call me maybe ElasticSearch
Lucene handles the on-disk storage, indexing, and searching of documents, while ElasticSearch handles document updates, the API, and distribution. Documents are written to collections as free-form JSON; schemas can be overlaid onto collections to specify particular indexing strategies.
注:这里的 CAS 指 Compare-And-Swap。
Fast Open-Source OLAP DBMS. Real-time warehouse.
Cloudflare 使用 ClickHouse 进行 6 M/s 请求的 HTTP 分析
First ClickHouse research paper: How do you make a modern data analytics database lightning-fast?