Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alibaba PolarDB #65

Open
levy5307 opened this issue Jan 10, 2022 · 0 comments
Open

Alibaba PolarDB #65

levy5307 opened this issue Jan 10, 2022 · 0 comments

Comments

@levy5307
Copy link
Owner

https://levy5307.github.io/blog/Alibaba-Polardb/

PolarDB是一款云原生OLTP数据库,采用存储计算分离的架构。其设计目标是:大存储量、高TPS及高可用性。

当前的云原生数据库普遍采用从database节点offload tablescan到存储节点的方式,来高效处理分析任务。这样做可以减少database节点和storage节点之间的网络消耗,但是会增加storage节点数据处理的负载。然而由于storage节点都是以行式存储数据的,行式存储对table scan的处理不够高效,因此必须更加激进的scale-up存储节点来进行应对。当然从经济性的角度上考虑,这样做是不够好的。

另外,可以为存储节点装备处理table scan的专用硬件,例如FPGA、GPU等。一个普遍的做法是采用集中式异构体系结构。如下图所示:

但是这样有两个问题:

High data traffic

所有的数据都要从存储设备传递到该FPGA/GPU设备,这会带来大量的能量消耗和互相干扰

Data processing hot-spot

每个存储节点有大量的NVMe SSD,每个都有几GB的读吞吐。所有这些数据都会集中传递给FPGA/GPU,使其成为热点。

因此,PolarDB采用一种分布式异构架构。通过将table scan操作分布到每个storage drive,可以消除上述大量数据传输,避免热点的出现。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant