有人能给我一个关于如何在分布式数据库中使用Paxos算法的真实示例吗?我已经阅读了许多关于Paxos的论文来解释算法,但没有一篇真正用实际例子来解释.
一个简单的例子可能是银行应用程序,其中一个帐户正在通过多个会话进行修改(即柜员存款,借记操作等).Paxos是否用于决定首先进行哪种操作?此外,Paxos协议的多个实例意味着什么?怎么用这个?基本上,我试图通过一个具体的例子而不是抽象的术语来理解这一切.
我目前正在考虑如何保护仅由我的移动应用程序使用的REST API被其他应用程序使用?API密钥可以是一个很好的解决方案,因为只有我知道秘密的API密钥.有更好的解决方案吗?
有没有人知道任何论文,文本或其他文件讨论使用超图来实现或代表一个不确定的图灵机?它们实际上是等同的吗?
例如,我非常确定超图能够正确且完整地表示非确定性图灵机的状态转换.但到目前为止,我还没有找到任何可以验证这一点的印刷品.在我看来,这似乎是一种如此明显的关系,但事实上,我没有找到现有的艺术,这让我觉得我走错了路.(也可能是我发现的东西不足以让我理解它在说什么.);-)
为什么我要问:我正在开发一个开源软件包,它在对等网络中进行分布式数据存储和分布式计算.我正在寻找可能支持所需功能的最原始的数据结构.到目前为止,分布式超图看起来很有希望.我的理由是,如果超图可以支持像非确定性图灵机一样通用的东西,那么它应该能够支持更高级别的图灵完整DSL.(还有其他原因,"非确定性"部分也可能对我有价值,与分布式数据和/或计算结果的版本控制有关.尽管这里试图避免论文.)
部分答案:
我应该在Java-Groovy应用程序中以嵌入模式使用OrientDB.同时,我必须在几台机器上分发这个java-groovy应用程序.
问题是:是否可以从所有机器访问同一个数据库?换句话说:在OrientDB中是否可以在嵌入模式下使用分布式数据库?
谢谢
我想知道N个参与者的网络是否有办法同意随机选择从1到M的数字.(例如,不受任何参与者的影响)通过硬币投掷协议已经解决了n = 2和m = 2的值.有谁知道任何可以适用于N和M的任意值的解决方案?
什么是以数据为中心的应用程序,与面向对象的应用程序模型有什么区别?
我一直在浏览网络,试图找到一个允许我们在区域分布式环境中生成唯一ID的解决方案.
我查看了以下选项(以及其他选项):
SNOWFLAKE(Twitter)
UUID
与MYSQL类似的关系数据库中的自动编码
像COUCHBASE一样的非关系数据库中的自动识别
假设我们在5个不同的地区(非洲,欧洲,亚洲,美洲和大洋洲)拥有由10个Couchbase节点和10个应用节点组成的集群.这是为了确保从最靠近用户的位置提供内容(以提高速度)并在发生灾难时确保冗余等.
现在,任务是生成在复制(和平衡)发生时不会发生碰撞的ID,我认为这可以通过3个步骤实现:
步骤1
将为所有区域分配整数ID(唯一标识符):
第2步
为添加到群集的每个应用程序节点分配一个ID,记住一个群集中最多可能有99 999个服务器(尽管我怀疑:这是一个安全的预防措施).这看起来像这样(假IP):
请注意,所有这些都在同一个集群中,这意味着您可以在每个区域拥有节点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'; …
我是分布式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 ×10
algorithm ×2
actor ×1
api ×1
architecture ×1
consensus ×1
couchbase ×1
erlang ×1
graph-theory ×1
interface ×1
javascript ×1
oop ×1
orientdb ×1
paxos ×1
php ×1
random ×1
rest ×1
soa ×1
tensorflow ×1
theory ×1