`

Replica Selection/Propogate Strategy

阅读更多

Choose sequence: local node -> local rack -> remote rack

a selected replica node should be a good node:
1> if the node is (being) decommissed
2> the remaining capacity of the target machine
3> the communication traffic of the target machine
 based on current connection of that machine, if current connection number > average connection num(total connections / total machine size) node.getXceiverCount() > (2.0 * avgLoad)
4> if the target rack has chosen too many nodes

Data replication topology:
first replica machine -> second replica -> ...

After a list of replicas are selected, replica list should be sorted in pipe.
The aim of this sort is to find the shortest path, since data replication will be travelling from the first replica machine to the final replica machine, so, we should reduce round trip.
This is basically a traveling salesman problem:

java 代码
  1. int index=0;   
  2. for( ;index
  3.   DatanodeDescriptor shortestNode = null;   
  4.   int shortestDistance = Integer.MAX_VALUE;   
  5.   int shortestIndex = index;   
  6.   forint i=index; i
  7.     DatanodeDescriptor currentNode = nodes.get(i);   
  8.     int currentDistance = clusterMap.getDistance( writer, currentNode );   
  9.     if(shortestDistance>currentDistance ) {   
  10.       shortestDistance = currentDistance;   
  11.       shortestNode = currentNode;   
  12.       shortestIndex = i;   
  13.     }   
  14.   }   
  15.   //switch position index & shortestIndex   
  16.   if( index != shortestIndex ) {   
  17.     nodes.set(shortestIndex, nodes.get(index));   
  18.     nodes.set(index, shortestNode);   
  19.   }   
  20.   writer = shortestNode;   
  21. }  
分享到:
评论

相关推荐

    Android 游戏源代码 Replicaisland(含截图)

    Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland...

    Dynamic replica placement

    本文主要探讨了数据网格环境中动态副本放置(Dynamic Replica Placement)及副本选择(Replica Selection)的相关策略和技术。数据网格作为一种分布式计算架构,其核心在于提供一个共享资源的平台,包括计算能力、...

    master and slave have equal MySQL server UUIDs 解决方法

    使用rsync配置了大量mysql,省去了大量编译和配置的时间,随逐个修改master和slave服务器的my.cnf,后,发现数据不能同步,在slave服务器show slave status: Fatal error: The slave I/O thread stops because ...

    Replicaisland_a5源码

    《Replicaisland_a5源码解析:深入理解Android应用开发》 Replicaisland_a5源码,作为一款基于Android平台的开源项目,为开发者提供了深入学习Android应用开发的宝贵资源。它揭示了Android游戏开发的核心技术,帮助...

    Qt Remote Object(QtRO)动态Replica实现进程间通信Demo

    在本文中,我们将深入探讨如何使用Qt Remote Objects(QtRO)框架实现动态Replica进行进程间通信(IPC)。QtRO是Qt库的一部分,它提供了一种高效、灵活的方式来跨进程共享对象,使得分布式系统开发变得简单。让我们...

    好玩的Andorid游戏Replica island源文件

    Andorid Replica island源码下载,基于Java代码实现,有APK编译器的可下载后重新编译,如效果截图所示。本款游戏的名字好像叫“小绿人历险记”,具体名字我没看到,希望有兴趣的下载源码吧,完整的Java源码。

    Mongodb的ReplicaSets+Sharding架构(window篇)

    MongoDB的Replica Sets+Sharding架构是大数据时代下应对高可用性和可扩展性需求的重要解决方案。本篇文章将深入探讨这两个关键特性在Windows环境下的应用。 **副本集(Replica Sets)** MongoDB的副本集是一种高可用...

    mongodb集群搭建.pdf

    - **创建目录:** 在每台机器上分别创建`replica1`、`replica2`、`configserver`、`route`目录,并在每个目录下创建`data`、`logs`目录以及`mongodb.cfg`配置文件。 - **配置文件示例:** 配置文件用于定义MongoDB的...

    k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)

    k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set) k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set)是结合 Kubernetes(k8s)和 MongoDB 实现高可用性和高性能的解决方案。本解决方案通过使用 ...

    mongodb_replica

    在高可用性场景下,MongoDB 提供了副本集(Replica Set)功能,用于实现数据冗余和故障转移。在本项目中,我们将使用SpringBoot集成MongoDB副本集,探讨读写操作如何自动分发到主从节点。 1. **MongoDB 副本集** -...

    replicaisland

    《ReplicaIsland》是一款基于Android平台的2D动作冒险游戏,它的开源代码为开发者提供了一个深入了解游戏开发的宝贵资源。这个项目展示了如何利用Java语言和Android SDK来创建一款完整的游戏,涵盖了游戏设计、编程...

    Android代码-Replicaisland.zip

    【Android代码-Replicaisland.zip】是一个包含有关Android应用开发的资源包,特别是针对一个名为"Replicaisland"的游戏项目的源代码。这个项目可能是为了教学目的或个人学习而设计的,它允许开发者深入了解Android...

    mongodb replica set(副本集)设置步骤

    MongoDB的副本集(Replica Set)是一种高可用性解决方案,它通过在多个节点之间复制数据来确保数据的冗余和容错性。在MongoDB中,副本集由一组 MongoDB实例组成,包括一个主节点(Primary)和多个从节点...

    trex-replica-tempo:T-Rex Replica Delay Pedal 的 Tap Tempo Setter

    trex-replica-tempo Clojure 命令行实用程序,用于在 T-Rex Replica 延迟上设置速度。用法 lein uberjarjava -jar target/replica-bpm.jar -b 120 -d MIDI使用名为MIDI的 Midi 设备将 BPM 设置为 120。 查看所有可用...

    Hyper-V replication与Storage Replica比较.pdf

    Hyper-V replication和Storage Replica是两种在Windows Server环境中用于数据保护和灾难恢复的技术,它们各自具有不同的特性和适用场景。在本文中,我们将深入探讨这两者的差异。 首先,Hyper-V replication是一个...

    Replica-Dataset:在https中发布的副本数据集v1

    副本数据集副本数据集是各种室内...引用副本数据集如果您在研究中使用副本数据库,请引用以下: @article{replica19arxiv, title = {The {R}eplica Dataset: A Digital Replica of Indoor Spaces}, author = {Julian S

    安卓Android源码——Replicaisland.zip

    《安卓Android源码——Replicaisland》 Replicaisland是Android平台上的一款经典小游戏,它的源码公开,为开发者提供了深入理解Android游戏开发的宝贵资源。通过分析这个项目,我们可以学习到Android应用和游戏的...

    MongoDB的replica set的部署,检测优化,

    MongoDB的复制集(Replica Set)是一种高可用性架构,用于确保数据的冗余和容错性。在MongoDB中,复制集是由多个具有相同数据副本的节点组成,其中一个是主节点(Primary),其余是次级节点(Secondary)。主节点...

Global site tag (gtag.js) - Google Analytics