标签: distributed-system

什么是垂直和水平分布?

  • 垂直分布:分布式处理相当于组织client-server application一个multitiered architecture .将逻辑上不同的组件放在不同的机器上.
  • 横向分布:clients and servers在现代建筑中更常见的分布.A client或者server可以physically分成logically 等价的部分,但是每个部分都在它自己的完整数据集的共享上运行,从而平衡负载.

我试着了解vertical和之间有什么不同horizontal?" logically"和" physically" 的含义是什么?...但我不能!有谁知道.. ??

distributed-system

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

HBase如何保证行级原子性?

考虑到HBase将每个列族存储在单独的HFile中以及行可以跨越多个列族的事实.HBase如何确保跨越多个列族的行的放置/删除操作确实是原子的?

database hadoop hbase distributed-system nosql

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

查找前10个最常访问的URl,数据存储在网络中

来源:Google面试问题

给定一个庞大的计算机网络,每个计算机保留访问过的URL的日志文件,找到前十个访问最多的URL.

有很多大<string (url) -> int (visits)> maps.

计算 < string (url) -> int (sum of visits among all distributed maps)并获得组合地图中的前十名.

主要约束:地图太大,无法通过网络传输.也不能直接使用MapReduce.

我现在遇到了很多这类问题,其中processiong需要在大型分布式系统上完成.我无法思考或找到合适的答案.

我所能想到的只是蛮力,它以某种或其他方式违反了给定的约束.

algorithm performance distributed-system large-data

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

共享GPU上的Tensorflow:如何自动选择未使用的GPU

我可以通过ssh访问n个集群的GPU.Tensorflow自动给它们命名为gpu:0,...,gpu:(n-1).

其他人也可以访问,有时他们会随机访问gpus.我没有任何tf.device()明确的说明,因为这很麻烦,即使我选择了gpu编号j,并且有人已经在gpu编号j上会有问题.

我想通过gpus使用,找到第一个未使用的,只使用这个.我猜有人可以nvidia-smi用bash 解析输出并获得变量i并将该变量i作为要使用的gpu的数量提供给tensorflow脚本.

我从未见过这样的例子.我想这是一个非常普遍的问题.最简单的方法是什么?是一个纯粹的张量流可用吗?

gpu distributed-system tensorflow

8
推荐指数
2
解决办法
1901
查看次数

zookeeper和raft有什么区别?

这真是愚蠢,但动物园管理员做的那个木筏没有 - 不是说zab而是动物园管理员本身.

我得到筏子领导选举等服务器,但动物园管理员的意义何在?是否有任何人有类比

algorithm distributed-computing distributed-system raft

8
推荐指数
2
解决办法
4162
查看次数

Zookeeper 和托管复制数据库服务之间的区别

我刚刚遇到 Zookeeper,想知道 Zookeeper 与可用的、一致的、持久的、分布式的、复制的数据库服务(如 AWS DynamoDB 甚至 AWS S3(存储服务))之间有什么区别。配置管理、分布式同步等关键功能可以通过 AWS DynamoDB 等数据库产品很好地实现。我知道 Zookeeper 和 DynamoDB 等产品之间存在架构差异。但是,从功能的角度来看,两者之间有什么主要区别吗?是否有任何理由使用 Zookeeper 而不是其他。

distributed-system amazon-web-services amazon-dynamodb apache-zookeeper

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

PBFT:为什么副本在 2/3 准备好后无法执行请求?为什么我们需要提交阶段?

我知道该网站上有一些问题提出了相同的问题。然而答案始终不明确:

在PBFT中,为什么副本在2/3秒准备好后无法执行请求?为什么需要提交阶段?如果 2/3 + 1 个副本同意准备,那么我认为他们可以执行请求而无需再次广播?

distributed-system consensus

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

什么是崩溃循环?

我正在阅读谷歌的网站可靠性工程书,并遇到了我以前从未听说过的崩溃循环这个词,也无法找到定义

“如果一个任务尝试使用比它请求的更多的资源,Borg 会终止该任务并重新启动它(因为一个缓慢崩溃循环的任务通常比一个根本没有重新启动的任务更可取?)。“

什么是崩溃循环,如果有的话,它与无限循环相比如何?

sysadmin crash reliability distributed-system

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

我怎样才能从多台机器上为我的 django 网站提供服务,那我怎样才能让它分布?

我有我的 django 网站,我想把它做成分布式,我知道系统设计和分布式系统的所有概念,但仍然不知道如何使用多个服务器为它提供服务。我正在尝试使我的系统分布式,以便我可以从两台机器上为我的网站提供服务(这就是分布式系统的工作方式)。我已经在 Django 中编写了我的网站。我想知道让我的同一个网站在两台机器上提供服务的步骤。这就是两个系统将如何相互了解,它们将如何连接以及每当请求进来时,将选择其中一个服务器来处理请求。我应该使用什么软件或工具来加入我的服务器,在这种情况下哪个软件将接受请求,以便它可以决定将请求发送到哪台机器以及在这种情况下应该如何配置数据库?

PS:我唯一知道的是如何使用一台服务器为我的 django 网站提供服务(从 Linode、DigitalOcean 获取机器实例)。我想为我的网站实现系统设计分布式系统概念,以便我可以通过亲自实施它来学习系统设计的所有概念

django distributed-computing distributed-system system-design server

8
推荐指数
2
解决办法
2050
查看次数

一致性哈希,为什么需要 Vnode?

我对一致性哈希的理解是,您采用一个密钥空间,对密钥进行哈希处理,然后按 360 进行取模,然后将值放入一个环中。然后,在该环上均匀分布节点。您可以通过从散列密钥所在的位置顺时针查看来选择处理该密钥的节点。

然后在许多解释中他们继续描述Vnode。在引用 dynamo 论文的riak 文档中,他们说:

The basic consistent hashing algorithm presents some challenges. First, the random position assignment of each node on the ring leads to non-uniform data and load distribution.
Run Code Online (Sandbox Code Playgroud)

然后他们继续提出 Vnodes 作为确保输入密钥空间在环周围均匀分布的一种方法。据我了解,要点是 Vnode 划分范围的次数比机器多得多。假设您有 10 台机器,则可能有 100 个 Vnode,并且单个机器的 Vnode 将随机分散在环周围。

现在我的问题是为什么需要这个额外的 Vnode 步骤。哈希函数应该提供其输出的均匀分布,因此这似乎是不必要的。根据这个答案,即使哈希函数的模仍然是均匀分布的。

distributed-computing distributed-system consistent-hashing

8
推荐指数
2
解决办法
2698
查看次数