基本概念 Pool Pool是Object的逻辑组合,之所以划分成Pool,是因为在Ceph RADOS中,可以按照Pool来设置PG数量、副本策略等。 每个Pool下管辖多个PG,PG的数量可以通过更新Pool的属性来设定。 注意: Pool是RADOS层抽象的概念,至于映射成更上层的RBD、RGW什么概念,目前尚不清楚; Pool是逻辑概念,不同Pool可能的内容映射至底层相同的OSD; 实践中可以为每个pool在crushmap中定义rule,可以指定pool的一些个性化策略,比如可以为某个pool设置特定的存储介质ssd、设定pool的副本数等。

Continue reading Ceph科普

事务管理 LMDB中所有的读写都是通过事务来执行,LMDB事务具备以下特点: 支持事务嵌套(??) 读写事务可以并发执行,但写写事务需要被串行化 因此,在lmdb实现中,为了保证写事务的串行化执行,事务执行之前首先要获取全局的写锁。

Continue reading LMDB调研

工作 对各种存储引擎了如指掌,对底层存储引擎所使用的技术如数家珍,存储引擎包括但不局限于LMDB,BoltDB,LevelDB,Mysql使用的底层存储引擎如InnoDB以及ZFS的底层存储技术;存储引擎核心技术包括但不局限于:COW (Copy-On-Write),Snapshot,CheckPoint,LSM tree,B+ tree等 精通各种分布式协议以及由其构建的分布式系统,包括但不局限于 Raft, Paxos, 2PC,3PC,ZAB(Zookeeper使用)等 精通至少两门编程语言,至少一门为FP编程,目前来看以Golang和Lisp为佳。Golang需要融汇贯通其各方面的设计,包括“内存管理”、“协程调度”、“垃圾回收”等核心模块,并撰写成相关书籍。 精通设计模式,对GOF的23种设计模式烂熟于心,并能根据需求选择最佳模式 熟悉内核(Linux),理解内核某些关键模块的思路,包括但不局限于“进程调度”、“文件系统”、“块设备”、“内存管理”,争取做到熟悉其核心数据结构以及某些极其关键算法(如进程调度算法、电梯调度算法等)。同时读内核时要学习Linux内核高度抽象化和可扩展化的代码编写手法,指导自己的日常工作。 关注当前技术趋势,关注开源技术,尤其是新思想,新变革以及在此思潮下产生的新产品,新服务(包括但不局限于云计算、物联网、人工智能等)。 生活 提升个人品味,从穿衣打扮做起,在现有经济基础下,找到最适合自己的风格 提升内在休养,读万卷书并行万里路,读万卷书以为胸中有丘壑,行万里路方可脚踏实地。读书以史为镜,以诗为美,以小说寄闲情,以散文抒胸臆。 培养兴趣爱好,目前以吉他与厨艺为主,吉他是无论如何都要擅长的,且主攻指弹,厨艺则随缘,如同油盐酱醋,作为生活的调料。另外,闲暇时可研究花草种植,进一步提升家居温馨之品位。 健身锻炼,饮食以清淡为主,粗细搭配,营养均衡。运动上则至少每周两天10KM+的跑步,辅以其他运动项目,如游泳,篮球,跳神,俯卧撑等,全面提升身体素质。 旅游,借浙江之天然区位优势,将周边优美景点一网打尽。争取做到每个季度能背包出去一次,时间2~3天不等 世上本无难事,唯不懈的付出方能成就美满人生,与君共勉!

Continue reading 下一个五年规划

说明 工厂模式是我们最常用的实例化对象模式,使用工厂方法代替new操作的一种模式,使用工厂模式,可能多做一些工作,但可以给你系统带来更大的可扩展性和尽量少的修改量。

Continue reading Factory模式

桃花坞里桃花庵,桃花庵里桃花仙 桃花仙人种桃树,又摘桃花换酒钱 酒醒只在花间坐,酒醉还来花下眠 半醒半醉日复日,花开花落年复年 但愿老死花酒间,不愿鞠躬车马前 车尘马足贵者趣,酒盏花枝贫者缘 若将贫贱比贫者,一在平地一在天 若将贫贱比车马,他得驱驰我得闲 世人笑我太疯癫,我笑他人看不穿 不见五陵豪杰墓,无花无酒锄作田

Continue reading

说明 COW,Copy-On-Write技术,是在并发资源访问场景中的一种资源保护模式。当资源仅有读取访问而无更新时,资源仅存在单一副本,但当有对资源进行修改时,将资源复制一份,然后修改复制后的资源,这便是Copy On Write的核心含义。

Continue reading BoltDB之COW技术

前言 我们在前面的博客中详细描述了BoltDB的Bucket存储格式以及针对Bucket的一些关键动作。但在前讲我们关注的重点是Inline Bucket,也即Bucket内所有的KV记录都紧随Bucket的记录而存放,这样可以提高Bucket的搜寻效率。 但随着数据量的增长,一个Bucket无法永远保存Inline的特性,总会在某个点的时候,Inline Bucket终究还是要成为非Inline Bucket,在本篇博客中,我们就来关注一个Inline Bucket如何变成非Inline Bucket以及非Inline Bucket在BoltDB底层的存储形式。

Continue reading BoltDB之Bucket(二)