HyperDex学习笔记

来源:互联网 发布:600718大数据 编辑:程序博客网 时间:2024/05/17 08:35

最近一个NoSQL数据库很火,它高度一致, 高度可搜索, 非常快。几乎全面超越NoSQL的代表MongoDBCassandra。它就是HyperDex, 看一下官方给出的性能测试结果:

左边是系统吞吐量的对比,右边是系统响应时间的对比。这么牛的系统一定要看一下:

  • 最大的特点是不只可以根据主键搜索, 还可以根据其它字段搜索, 而且效率很高。
  • 它的奥妙在于它的数据分布方式: Hyperspace Hashing
    • 把每个属性作为一个维度,构造一个N维空间
    • 每个记录的每个字段通过hash,计算出一个值,映射到这个N维空间里面去
    • 使用的不是普通的hash,而是保持数据之间顺序的hash, 因此可以做遍历(scan)。
  • 对于那些有很多字段的表,按照这种设计,这个hyperspace会很大,但是机器数目就那么多。最后导致的问题就是,对于一般的查询,都要去很多server node去查询。HyperDex的解决办法是建立多个子的hyperspace而不是一个大的Hyperspace, 这样可以很好的解决这个问题.
  • HyperDex的为了使得search的效率更高,在多个subspace里面存了一条数据的多个副本,因此空间效率应该不会太高。
  • 通过value dependent chain来解决一致性问题,以及replication.
    • 对于每条数据,由于有多个subspace, 有多个node上有同一条记录, 所以会出现concurrent updates的问题: update1更新replica1, 而同时update2在更新replica2, 顺序混乱最后会导致数据不一致。
    • HyperDex通过在每个请求里面加上版本号信息来解决,比如有两个请求upadte1, update2, update1先过来的,它的版本号是1,那么HyperDex直接执行这个请求,而对于update2, 如果先到达某个node, 但是因为它的version是2, 所以要等1执行之后才会执行它。
    • 如果同时一个update,一个delete过来,事情会变得更加复杂,HyperDex的做法是避免这种情况,当HyperDex发现delete的时候,有人在update, 那么它等update做完之后再做。
  • HyperDex的replication对于用户来说是同步的 — 用户需要等replication结束,调用才能返回。
  • HyperDex不是schema free的

  • 新增机器怎么弄?
作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
网址: http://xumingming.sinaapp.com/785/hyperdex-notes/

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 汽车放久了没电怎么办 上海网约车资格证怎么办 手机掉在滴滴上怎么办 在滴滴上丢手机怎么办 把东西落在出租车上怎么办 租好房子后悔了怎么办 转租房东不退押金怎么办 亲戚借户口本办公租房怎么办 7.1深圳禁行货车怎么办 怎么办无锡市的货车临时通行证 武汉医保卡密码忘了怎么办 打出租车被黑了怎么办 行李掉在出租车上怎么办 家庭农场买农机怎么办补贴 在异地买的保险怎么办 理发店被投诉工商局找我怎么办? 临安市民卡丢了怎么办 合肥分期付款买手机被骗怎么办 公司注销后还遇到投诉怎么办 超市购物结账时少收钱怎么办 卖给顾客东西时会有斜念怎么办 实体店家纺想换货怎么办 劳动仲裁裁决部分不服怎么办 劳动仲裁公司拒不履行怎么办? 苹果手机被黑客锁了怎么办 出租大面积厂房的中介费用怎么办 中山房子网签不了怎么办 物业服务太差该怎么办 取完公积金的卡怎么办 车卖了对方不过户怎么办 卫生间下水道堵了怎么办妙招 教练不让你练车怎么办 教练不让我练车怎么办 考三要练车教练不给练怎么办 科目二指纹打卡指纹不清楚怎么办 教练凶你的时候怎么办 人行聘用制3年后怎么办 道路运输从业资格证过期了怎么办 码头如果要危险运输证怎么办? 7座车怎么办载客营运证 商调函到了原单位不配合怎么办