标签: distributed

使用多台机器建造

我有一个庞大的Windows C++项目,需要花费大量的时间来编译.你知道是否有一些免费工具可以使用连接在一起的多台电脑构建?

你知道在使用GCC的Linux中是否有一些免费工具在做同样的事情吗?

至少我可以做些什么来自己分工?谢谢

c++ distributed building

8
推荐指数
1
解决办法
382
查看次数

Cassandra 0.7中自动二级索引的可扩展性如何?

据我所知,为节点本地数据生成自动二级索引.

在这种情况下,通过二级索引查询涉及存储列族的一部分的所有节点以获得结果(?)所以(如果我是对的)如果数据分布在50个节点上,则单个查询中涉及50个节点?

这可以扩展多远?这比手动二级索引(倒排索引列系列)更具可扩展性吗?几个节点或一百个节点?

indexing distributed cassandra nosql

8
推荐指数
1
解决办法
1643
查看次数

寻找所有节点都可读/写的分布式/可扩展数据库解决方案?不是MongoDB?

我希望实现一个可以在地理上广泛分布的数据库,这样每个节点都可以读取/写入,并最终与所有其他节点保持一致.我应该在哪里看?

我认为MongoDB在出现这种担忧之前似乎是其他原因的不错选择.显然所有MongoDB节点都是可读的,但只有主节点是可写的?反正有没有绕过这个?我不能允许单点失败写入数据库.

database distributed scalability eventual-consistency mongodb

8
推荐指数
1
解决办法
7208
查看次数

复制如何在分布式数据库中工作

我想知道复制在分布式数据库中是如何工作的。如果能以彻底但易于理解的方式解释这一点,那就太好了。

如果您可以在分布式事务和分布式复制之间进行比较,那也很好。

database replication distributed distribution database-replication

8
推荐指数
1
解决办法
2433
查看次数

如果有多个领导者,Raft算法如何保证共识?

正如论文所说:

选举安全:在一个特定的任期内,最多只能选出一名领导人.§5.2

但是,系统中可能有多个领导者.筏只能承诺在给定的期限内只有一个领导者.所以如果我有多个客户端,我不会得到不同的数据吗?这如何让Raft成为一致的算法?

有什么我不明白的,有人可以解释一下吗?

algorithm distributed consensus raft

8
推荐指数
3
解决办法
1632
查看次数

如何创建分布式"去抖动"任务以消耗Redis列表?

我有以下用例:多个客户端推送到共享Redis列表.单独的工作进程应该排空此列表(处理和删除).Wait/multi-exec到位以确保,这很顺利.

出于性能原因,我不想立即调用'drain'进程,但是在x毫秒之后,从第一个客户端推送到(然后为空)列表的那一刻开始.

这类似于分布式下划线/ lodash 去抖动功能,计时器在第一个项目进入时开始运行(即:'领先'而不是'尾随')

我正在寻找以容错方式可靠地执行此操作的最佳方法.

目前我倾向于以下方法:

  1. 使用Redis的设置NXpx方法.这允许:
    • 仅将值(互斥锁)设置为专用键空间(如果尚不存在).这就是nx参数的用途
    • 在x毫秒后使密钥到期.这就是px参数的用途
  2. 1如果可以设置该值,则返回此命令,这意味着之前不存在任何值.0否则返回.A 1表示当前客户端是第一个运行该进程的客户端,因为Redis列表已耗尽.因此,
  3. 此客户端将作业放在分布式队列上,该队列计划在x毫秒内运行.
  4. 在x毫秒之后,接收作业的工作人员开始排空列表的过程.

这在纸上起作用,但感觉有点复杂.是否有其他方法可以以分布式容错方式工作?

顺便说一句:Redis和分布式队列已经到位,所以我不认为将它用于此问题是一个额外的负担.

queue distributed mutex redis debouncing

8
推荐指数
1
解决办法
1097
查看次数

BDD和微服务

我们的解决方案依赖于微服务.另一方面,我们的CIO希望我们在每个新功能上实施行为驱动开发.

是否可以在微服务架构中管理BDD?根据您的经验,对这样的架构采用BDD是一个好习惯,还是您认为我们应该直接看集成测试?

[编辑]

