标签: distributed

Paxos的真实世界的例子

有人能给我一个关于如何在分布式数据库中使用Paxos算法的真实示例吗?我已经阅读了许多关于Paxos的论文来解释算法,但没有一篇真正用实际例子来解释.

一个简单的例子可能是银行应用程序,其中一个帐户正在通过多个会话进行修改(即柜员存款,借记操作等).Paxos是否用于决定首先进行哪种操作?此外,Paxos协议的多个实例意味着什么?怎么用这个?基本上,我试图通过一个具体的例子而不是抽象的术语来理解这一切.

algorithm distributed consensus paxos

14
推荐指数
1
解决办法
3721
查看次数

如何保护私有REST API

我目前正在考虑如何保护仅由我的移动应用程序使用的REST API被其他应用程序使用?API密钥可以是一个很好的解决方案,因为只有我知道秘密的API密钥.有更好的解决方案吗?

api rest soa distributed interface

13
推荐指数
2
解决办法
6424
查看次数

超图能代表一种不确定的图灵机吗?

有没有人知道任何论文,文本或其他文件讨论使用超图来实现或代表一个不确定的图灵机?它们实际上是等同的吗?

例如,我非常确定超图能够正确且完整地表示非确定性图灵机的状态转换.但到目前为止,我还没有找到任何可以验证这一点的印刷品.在我看来,这似乎是一种如此明显的关系,但事实上,我没有找到现有的艺术,这让我觉得我走错了路.(也可能是我发现的东西不足以让我理解它在说什么.);-)

为什么我要问:我正在开发一个开源软件包,它在对等网络中进行分布式数据存储和分布式计算.我正在寻找可能支持所需功能的最原始的数据结构.到目前为止,分布式超图看起来很有希望.我的理由是,如果超图可以支持像非确定性图灵机一样通用的东西,那么它应该能够支持更高级别的图灵完整DSL.(还有其他原因,"非确定性"部分也可能对我有价值,与分布式数据和/或计算结果的版本控制有关.尽管这里试图避免论文.)

部分答案:

theory distributed graph-theory turing-machines

13
推荐指数
1
解决办法
666
查看次数

OrientDB嵌入式和分布式

我应该在Java-Groovy应用程序中以嵌入模式使用OrientDB.同时,我必须在几台机器上分发这个java-groovy应用程序.

问题是:是否可以从所有机器访问同一个数据库?换句话说:在OrientDB中是否可以在嵌入模式下使用分布式数据库?

谢谢

distributed orientdb

13
推荐指数
2
解决办法
5005
查看次数

分布式随机数生成

我想知道N个参与者的网络是否有办法同意随机选择从1到M的数字.(例如,不受任何参与者的影响)通过硬币投掷协议已经解决了n = 2和m = 2的值.有谁知道任何可以适用于N和M的任意值的解决方案?

random distributed

12
推荐指数
1
解决办法
3814
查看次数

Erlang对*透明*演员分配的支持如何影响应用程序设计?

Erlang中actor模型的一个特性是透明分布.除非我误解,当你在演员之间发送消息时,理论上你不应该假设它们在同一个进程空间中,甚至不在同一个物理机器上.

我一直认为分布式容错系统需要仔细的应用程序设计来解决有关排序/因果关系共识(以及其他)的固有问题.

我很确定Erlang不承诺透明地解决这些类问题,所以我的问题是,Erlang开发人员如何应对这一问题?您是否将所有演员设计在相同的进程空间中,然后在实际分发它们时才解决分发问题?

如果是这样,这是透明的分配二郎真的只是关心用于远程通讯的有线协议,并没有真正的功能透明在这个意义上,真正的分布式应用程序仍需要在应用层精心设计?

algorithm erlang distributed actor

12
推荐指数
1
解决办法
1015
查看次数

JavaScript分布式计算项目

我创建了一个绝对没有任何内容网站,我已经向自己证明了人们喜欢呆在那里 - 我已经在页面上记录了超过11个小时的累积时间.

我的问题是,将网站用作分布式计算网站是否可能(或实际).

我的第一个冲动是找出是否有任何JavaScript分布式计算项目已经处于活动状态,以便我可以在页面上放置一段代码并完成.不幸的是,我所能找到的只是一大堆网站,认为这可能是一个很酷的主意.

我想我可能想要从整数分解开始 - 在这种情况下,RSA数字.服务器很容易检查答案是否正确(只需测试模数等于零),并且易于实现.

我的想法可行吗?那里有一个我可以使用的项目吗?

javascript distributed distributed-computing

12
推荐指数
1
解决办法
2120
查看次数

数据中心和面向对象的应用程序模型之间有什么区别?

