高并发存储系统


12

想象一下您的需求是,您有3个巨大的表(结构化数据),每个表有300亿行(总大小为4TB),并且许多并发用户(远程LAN机器上的并行os线程)将需要读取一部分通过他们的SELELCT WHERE GROUPBY查询和高度并发的数据,例如,同时进行10,000次并发读取,并且用户也需要将这些数据高度并发地插入(不更新)数据到这些表中,例如2000个并发写入器(遍及数据中心LAN网络) 。用户可能希望尽快从该存储中读取和插入数据,每次读取和写入将发生在毫秒到1秒范围内。

您推荐什么技术来满足这种要求?是否有任何数据存储或键值存储可以做到这一点?不能选择云。

一些说明:

用户不必立即查看数据,最终的一致性是可以接受的。数据可以通过存储可以提供的任何驱动程序进行访问,而用户又仅仅是在数据中心的远程计算机上运行的线程。查询大多类似于SELECT WHERE GROUPBY。

数据采用表格格式,每行约60个字节。

我无法使用DynamoDB或类似解决方案的无云选项。我必须能够在数据中心内部托管它。

可以一直读取表中的所有数据,并且使用模式是不可预测的。没有联接或超长查询。不需要DR,但是需要合理的HA,但是不必花哨。每个读者都基于其where子句获得了一批行,而这些子句与行并不是真正相关。我们可能每行的长度可以固定,但是我希望存储层对此有所担心。

另外,我最大的担心是与并发读取一起发生的所有那些并发写入。

非常感谢您对此的见解。

更重要的是,我有三个表,每个表有300亿行包含不同的对象类型


之所以定义云,是因为大多数人(例如99%的普通民众和100%的营销人员)称云只是别人维护的集群

我的意思是,我不能使用DynamoDB或某些只能在公共云中使用的技术,例如Amazon或Azure等。
iCode

Answers:


6

如果最终的一致性是可以接受的,并且所有查询都是聚合的,那么低延迟的OLAP系统可能对您有用。您的要求听起来有点像算法交易平台。这种类型的体系结构通常用于交易大厅系统,该系统要求对最新数据进行汇总统计分析计算。

如果您可以按日期对数据进行分区并且旧行不更新,则可以使用常规OLAP服务器(例如由普通RDBMS平台支持的Microsoft Analysis Services)构建混合OLAP系统。应该有可能应付大约4TB的数据,并且SQL Server和SSAS都将做共享磁盘群集。其他供应商也可以提供类似的OLAP系统(例如Oracle / Hyperion Essbase)。

OLAP服务器通过将数据以及聚合存储在本机存储中来工作。大多数将支持分区数据。此外,大多数服务器还可以在ROLAP模式下工作,在该模式下,他们可以对基础数据库发出查询。需要注意的重要一点是,可以按分区对存储策略进行管理,并且可以通过编程方式将分区从一个分区切换到另一个分区,

在此模型中,历史数据存储在MOLAP分区中,并且数据的聚合也保持不变。如果可以通过聚合满足查询条件,则服务器将使用它们。可以调整聚合以适合查询,正确的聚合将大大减少解决查询所需的计算量。使用这种类型的系统可能会产生响应迅速的聚合查询。

可以通过维护一个小的前导分区来实现实时数据-在当前月份,日期甚至是小时(如果需要)。OLAP服务器将对数据库发出查询;如果此分区足够小,则DBMS将能够快速响应。常规过程将创建新的主要分区,并将封闭的历史期间转换为MOLAP。可以合并较旧的分区,从而可以按任何所需的粒度管理历史数据。

写入数据库的客户端只需直接写出底层RDBMS。如果历史数据保持静态,则它们将仅写入前导分区。如果需要额外的DBMS性能,则4TB是使用SSD的实用容量。即使是主流厂商,也可以选择基于SSD的产品以及更快的SLC单元。


谢谢您的答复。你是对的。我的问题类似于算法交易平台,但也不同。我们尝试了RDBMS路由,但无法扩展。我需要一个可以扩展的存储,并且不具有OLAP系统的复杂性,因为我们的数据量正在不断增长,一旦我们在三个表上达到更多的TB,RDBMS就会造成很多锁定和类似问题。我希望nosql选项可以满足这些要求。有什么想法吗?
iCode 2012年

@MDotnet对于12k并发用户,4TB大小的问题的简单解决方案,您的期望/要求可能是不现实的。您提到您只是在研究RDBMS方法,并且没有扩展。1)您可以将其详细信息添加到Q中吗?2)这个答案是提倡ROLAP / MOLAP混合方法,而不是纯关系数据库。
Mark Storey-Smith'2

我不是DBA,我认为“靠投票推动”对大多数专业网站都不利,但是我不在乎,这个答案对于一个投票来说就太好了。+1
psr
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.