更确切地说,在我看来,BDD测试有望验证业务逻辑,而且只验证业务逻辑.在许多框架中,BDD测试场景由滑块持有者和DSL创建.BDD测试倾向于融合到独有的"基础设施无知"实践.另一方面,集成测试应该验证解决方案是否与目标基础架构匹配(它们是由DevOps完成的?),而只是验证基础架构.当业务功能在微服务上"分布"时,您应该在BDD测试环境中模拟几乎所有(基础设施和业务)(应该是本地环境),并且模拟业务会削弱您的目标.你认为这些做法兼容吗?

c# bdd distributed specflow microservices

8
推荐指数
1
解决办法
1063
查看次数

逻辑时钟:Lamport时间戳

我目前正在尝试了解Lamport时间戳.考虑两个过程P1(产生事件a1,a2,...)和P2(产生事件b1,b2,......).设C(e)表示与事件e相关的Lamport时间戳.我为维基百科关于Lamport时间戳的文章中描述的每个事件创建了时间戳:

在此输入图像描述

根据维基百科,以下关系适用于所有事件e1,e2:

如果e1发生在e2之前,那么C(e1)<C(e2).

我们来看看a1b2.显然a1发生在b2之前,并且由于 C(a1)= 1C(b2)= 3,因此关系成立:C(a1)<C(b2).

问题:对于b3a3,这种关系不适用.显然,b3发生在a3之前.但是,C(b3)= 4,C(a3)= 3.因此,C(B3)<C(A3),不能适用.

我误解了什么?非常感谢帮助!

messaging distributed timing clock distributed-system

8
推荐指数
3
解决办法
1728
查看次数

分布式张量流如何工作?(tf.train.Server问题)

我对tensorflow的新选项有一些麻烦,它允许我们运行分布式张量流.

我只想运行2个tf.constant和2个任务,但我的代码永远不会结束.它看起来像那样:

import tensorflow as tf

cluster = tf.train.ClusterSpec({"local": ["localhost:2222", "localhost:2223"]})
server = tf.train.Server(cluster,
                        job_name="local",
                        task_index=0)

with tf.Session(server.target) as sess:
    with tf.device("/job:local/replica:0/task:0"):
        const1 = tf.constant("Hello I am the first constant")
    with tf.device("/job:local/replica:0/task:1"):
        const2 = tf.constant("Hello I am the second constant")
    print sess.run([const1, const2])
Run Code Online (Sandbox Code Playgroud)

我有以下代码(只有一个localhost:2222):

import tensorflow as tf

cluster = tf.train.ClusterSpec({"local": ["localhost:2222"]})
server = tf.train.Server(cluster,
                        job_name="local",
                        task_index=0)

with tf.Session(server.target) as sess:
    with tf.device("/job:local/replica:0/task:0"):
        const1 = tf.constant("Hello I am the first constant")
        const2 = tf.constant("Hello I am the second constant")
    print …
Run Code Online (Sandbox Code Playgroud)

python distributed cluster-computing server tensorflow

8
推荐指数
1
解决办法
1184
查看次数

在多个GPU上运行相同的模型,但是向每个GPU发送不同的用户数据

任何人都可以成功实现高效的数据并行,您可以将相同的模型定义发送到多个GPU,但是向每个GPU发送不同的用户数据?

看起来dist-keras可能很有希望.但我很乐意听到有关这些方面采取的任何方法的反馈.

我们有用户行为数据:100k用户,200个字段(单热矢量),每个用户30,000条记录.我们使用Keras在Tensorflow之上构建了一个RNN,以预测仅为1个用户采取的下一个行动(20多个可能的行动中).在1个GPU上训练需要大约30分钟.(我的盒子有8个GPU).现在,我们想为所有100k用户构建模型.

我们能够使用多GPU方法为单用户数据执行数据并行.

但由于该模型每个用户需要30分钟,并且有10万用户,我们希望按用户对数据进行分区,并使用群集以分布式方式为每个用户数据运行相同的模型,并为该用户生成模型输出.

我目前正在使用带有TensorFlow 1.4的Keras 2.1.x.

python distributed pyspark keras tensorflow

8
推荐指数
1
解决办法
661
查看次数