Questions tagged «scalability»

5
为什么RDBM的集群不能像NoSQL那样?
Nosql DBMS的一大优点是它们可以更轻松地集群。假设使用NoSQL,您可以创建数百个便宜的计算机,这些计算机存储不同的数据并立即查询所有数据。 我的问题是,为什么关系型DBMS不能像mysql或sql server那样?是仅仅是供应商还没有找到一种技术方法来解决现有产品的问题,还是关系模型存在一些问题导致这种情况不可行?NoSQL存储和访问数据(键/值,文档等)的方式有什么好处,可以简化群集操作(如果确实如此)?

6
可以在一台SQL服务器上放置的数据库数量有限制吗?
我正在建立一个SaaS系统,我们打算在该系统中为每个客户提供他们自己的数据库。该系统已经设置好,因此如果负载太大,我们可以轻松地扩展到其他服务器。我们希望拥有成千上万的客户。 问题 在一个SQL Server上可以/应该具有的微数据库数量是否有实际限制? 它会影响服务器的性能吗? 拥有10,000个每个100 MB的数据库或一个1 TB的数据库是否更好? 附加信息 当我说“微数据库”时,我并不是真的意思是“微”。我只是说我们的目标是成千上万的客户,因此每个单独的数据库仅占总数据存储量的千分之一或更少。实际上,每个数据库的容量大约为100MB,这取决于它获得的使用量。 使用10,000个数据库的主要原因是可伸缩性。事实是,系统的V1有一个数据库,当数据库承受负载时,我们经历了一些不舒服的时刻。 所有这些都使CPU,内存,I / O紧张。即使我们解决了这些问题,他们也使我们意识到,即使在世界上索引最佳的情况下,如果我们如希望的那样成功,我们也无法将所有数据都放在一个巨大的鸿沟中的数据库。因此,对于V2,我们正在分片,以便可以在多个数据库服务器之间分配负载。 去年,我花了很多时间来开发这种分片解决方案。每个服务器一个许可证,但是由于我们在Azure上使用VM,因此无论如何都要照顾好它。之所以出现这个问题,是因为以前我们只向大型机构提供服务,并且自己建立每个机构。我们的下一个业务是自助服务模型,任何使用浏览器的人都可以注册并创建自己的数据库。与大型机构相比,他们的数据库将更小,数量更多。 我们尝试了Azure SQL数据库弹性池。性能非常令人失望,因此我们切换回常规VM。

1
PostgreSQL和MySQL的可伸缩性限制
我听说诸如MySQL或PostgreSQL之类的非分片关系数据库的性能“突破”了10 TB。 我怀疑这样的限制确实存在,因为Netezza,Greenplum或Vertica等都不会提出这样的限制,但是我想问一下这里是否有人提及量化这些限制的任何研究论文或正式案例研究。


3
为什么关系数据库无法满足大数据的规模?
大数据问题经常重复出现,关系数据库无法扩展以处理现在正在创建的海量数据。 但是,像Hadoop这样的大数据解决方案并没有受到这些可扩展性的限制?为什么Oracle RAC或MySQL分片或Teradata等MPP RDBMS无法实现这些壮举? 我对技术局限性感兴趣-我知道集群RDBMS的财务成本可能令人望而却步。

3
使用HAProxy和PGBouncer的PostgreSQL高可用性/可伸缩性
我有一个Web应用程序的多个PostgreSQL服务器。通常,一个主机和多个从机处于热备用模式(异步流复制)。 我使用PGBouncer进行连接池:在连接到本地主机上的数据库的每台PG服务器(端口6432)上安装了一个实例。我使用事务池模式。 为了在从属服务器上平衡只读连接的负载,我将HAProxy(v1.5)与conf差不多使用: listen pgsql_pool 0.0.0.0:10001 mode tcp option pgsql-check user ha balance roundrobin server master 10.0.0.1:6432 check backup server slave1 10.0.0.2:6432 check server slave2 10.0.0.3:6432 check server slave3 10.0.0.4:6432 check 因此,我的Web应用程序连接到haproxy(端口10001),该端口在每个PG从站上配置的多个pgbouncer上进行负载平衡连接。 这是我当前架构的表示图: 这样可以很好地工作,但是我意识到有些实现方式大不相同:Web应用程序连接到单个PGBouncer实例,该实例连接到HAproxy,后者在多个PG服务器上实现负载平衡: 最好的方法是什么?第一个(我当前的一个)还是第二个?一种解决方案比另一种解决方案有什么优势? 谢谢

