问题标签 [sharding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3748 浏览

collections - Mongodb 自动写入上限集合

我需要管理每小时获取许多记录。关于1000000记录。而且我需要每秒获取每个主键的最后一个插入值。它适用于分片。我正在考虑尝试使用 os capped collection 来获取每个主键的最后一条记录。为了做到这一点,我做了两个单独的插入,有一种方法, into mongodb,可以使某种触发器将插入传播到一个集合到另一个集合?

0 投票
4 回答
10611 浏览

mysql - 集群、分片或简单的分区/复制

我们创建了一个 Facebook 应用程序,它获得了很多病毒式传播。问题是我们的数据库开始变得非常满(有些表现在有超过 2500 万行)。到了该应用程序刚刚停止工作的地步,因为有成千上万的写入队列要进行。

我需要实施一个解决方案来快速扩展这个应用程序,但我不确定我是否应该追求分片集群,因为我不确定他们每个人的优缺点是什么,我正在考虑做一个分区/复制方法,但我认为如果负载在写入上,这无济于事吗?

0 投票
3 回答
13184 浏览

mongodb - 如何验证分片?

我正在尝试对 MongoDB 进行分片。我完成了分片配置,但我不确定如何验证分片是否正常工作。

如何检查我的数据是否被分片?是否有查询来验证/验证分片?

0 投票
2 回答
574 浏览

mysql - 使用 mysql 进行多表分片

我正在制作一个 GPS 应用程序,它将处理一张表中的 2 亿条记录。我最初的想法是将表分成多个表,如 position_1、position_2、...并拆分数据。

我的问题是:它对 MySQL(innodb) 有任何性能提升吗?

0 投票
1 回答
397 浏览

mongodb - nosql mongodb 副本集自动分片,运行实验时数据丢失

我不断地将数据插入到自动分片的 mongodb 中。(不更新,只插入)

实验设置 2 个分片,每个分片有 2 个节点。

在 shard1 -> node1 (primary), node2 in shard2 -> node3 (primary), node4

在一个分片中,我关闭了辅助节点(node2)-> 仍然正确插入了数据现在我也关闭了主节点(node1)-> 完整的分片现在关闭了

令人惊讶的是,整个 mongo 设置没有进行任何写入。

故事还有另一个转折点。现在我已经启动了 node2,因为这是唯一可用的节点,它成为主节点并开始接受数据。

大约 10 分钟后,我也启动了 node1。

但是当我检查插入到 node1 中的数据时(当 node2 关闭时)丢失了:(。

在最后一步中,当我提出 n1 时,它从 n2 中获取了新记录,但 n1 在上面第 2 步中获得的记录完全丢失了:(。

这是 mongo 的预期行为吗?

有人请帮帮我,如果需要,我可以进行更多实验:)。

在此先感谢 Vivekananda Tadala

0 投票
1 回答
199 浏览

database - 架构问题 - wcf 和分布式数据

为什么可能是一个基本的架构问题道歉

我们使用 wcf 服务实现我们的业务逻辑层。它们连接到 mysqldb(这是数据库层)并进行一些处理。wcf 服务可以被多个应用程序使用。

基本问题 - 如果我们打算做一些水平分片或某种形式的分区,我应该把分片管理器放在哪里?例如,现在我将在两台机器上拥有两个数据库,而不是单个数据库。

获取特定项目的调用可能会转到 db1 或 db2,具体取决于项目记录的主键。

在这种情况下,我是否需要部署我的 WCF 代码的多个副本,每个副本具有不同的连接字符串,然后在此之前有一个层,它对调用哪个服务 URL 进行一些解析?我确信这类问题有一些模式,如果我能在正确的方向上得到一些指示,那就太好了。

0 投票
1 回答
620 浏览

guid - SQL Azure 分片和社交网络应用

SQL azure 上的分片概念是克服 50Gb 数据库大小限制的最受推荐的选项之一,它目前拥有。分片的一个关键策略是将称为原子单元的相关记录组合在一个分片中,这样应用程序只需查询一个 SQL azure 实例即可检索数据。

然而,在社交网络应用程序等应用程序中,由于实体和记录的相互连接,将原子单元分组到单个分片中并非易事。基于这种情况的推荐方法是什么?

同样在分片数据库中,表应该使用哪些主键?大整数或 GUID。我目前使用 BIGINT 标识列,但如果由于某种原因要合并数据,这将是一个问题,因为不同分片中的值之间存在冲突。我听说有人推荐 GUID(UniqueIdentifier),但我担心这会如何影响性能。使用 UniqueIdentifier 列索引本地 SQL 服务器是不可能的,我想知道如果我要使用 UniqueIdentifier 列,SQL azure 如何实现类似的策略。

0 投票
3 回答
7322 浏览

sql-server - SQL Server 是否支持分片?

SQL Server 2008 的任何分片功能?

0 投票
3 回答
6608 浏览

mongodb - 在 MongoDB 上分片 GridFS

我正在记录有关 GridFS 以及在不同机器之间分片的可能性。

阅读此处的文档,建议的分片键是 chunks.files_id。此键将链接到文件集合的 _id,因此此 _id 是增量的。我保存在网格中的每个新文件都会有一个新的增量_id。

在 O'Reilly “Scaling MongoDB”一书中,不鼓励使用增量分片键以避免热点(最后一个分片将接收所有写入和读取)。

您对 GridFS 集合进行分片的建议是什么?
有人遇到过热点问题吗?

谢谢你。

0 投票
3 回答
1536 浏览

mysql - MySQL InnoDB 大表:分片还是添加更多 RAM?

伙计们,我是一个社交游戏的开发者,游戏已经有 70 万玩家,每天大约有 7 千新玩家注册,大约 5 千玩家不断在线。

数据库服务器运行在一个非常强大的硬件上:16 核 CPU、24 Gb RAM、RAID-10,BBU 建立在 4 个 SAS 磁盘上。我正在使用 Percona 服务器(已修补 MySQL-5.1),目前 InnoDB 缓冲池为 18Gb(尽管根据 innotop 只有几个可用的可用缓冲区)。数据库服务器运行良好(2k QPS,iostat %util 为 10-15%,vmstat 中几乎总是 0 个进程处于“b”状态,loadavg 为 5-6)。但是有时(每隔几分钟)我会收到大约 10-100 个慢查询(每个可能持续大约 5-6 秒)。

MySQL 数据库中有一张 InnoDB 大表,占用空间最多。它有大约 3 亿行,大小约为 20 Gb。当然,这个表正在逐渐增长......我开始担心它会对数据库的整体性能产生负面影响。在最近的将来,我将不得不对此做点什么,但我不确定到底是什么。

基本上问题归结为是分片还是简单地添加更多 RAM。当然,后者更简单。看起来我最多可以添加 256 Gb RAM。但问题是我是否应该投入更多时间来实施分片,因为它更具可扩展性?