什么是以数据为中心的应用程序,与面向对象的应用程序模型有什么区别?

architecture oop distributed

12
推荐指数
2
解决办法
1万
查看次数

建议的解决方案:在分布式环境中生成唯一ID

我一直在浏览网络,试图找到一个允许我们在区域分布式环境中生成唯一ID的解决方案.

我查看了以下选项(以及其他选项):

SNOWFLAKE(Twitter)

  • 这似乎是一个很好的解决方案,但我不喜欢为了创建ID而必须管理另一个软件的额外复杂性;
  • 它在这个阶段缺乏文档,所以我认为这不是一个好的投资;
  • 节点需要能够使用Zookeeper相互通信(延迟/通信故障怎么样?)

UUID

  • 看看吧:550e8400-e29b-41d4-a716-446655440000 ;
  • 它是一个128位ID;
  • 有一些已知的碰撞(取决于我猜的版本)看到这篇文章.

与MYSQL类似的关系数据库中的自动编码

  • 这似乎是安全的,但不幸的是,我们没有使用关系数据库(可伸缩性首选项);
  • 我们可以为此部署一个MySQL服务器,就像Flickr所做的那样,但同样,这又引入了另一个故障点/瓶颈.还增加了复杂性.

像COUCHBASE一样的非关系数据库中的自动识别

  • 这可能有用,因为我们使用Couchbase作为我们的数据库服务器,但是;
  • 当我们在不同区域有多个集群,延迟问题,网络故障时,这将无效:在某些时候,ID会根据流量的数量发生冲突;

我提出的解决方案(这是我需要帮助的)

假设我们在5个不同的地区(非洲,欧洲,亚洲,美洲和大洋洲)拥有由10个Couchbase节点和10个应用节点组成的集群.这是为了确保从最靠近用户的位置提供内容(以提高速度)并在发生灾难时确保冗余等.

现在,任务是生成在复制(和平衡)发生时不会发生碰撞的ID,我认为这可以通过3个步骤实现:

步骤1

将为所有区域分配整数ID(唯一标识符):

  • 1 - 非洲;
  • 2 - 美国;
  • 3 - 亚洲;
  • 4 - 欧洲;
  • 5 - Ociania.

第2步

为添加到群集的每个应用程序节点分配一个ID,记住一个群集中最多可能有99 999个服务器(尽管我怀疑:这是一个安全的预防措施).这看起来像这样(假IP):

  • 00001 - 192.187.22.14
  • 00002 - 164.254.58.22
  • 00003 - 142.77.22.45
  • 等等.

请注意,所有这些都在同一个集群中,这意味着您可以在每个区域拥有节点00001.

第3步

对于插入数据库的每个记录,将使用递增的ID来标识它,这就是它的工作方式:

Couchbase提供了一个增量功能,我们可以使用它在群集内部创建ID.为确保冗余,将在群集中创建3个副本.由于它们位于同一个地方,我认为应该可以安全地假设除非整个群集关闭,否则将有一个负责此节点的节点,否则可以增加许多副本.

将它们整合在一起

假设用户正在从欧洲注册:服务请求的应用程序节点将获取区域代码(在这种情况下为4),获取自己的ID(比如00005),然后从Couchbase 获取增加的ID(1)(来自相同的)簇).

我们最终有3个组成部分:4, 00005,1.现在,要从中创建ID,我们可以将这些组件加入其中4.00005.1.为了使它更好(我对此不太确定),我们可以连接(而不是添加它们)组件以结束:4000051.

在代码中,这将看起来像这样:

$id = '4'.'00005'.'1'; …

php distributed couchbase

12
推荐指数
1
解决办法
2580
查看次数

如何运行tensorflow分布式mnist示例

我是分布式tensorflow的新手.我在这里找到了这个分布式的mnist测试:https: //github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/dist_test/python/mnist_replica.py

但我不知道如何让它运行.我使用了以下脚本:

  python distributed_mnist.py  --num_workers=3 --num_parameter_servers=1 --worker_index=0 --worker_grpc_url="grpc://tf-worker0:2222"\
  & python distributed_mnist.py  --num_workers=3 --num_parameter_servers=1 --worker_index=1 --worker_grpc_url="grpc://tf-worker1:2222"\
  & python distributed_mnist.py  --num_workers=3 --num_parameter_servers=1 --worker_index=2 --worker_grpc_url="grpc://tf-worker2:2222"
Run Code Online (Sandbox Code Playgroud)

我刚发现这些参数丢失了,所以我将它们传递给程序.这是发生了什么:

I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:105] successfully opened CUDA library …
Run Code Online (Sandbox Code Playgroud)

distributed deep-learning tensorflow

12
推荐指数
1
解决办法
1万
查看次数