什么是效率更高的Tarantool-许多空间还是一个大空间?

问题描述

我正在Tarantool Vinyl数据库上实现微服务,需要做出基本的体系结构决策-我应该为所有数据使用一个大空间还是使用具有相同元组格式的许多空间。

该空间将用作许多应用程序实例的某种状态存储。该空间将成为计算的基础,因此将需要大量的读/写负载

我可以将所有应用程序实例的所有元组存储在一个大表中,也可以将一个应用程序实例的数据分成多个空间-每个空间以应用程序实例ID命名。从代码的角度来看,这种分离将更加方便。

所以问题是这种分离对我有什么好处(如果有的话)?我是说Tarantool会花费更多时间或资源调动以在空间或类似空间之间“切换”吗?还是仅使用一个空间时,它对高速缓存的工作效率更高?

整个基本大小约为1TB 应用实例数10000-30000 一个应用实例空间中的记录数量从1000到2000000不等

谢谢!

解决方法

简而言之-您需要分片。没有理由将一个空间分成多个空间,因为一个单独的Tarantool实例每秒将无法处理那么多请求。

您需要的是vshard和(可能是)cartridge,以使大量实例更易于管理。

对于您而言,最好的方法是根据应用程序ID计算分片密钥。