MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
yakczh
V2EX  ›  MySQL

mysql写数据根据某种hash分布存储到不同机器上,怎么样实现机器增加以后,根据hash定位的规则一致?

  •  
  •   yakczh · Nov 10, 2013 · 3485 views
    This topic created in 4646 days ago, the information mentioned may be changed or developed.
    举个例子,比如生成一个编号的空间1-10 现在两台机器,小于5的编号存到A机器上,大于5的存到B机器上, 这样查询的时候根据id就可以知道存在哪台机器上,如果后来增加一台机器,按编号1-3,3-6,6-10这样平均切分,就可以将流量继续分摊,但是这样对于原来的对应关系就乱了,比如编号8 ,最早是存在B机器上,但是现在可以存在C机器上,不能一步就定位,有什么好的办法,在增加机器以上,保证原来的定位规则不变吗?
    5 replies    1970-01-01 08:00:00 +08:00
    rrfeng
        1
    rrfeng  
       Nov 10, 2013
    HASH 的时候加入一个 server id ,比如 ip/hostname
    wy315700
        2
    wy315700  
       Nov 10, 2013
    一致性哈希
    polythene
        3
    polythene  
       Nov 10, 2013
    Livid
        4
    Livid  
    MOD
    PRO
       Nov 10, 2013   ❤️ 1
    用机器 IP 作为 hash 算法的输入

    id = hash(server.ip)
    yakczh
        5
    yakczh  
    OP
       Nov 10, 2013
    这种是不是意味着key的最大空间是2^32?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4446 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 09:59 · PVG 17:59 · LAX 02:59 · JFK 05:59
    ♥ Do have faith in what you're doing.