问题标签 [distributed-database]

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 投票
1 回答
225 浏览

mysql - mysql分布式主键

我有不同的表需要共享一个主键池。

例如,表 A 的主键为 0 到 9,表 B 的主键为 10 到 19。

有没有办法告诉mysql从哪里绘制主键?像存储过程?执行一个知道桶分布的脚本就足够了。

一种天真的方法是在每个插入语句中设置主键。该PK是从该池中提取的。实际上,这需要在插入我想要避免的数据库的每个应用程序(如 php 或 java)中实现。

0 投票
1 回答
716 浏览

distributed - 在Orientdb中以分布式方式创建数据库

我们的系统以编程方式创建 OrientDB 数据库,并为每个客户使用一个数据库(在任何人放弃此设计之前,原因是安全性、在数据中心/区域之间移动某些客户/数据的可能性以及迁移到本地的可能性)。

这在 OrientDB 中的单模式下效果很好。但是,当数据库以分布式模式(亚马逊上的 3 台服务器)设置时。委婉地说,这种行为很奇怪。我知道文档没有说明支持这一点,但我也找不到任何说它不支持的内容。

有时数据库创建得很好,但客户端无限期锁定(在 中OAdaptiveLock.lock())。有时需要重新启动整个集群才能使用数据库,有时,就像撰写本文时一样,一个 OrientDB 节点在似乎与其他节点同步后自行关闭(Address[1.2.3.4]:2434 is SHUTTING_DOWN [LifecycleService]-> Terminating forcefully... [Node])。错误消息由堆栈跟踪(见下文)进行。

所以,对于我的问题:

  1. OrientDB 是否支持以分布式模式在线创建数据库?
  2. 如果是这样,我会做错什么?
  3. 如果没有,是否有计划在未来支持此功能?

提前致谢!

./安德斯

堆栈跟踪:

0 投票
1 回答
782 浏览

python - DynamoDb 安全更新

我正在尝试更新我的简单数据库中的计数器(一个键,一个数值)。原子计数器似乎是自然的解决方案,但我需要线程安全更新,即我需要确保更新不会相互干扰。

这个答案似乎表明我需要在执行实际写入之前仔细检查数据是否被另一个更新修改。

我的问题是,如何在 a 中引用 db 中的当前值ConditionExpression?假设tabledynamodb.Table对象(Python API),这是我编写的代码update_item

0 投票
1 回答
138 浏览

apache-zookeeper - 主备分布式系统中共识协议的理论结果

我正在学习分布式系统中的共识协议知识。这样的分布式系统对数据库进行主备份。

我了解到“每个共识协议都可以永远循环”。来自 基于 paxos 的复制键值存储的领导者选举

“每个共识协议都可以永远循环”的信息来源在哪里?

Status update:问题已回答。rystsov 和另一个职位的另一个人提供了相同的信息来源。

能否分享更多的理论成果和相应的信息来源?

0 投票
1 回答
335 浏览

mysql - 将表从主服务器动态分区到远程 mySQL 服务器

我的数据库中有一个表,我需要根据外键属性对其进行分区。因此,分区表的数量与外键存在的不同值的数量相同。

编辑:我设置了复制,其中主服务器中的一个表被复制到四个从服务器中。从属服务器不需要复制主服务器中的整个表,而只需要复制它的一个分区,如图所示。怎样才能做到这一点?

图片:复制分区

0 投票
1 回答
918 浏览

database - 多个数据库的事务回滚

我最近在一次采访中被问到一个问题。问题是:

我有两个不同的数据库,我需要更新两个数据库上的表。我们想要数据一致性。我更新了第一个数据库中的表,然后在更新第二个数据库时出现错误。那么在这种情况下我能做些什么呢?

我想把所有的东西都放在一个事务中,如果我有一个例外,我坚持我可以回滚。但他们说,由于有 2 个不同的数据库,不可能将它们放在同一个事务中。我不确定我是否理解正确,但我找不到其他解决方案。

现在我在问什么。

1)是否可以在一个事务中对两个不同的数据库进行两次查询?正如我在一些帖子中所读到的那样,这是可能的,但在他们说了什么之后我无法确定。

2)如果无法在事务中管理它们,我该如何回滚第一个数据库中的更改。

0 投票
2 回答
205 浏览

sql - 两个数据库之间的外键

我通过前面的答案创建了一个伪外键来引用 Netbeans 8.1 中两个数据库之间的表。这是我想出的代码,

但是,我遇到以下错误:

0 投票
0 回答
175 浏览

database - 实体关系模型示例如何成为分布式数据库

我曾尝试使用分布式数据库的模式寻找实体关系模型,但我找到了图表:

在此处输入图像描述

或者我找到了实体关系模型,但它们没有像这样使用分布式数据库的模式......

在此处输入图像描述

我做了下一张图,但老师说我没有使用分布式数据库模式。如何将其转换为分布式数据库模式? 在此处输入图像描述

0 投票
0 回答
188 浏览

sql-server - sql server中的分布式数据库实现

目前,我们在总公司拥有中央数据库,来自全国各地的分支机构用户连接到中央数据库。现在我们希望在每个子办公室级别以断开模式分发数据库,​​并且我们希望在一天结束时在中央数据库与所有其他数据库同步数据。我们还希望将数据从中央数据库传输到所有数据库。请参考我在 SQL Server 中实现此方案的教程或方法。提前致谢。

0 投票
1 回答
79 浏览

powershell - 如何在 NosDB 开源中添加第二个节点?

我正在尝试NosDB,在单个节点上创建了数据库集群,然后在我的数据库集群中添加了第二个节点,但我失败并显示错误消息“Add-Shard : Login 'asif_mehmood' does not exist”。
我执行的步骤:

  • 在两个盒子上安装了 NosDb OpenSource。
  • 使用 New-DatabseCluster powershell cmmdlet 在第一个盒子上创建了一个带有一个分片的集群。
  • 使用 Add-shard powershell cmdlet 添加了另一个以第二个框为节点的分片。
  • 失败并显示以下错误消息

Add-Shard:登录 'asif_mehmood' 不存在
在行:1 char:1
+ Add-Shard -Name shard2 -Server 192.168.0.15 -Port 2250