如何在分布式环境中有效地查找有关UUID的信息?

时间:2009-11-10 09:48:11

标签: distributed uuid

我目前正在使用modulo对UUID空间进行分区,因此数据查找不需要ping每个服务器。但是,模数的主要问题是缩放,因为向数据存储区添加更多节点可能需要一些数据迁移。在您看来,在保持服务可用的同时向系统添加更多节点的最佳方法是什么?

提前致谢!

克里斯

1 个答案:

答案 0 :(得分:0)

我可以看到两种添加更多节点的方案:

  1. 您当前的节点集不足以满足您的性能要求。
  2. 您正在添加新数据,因此随着时间的推移,您需要添加新节点
  3. 在第二种情况下,如果UUID有一些基于时间的组件,那么按年龄划分可能就足够了

    但我猜这是第一个更有趣的案例。随着数据使用的使用,您会发现需要更改分区才能充分分配工作。在这种情况下,我没有看到将某些分区移动到新节点的任何替代方法,通过定义当前的节点se重载。我不清楚问题的严重程度 - 实际的迁移是否很麻烦?或者客户是否突然需要到新的地方获取数据?

    你能实现某种懒惰的查找方法吗?

    Client initialises with current table of servers, 
        (hence knows the modulus to apply to uuid and can route on that basis)
    
    Servers decide to reorganise themselves
    
    Client gets a request, calclulates a now invalid modulus
    
    Attempts to access the data
    
    response says "Gone Away" **AND** gives the new server info
    
    Client can now recompute the location