levy5307 / blog

https://levy5307.github.io/blog/
MIT License
0 stars 0 forks source link

duckdb #75

Open levy5307 opened 2 years ago

levy5307 commented 2 years ago

https://levy5307.github.io/blog/duckdb/

简介

embeded database也是数据库领域的一个需求,其提供一个链接库,链接到其他进程中运行。当前的SQLite便是embeded database中的一种,只不过其场景是OLTP。在DuckDB之前,针对OLAP场景的embeded database尚未出现。

针对embeded analytical database,有如下几个需求:

高性能的OLAP workload,且不会过多牺牲OLTP性能

很多场景中,既有高并发使用OLTP的更新,也有并行的OLAP查询存在。

高度稳定性

如果embeded database挂掉,会影响其宿主直接宕机。

高效的数据传输

因为embeded database和application运行在同一个进程中,共享相同的地址空间,因此这一点比较容易实现。

嵌入性和可移植性

该database可以在任何环境中都能正常运行,不能依赖任何编译时或周二运行时外部库,同时也不能修改系统的Signal handling。

DuckDB则是一款完全符合上述几个要求的OLAP场景embeded database。

设计与实现