DuckDB--Buffer-Manangement
DuckDB的Buffer Management的设计与实现参考了LeanStore[1],通过实现Pointer Swizzling来尽可能的兼顾in-memory database的性能和更强的处理out-of-core场景的能力。
DuckDB的Buffer Management的设计与实现参考了LeanStore[1],通过实现Pointer Swizzling来尽可能的兼顾in-memory database的性能和更强的处理out-of-core场景的能力。
DuckDB中的Data Representation基本上由Val->Value->Vector->Data Chunk的结构实现。
NUMA[Non-Uniform Memory Access],非均匀内存访问架构,是指多处理器系统中,内存的访问时间受处理器和内存之间相对位置影响。在NUMA中,和处理器相近的内存,通常称作local memory[本地内存], 和处理器相对远的内存,通常称之为remote memory[远端内存]。
Buffer和Cache是现代操作系统中两个相似但截然不同的两个概念和机制,不过最近这两个机制有合并的趋势,比如在之前Ubuntu中输入free -h可以看到buffer和cache是分开的,但是在较新的Ubuntu中,buffer和cache已经合并显示buff/cache[至少在22.04是这样]。但是我们还是应该并且了解Buffer和Cache的异同。
Join[连接]是数据库查询最重要的操作,应该没有之一,主要用于连接两个以上的表并获得对应的结果。Join可以从类型和算法实现两个角度理解。
数据库的查询引擎[Query Engines]有两种查询方式,Push-based和Pull-based。
本文记录了部署Hadoop的具体步骤,因为感觉以前每次部署都是Google一下,这回记录一下。这里使用Hadoop-2.10.2版本的standalone mode作为例子。