问题标签 [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.
sql-server - 修改外键创建分布式数据库
我正在分发一个数据库,但我有两个表,其中包含对其他服务器中其他数据库的外键引用。我已经搜索并发现我无法在其他服务器中创建引用另一个数据库中的表的外键。但是,我该如何解决这个问题?创建视图?
mysql - MySQL Cluster 7.3 如何实现 99,999% 的可用性?CAP定理的对立面
根据《使用 MySQL Cluster 扩展 Web 数据库指南》,MySQL Cluster 7.3 在使用同步更新复制的同时可以实现 99,999% 的可用性。这将与CAP 定理相反,因为它指出完美的可用性(99,999% 可以看作是这样,不是吗?)和一致性在分布式系统中是无法实现的。
如果负责副本的数据节点不可访问,集群将如何对更新做出反应?对于同步更新复制,它必须阻塞,这会影响可用性。
该指南指出:
- 数据节点内的数据同步复制到节点组内的所有节点。如果一个数据节点发生故障,那么总会有至少一个其他数据节点存储相同的信息。
- 在数据节点发生故障的情况下,MySQL 服务器或应用程序节点可以使用节点组中的任何其他数据节点来执行事务。应用程序只需重试事务,其余数据节点将成功满足请求。
但是,如果一个节点组由两个节点和一个崩溃组成(这里的示例),这将如何工作?据我所知,没有节点可以将更新复制到使用同步更新复制时会导致更新失败的内容?!复制是否只是在不存在要写入副本的节点时暂停?
guid - 如何在 Windows Azure Mobile 服务中支持 GUID
特别提到 WAMS 需要一个 int ID 列才能在 SQL Azure 中工作。但是,在分布式数据库上开发企业应用程序时,GUID 是首选的主键。如何避开 int ID 列并支持 GUID?
如果无法做到这一点,那么如何从运行使用 WAMS 的应用程序的各种平板电脑/移动设备上的多个独立数据库同步云上的数据?
hadoop - 了解 Nutch 的 hBase 数据存储(网页)
我使用 HBase 作为 Apache Nutch 爬取数据的存储。我的存储位置在路径 /data/hbase/webpage 中,在那里我可以看到很多文件夹,例如:
和更多...
这些文件夹包含另一个文件夹,例如:
但这不是那么重要。
我正在为 Nutch 编写自己的索引器,以获取从 HBase 到 Solr 的爬网数据。我需要将它分批放入 Solr,因为当我全部运行时,我得到 OutOfMemory 异常。
我想问你是否可以从我的 HBase 存储中获取批处理 id(知道我有哪些批处理 id,然后我可以将它发送到索引)。
database - 容错只写高度分布式数据库
场景:我有一个数据库,它通过不可靠的链接接受来自一组地理分布的客户端的写入。客户端只是做写操作,可能会读到自己最近2到3次写操作的数据。较旧的数据被归档到数据仓库。
问题:客户端通过不可靠的网络连接到数据库,并且当它们与服务器之间的数据链接关闭时无法写入。这导致大量工时浪费,因为客户端本质上是数据输入工具。不可能改善网络的连通性。
可能的解决方案:在每个客户端节点上运行一个缓存数据库代理,当数据链接断开时,该代理在本地缓存写入。当链接恢复时,它将所有写入推送到主数据库。
问题:是否存在任何这样的系统(如果存在,对于哪个数据库)还是我坚持自己编写这样的系统?
备注:
- 数据库本质上是关系型的。可以将其更改为基于 NoSQL 的结构,但这项工作将使项目至少推迟 6 个月。
- 这同样适用于使用分布式消息队列系统。
免责声明:除了提供Google F1的链接之外,Google 没有任何帮助。
mongodb - 创建 mongodb 分片集群的工具
我需要一个工具来管理 mongodbs 集群。随着机器数量的增加,没有工具就很难维护每台机器。
更多细节:
数据库每天大约增长 50 MB,因此它们大约是每月 1.5 GB。mongodb 非常适合这一点,因为只需在集群中增加一台机器即可解决大小问题。问题是这种更改需要输入主机配置并手动进行更改。我想用一个允许远程执行的工具来优化团队的时间,例如,运行和保存脚本或类似的东西。
nosql - 与文档数据库相比,大型键值存储在横向扩展方面谁做得更好?
在此演示文稿中,有一张图表显示了随着数据变大,以下水平可扩展性上限:
键值 > 列族 > 文档数据库 > 图数据库
http://youtu.be/UodTzseLh04?t=13m36s
换句话说,随着数据变得更加连接(即复杂),您可以让数据库增长的限制越来越低。
与键值存储相比,为什么文档数据库的数据大小没有那么可扩展?我是否通过说“连接数据的自由度越大,数据分区越难”来回答我自己的问题?
(每个人通常都会问的“我正在尝试做的事情”部分:我有一个数据库,其架构大部分是树状的,但偶尔会有两个父节点。我在原型中使用了 Neo4j,但用于生产规模应用程序我需要更多地考虑分区。我将不得不使用 Mongo DB,因为图形数据库不容易分区,并且在 Mongo DB 中为我的“多父”关系编写代码将更加困难。所以我'我想知道是否值得加倍努力并使用键值存储 - 或者至少是列族存储)。
design-patterns - 分布式数据库设计模式
我在不同的服务器上有多个数据库,其中一台服务器跨 WAN。该应用程序需要访问所有服务器上的数据,并可能加入 ServerA 上的一个表 A(本地)和 ServerB 上的一个表 B(跨 WAN)。最好的设计模式是什么?我在想,与其使用 SQL Server 链接服务器,不如在应用服务器上设置一个服务层来聚合数据(进行多次调用,每个数据库调用一次)。
这并不重要,因为我们正在讨论设计模式和最佳实践,但该应用程序是一个 .NET 应用程序,并且该服务可能是使用 TCP 绑定的 WCF 服务。
我的 DBA 建议我们编写一个存储过程并使用链接服务器加入另一个表。我担心这个解决方案是不可扩展的。
有什么建议吗?
sql-server - 从数据库备份到另一台服务器
我在服务器上有一台主机,其中包含一个 SQL Server 数据库。我在另一个国家有另一台服务器,我希望每 5 分钟从数据库备份一次,或者在每次事务后只将新行插入另一个数据库。经过一些研究,我发现我可以linkedservers
用于这个目标。这个程序对我做这个操作有用吗?
c++ - C/C++ 中的分布式键/值存储,具有可插拔存储
我正在寻找一个基于 C/C++ 的分布式键/值存储,它具有足够干净的设计,因此我可以插入自己的内存存储引擎。即使我必须进行代码更改才能做到这一点,也没关系。
有人有推荐吗?或者有类似的经历?基于 Java 的项目 Voldemort ( http://www.project-voldemort.com/voldemort/ ) 是一个很好的例子,除了它是用 JAVA 编写的,我正在寻找 C++ 或 C 的东西。