2
扩展PostgreSQL触发器
Postgres如何触发机制扩展? 我们有大型的PostgreSQL安装,并且我们正在尝试使用日志表和TRIGGER来实现基于事件的系统。 基本上,我们想为要通知UPDATE / INSERT / DELETE操作的每个表创建一个TRIGGER。触发该触发器后,它将执行一个函数,该函数将简单地将新行(对事件进行编码)追加到日志表中,然后我们将从外部服务中进行轮询。 在开始使用Postgres TRIGGER之前,我们想知道它们如何扩展:在单个Postgres安装中可以创建多少个触发器?它们会影响查询性能吗?之前有人尝试过吗?

3
测试存储过程的可伸缩性
我有一个电子邮件应用程序,将在每个页面加载时调用该应用程序以将给定用户的新消息数传送到UI。我在数据库级别测试的东西有一些变体,但是所有这些都通过存储的proc调用抽象出来。 我试图猛击数据库以查看断点(每秒请求数)。 简而言之,我有一个表,如此userId,newMsgCount,以及对userId的聚集索引。SQL应该每秒能够处理数百或数千个此类响应。我认为落后者是我的.NET应用程序。 我怎样才能使它成为一个很好的测试,以基于SQL性能获得测试结果? 是否有为此工具,我可以为其提供存储的proc名称和参数以将其打包到数据库中? 我想看看数据库是否可以返回分钟。每秒250个响应。

4
将大查询分为多个小查询是否更好?
在某些情况下,需要进行非常大的查询才能将多个表及其中的子选择语句连接在一起以产生所需的结果。 我的问题是,我们应该考虑使用多个较小的查询,并通过多次查询数据库来将逻辑操作带入应用程序层,还是一次完成所有查询就更好了? 例如,考虑以下查询: SELECT * FROM `users` WHERE `user_id` IN (SELECT f2.`friend_user_id` FROM `friends` AS f1 INNER JOIN `friends` AS f2 ON f1.`friend_user_id` = f2.`user_id` WHERE f2.`is_page` = 0 AND f1.`user_id` = "%1$d" AND f2.`friend_user_id` != "%1$d" AND f2.`friend_user_id` NOT IN (SELECT `friend_user_id` FROM `friends` WHERE `user_id` = "%1$d")) AND …

3
具有SQL Server 2016 Shard的多租户系统是否应该通过每个租户通过单独的数据库进行租户隔离?
给定用例: 租户数据不应串扰,一个租户不需要另一租户的数据。 每个租户都可能具有较大的历史数据量。 SQL Server托管在AWS EC2实例中。 每个租户在地理位置上都相距遥远。 有意使用第三方可视化工具,例如PowerBI Embedded 预计数据量会随着时间增长 系统的成本受到限制。 没有24/7生产DBA,解决方案必须可维护 解决方案应该能够水平缩放。 租户总数少于50 推荐的体系结构是什么,此用例是否有参考实现?我相信许多人可能已经在企业软件开发中遇到了这个问题。 我认为这与处理多租户数据库体系结构中越来越多的租户不同。在该问题中提到的用例处理的租户数量更多,这与只有极少数(50)的大租户不同。提到的体系结构可能是这里的解决方案,这是我想进一步了解的。

