TiFlash存算分离有哪些优劣势?

从 TiDB v7.0.0 开始,TiFlash 支持存算分离架构,它有哪些优劣势,适合哪些业务场景?

主要是节约成本吧
https://docs.pingcap.com/zh/tidb/stable/tiflash-disaggregated-and-s3#tiflash-存算分离架构与-s3-支持

计算能力和存储能力理论上可以不受限制…

存算一体会有一些限制

1 个赞

TiFlash 存算分离架构适用于有明显波峰波谷、或者海量存储中只有部分数据需要计算的数据分析场景。分离后,业务的存储和计算,可以单独按需扩展。就像tidb-server 和 tikv-server一样,分别按需扩缩容,大大提高灵活性。

1 个赞

没有实际部署过,但从理论上,横向扩充更有针对性,对算力来说

1 个赞

廉价存储+远程读取其他s3存储的数据

云上用户更省钱 :joy_cat:

优势么就是TiFlash采用列存储,OLAP下性能好,数据又是从TiKV异步过来的,存储性能不受影响。
劣势就是额外的存储空间要求。

应该主要是为了应对更多场景和满足客户更多需求。

优势:存算分离的架构可以根据计算和存储的需求进行独立扩展,这对于计算密集型或存储密集型的应用场景比较有利。
同时允许用户根据具体的业务需求,分别优化存储和计算资源的使用,从而达到更高的资源利用率。

劣势:性能开销:存算分离可能会引入额外的网络延迟和数据传输开销,特别是在大规模数据处理时,这可能会影响整体的性能。
数据的同步和一致性维护可能变得更加复杂,尤其是在高并发的场景下。

降本增效

优势:

  1. 高性能查询:由于列式存储的特点,TiFlash 在某些查询场景下能够获得更高的查询性能,特别是对于聚合、分析型查询等需要扫描大量数据的操作。
  2. 更好的压缩率:列式存储可以采用更高效的压缩算法,减少存储空间的占用。
  3. 独立的计算资源:通过将存储和计算分离,可以为 TiFlash 分配独立的计算资源,避免存储和计算互相影响,提高整体系统的稳定性和可扩展性。
  4. 弹性扩展:TiFlash 可以根据需求进行水平扩展,支持动态添加或删除 TiFlash 节点,从而满足不断增长的数据量和查询负载。

劣势:

  1. 数据同步延迟:由于存算分离架构的设计,TiFlash 需要与主节点进行数据同步,这可能导致数据同步延迟,不适用于对实时性要求较高的业务场景。
  2. 写入性能相对较低:相比于主节点,TiFlash 的写入性能较低,这是由于列式存储的特点决定的。因此,对于大量的写操作,主节点仍然是更合适的选择。
  3. 配置和管理复杂性:存算分离架构需要额外的配置和管理,包括数据同步、查询路由等方面,这可能会增加系统的复杂性和维护成本。
1 个赞

感谢各位老师!刚看了下官方说法,TiFlash存算分离大概讲了两个优点:
1.自动管理冷热数据。存算分离自动将常用的数据缓存在计算节点本地SSD,冷数据放在便宜的S3,可以降低存储成本。
2.计算节点无状态,可以秒级扩缩容。 当业务对计算资源需求变动较大时,相比存算一体的TiFlash,存算分离有更强大的伸缩性,可以按需伸缩计算节点,节约成本。
另外想到了一个问题:刚写入的数据马上读取,在存算分离架构环境下会从S3绕一圈,IO成本会增加。

如果把TiFlash当作一个独立OLAP数据库,随着网络传输技术和存储网络技术的发展,以及公有云的繁荣,似乎TiFlash存算分离才是趋势。

1 个赞

节约存储成本,保证计算的性能

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。