Skip to content

关于数据的弹性

Zonglei Dong edited this page Jan 20, 2024 · 1 revision

所谓数据,必须区分好类型,才能分别处理。譬如以前把数据分为 kv【如 redis 的数据】、结构化【如 rdbms 的数据】、blob【如多媒体的富文本】 等类型的数据,分别使用不同的数据库。

就算是结构化数据,根据数据类型,也分为流水型数据和状态型数据。 image.png 流水型数据如交易单据,类似于时序或者log型数据,每个数据都有意义,都一个 id,这个 id 里面都有弹性位标识,就算在 group[shard] 内发生了弹出,不用做数据迁移。类似于 MVCC 数据,每个版本号的数据都有意义。

image.png 状态数据类似于 mvcc 的最终状态,每个 key 只有最终状态的数据有意义,类似于 zk 的 kv,在进行数据弹出的时候,要停写甚至是停服,进行数据的物理迁移。