知识卡片
服务层只服务视图
内容
服务层的职责是把批处理层生成的视图索引成低延迟查询结构,而不是重新承担通用数据库的写入逻辑。它越接近只读服务,越容易获得简单、稳定和高吞吐。
参考来源
- 位置:《大数据系统构建:可扩展实时数据系统构建原理与最佳实践》第10章《服务层概述》"10.3 服务层数据库的需求"一节(源文件:_epub-src/OEBPS/Text/081.xhtml)
- 结论依据:原文明确"该代码清单缺失了一个习惯性的需求——所有熟悉的数据库上的一个标准需求——随机写。该功能与服务层完全无关,因为视图只是批量生产的",并对比ElephantDB(几千行代码)与HBase/Cassandra(几十万行代码),说明去掉随机写职责让服务层保持简单。
- 原始内容:但该代码清单缺失了一个习惯性的需求——所有熟悉的数据库上的一个标准需求——随机写。该功能与服务层完全无关,因为视图只是批量生产的……因为服务层不需要随机写,它不需要在线压缩,所以这种复杂性及其相关的操作负担,在服务层中完全消失。