3
针对社交网络/知识库社区的数据库建议?
我正在为一个想在夏天开始的新项目研究各种数据库类型和DBMS。 我已经在MySQL和postgreSQL中构建了系统,现在我想扩展我在数据库中的知识和经验。 我的项目将是一种社交网络/聚合知识的事物。(还没有开发出一个描述它的术语)。 我一直在看: Cassandra(使用自己的查询语言类型);对于功能丰富的内容并提供高性能的查询执行来说,这似乎是一件好事。但是我不太热衷于此,因为它需要Java环境才能工作,而且我希望与Oracle无关。 MongoDB(noSQL类型的DBMS);强大的可伸缩性,但是您将失去经过验证的SQL语言上已经可用的所有功能,例如业务信息查询。 系统要求: 数据文本,日期,时间,xml,小整数,blob, 结构/行为:标准化3NF,非实时,关系,可伸缩,健壮 环境: unix / linux,没有JAVA !,最好在C上运行 我想知道您是否可以指出我应该研究的任何其他数据库系统。 我也看过对象关系数据库,我很喜欢它们与PHP对象(PDO)一起工作的想法,但是它们的性能似乎有点差。 看到这里将有DBA,您对这些系统的任何反馈都将不胜感激。 谢谢

1
Cassandra中色谱柱系列的实际限制是什么?
在卡桑德拉(Cassandra)中,建议不要有数千个以上的列族,为便于讨论,假设有2,000个。在需要保留2,000种以上数据类型的情况下,一种方法是将多个不相关类型的数据分片到每个列族中。 例如,单个CF可以包含订单,发票和客户,条件是它们的行键是不同的(例如,以对象类型为前缀,即单个CF的键可以同时包含Order|1234和Customer|1234)。第二个CF可以包含说地址,LineItems和OrderTypes。考虑到这种方法的基本可行性,实际的限制是什么?例如,将所有10,000种类型的对象放入一个CF中会出现什么问题?据我从Cassandra Wiki所知道的,CF的大小没有严格限制。

2
具有pgpool架构的Postgres
下面是一个示例pgpool架构: 这意味着您只需要在单个服务器上安装pgpool。这是真的?当我查看配置时,我还看到您在其中配置了后端pgpool.conf。因此它进一步暗示了这一点。但是,这并不能解释为什么我也在后端服务器上看到pgpool。 查看文档时,我还会看到: 如果您使用的是PostgreSQL 8.0或更高版本,则强烈建议在所有可由pgpool-II访问的PostgreSQL上安装pgpool_regclass函数,因为它在pgpool-II内部使用。 所以我不确定该怎么想;最好的做法是在所有后端上或仅在专用服务器上都使用pgpool?

1
重新设计大量传感器数据的存储
我受命实施/重新设计一个解决方案,该解决方案将存储来自传感器阵列的天气数据。该阵列将由约40个塔组成,每个塔均带有约10个传感器,每个传感器将以10秒的间隔对大气状况进行采样,时间不确定(年)。此任务的一些应用程序和要求如下: 管理和检索塔/传感器配置,以进行数据分析。 通过传感器或时间间隔进行数据可视化以进行气象观测。 为客户提供可靠和持久的数据资源/数据集,以比较模型和传感器的性能(可能需要进行一些后处理才能以所需的格式交付?)。 注意:当前的解决方案(实现为概念证明,有5个塔)将数据存储为平面文件(每小时一个文件)。 我最初不确定将来是否会构成大数据问题,所以我研究了关系数据库和NoSQL数据库的两种解决方案,但是我觉得我需要更多指导,因为我不是数据管理专家。 我认为解决方案之一是将数据存储在按塔,传感器和时间戳编制索引的关系数据库中,并按日期对表进行分区。 另一个基于将来的扩展,是将其存储在文档类型的NoSQL数据库(如MongoDB)中,并模拟当前解决方案的结构。 这些好方法中有什么?如果没有,什么是更好/推荐的解决方案?另外,是否有必要重新设计当前解决方案?有人告诉我,使用平面文件的理由是,他们认为关系数据库会占用过多的开销。如果是这样,是否有办法避免这种情况?

3
使用复制进行横向扩展
阅读了使用复制进行横向扩展后,如何将不同的查询路由到不同的服务器,例如,SELECT我想路由到从属服务器和NON-SELECT主服务器。我假设可以使用haproxy作为负载均衡器,但是我发现在haproxy级别的查询之间无法区分开吗?另外,假设某人已直接到达主服务器,主服务器如何识别这是SELECT查询并显示发送给从属服务器或负载平衡器。

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.