大数据系统
文章平均质量分 83
KDF5000
热爱互联网热爱IT
展开
-
面向HBase的内存key-value缓存的实现
0x01 背景之所以要实现这个缓存主要原因如下(但是由于不是实际业务场景需求,所以可能不太准确,也可能不存在这个需求): * 非结构化数据的爆炸式增长 * 处理速度的要求越来越高 * HBase是面向硬盘的 * 内存容量越来越大 * 热点数据可以在内存放下0x02 设计方案通常的要实现缓存,主要是在有两个大方向实现,一个是在客户端实现,另一个时在服务端实现 * 客户端实现 - 修改H原创 2016-06-19 18:54:54 · 7030 阅读 · 0 评论 -
一致性哈希算法
前面专门介绍过几种常见的数据分片(Sharding),主要包括范围分片(Range)和哈希(Hash)分片两种大的策略,其中哈希分片最简单的Round Robin方法(直接按照机器数取模)存在一个明显的缺点,当机器数增加或者减少的时候,所有的数据都要进行重新的哈希分配。这个问题的本质原因是因为机器和数据哈希分布之间强耦合,因此针对这个缺陷主要有两个解决方案一种是引入虚拟桶的概念,分两步映射(key-原创 2017-05-03 12:41:11 · 1585 阅读 · 1 评论 -
对象存储对比 - Haystack
经过一段时间的调研,对分布式对象系统有了一点浅显的认识,暂不谈和文件系统的区别(其实还是有点傻傻分不清),姑且认为对象存储和文件系统最大的区别就是API,文件系统提供了完整POSIX语义,往往具有层次化的目录结构,对文件可以进行精细的操作(open, read, write, seek, delete等),相对会复杂一些。相比之下,对象存储就简单的多,对象本义是**B**inary **L**arg原创 2017-06-25 21:58:03 · 5692 阅读 · 0 评论 -
再读分布式一致性算法Raft论文
Raft是一个管理日志副本一致性的算法。相比Paxos结果一样,并且一样高效,但是理解起来更加的容易。Raft将一致性的主要元素分离开来,比如leader选举,log 复制,安全等。同时,也提供了一个新的机制实现cluster membership改变,其使用多数的原则来保证安全性。一致性算法一致性算法的意义就是保证一致性的一组机器能够在其部分成员出现故障的时候依然能够存活下来(提供服务)。在Raf原创 2017-07-16 10:21:11 · 2656 阅读 · 1 评论 -
SeaweedFS索引-CompactMap
SeaweedFS提供了几种不同的needle索引策略,包括memory, btree, blotdb, leveldb四种,其中默认的是memory,也是其内部唯一自己实现的一种索引,btree使用google的btree开源实现,boltdb和leveldb都依赖一个db.memory的索引实现,使用了一个叫CompactMap(这是作者自己起的名)的数据结构。本文后面将会重点介绍compact原创 2017-06-22 09:13:43 · 1690 阅读 · 2 评论