论文阅读笔记(Adaptive Software Caching for Efficient NVRAM Data Persistence)

原文:Pengcheng Li et al. Adaptive Software Caching for Efficient NVRAM Data Persistence. IPDPS, 2017.

背景

NVRAM(Non-volatile Random Access Memory)

顾名思义,NVRAM 和 SDD/HDD 等存储一样,都拥有断电后保留数据的能力,同时和目前普遍使用的 DRAM 一样,采用 DIMM 接入计算机中,且按照字节寻址(byte-addressing)。

Intel memory to storage

上图来自 Intel,其中的 3D XPoint 就是 Intel 的 NVRAM 实现。相较于 DRAM,NVRAM 拥有更高的密度 ...

阅读全文

2017 小结

本来是打算 31 号写年终总结的,但是汗蒸完吃火锅实在是太爽了,完全没有翻开电脑的动力,只好拖到新年的第一天来补了。

昨天在车上的时候也和妹子聊了一下今年最大的收获,可能是对自己未来工作的方向提前有了一丝明确吧。说实在的,因为研究生时间基本在公司度过,更多还是把精力花在解决实际项目中遇到的问题,对于自己的具体研究或是工作方向还是很迷糊。身处一个分布计算与系统集成实验室,我更熟悉的是一些偏系统架构(可能只是自认为了解)的工作,而不清楚诸如分布式计算、分布式存储等主流的研究方向,现在想来实在有些过于迷糊了,但好在醒悟的不算太晚吧。

今年年初刚回公司的时候被告知组长要走,当时想着这个项目除了他以外貌似就我知道整体的情况,而且剩余的工作可能更多偏维护,就同意接手继续完成后续的工作了。还天真地以为可以在年中的时候结束项目然后安心找工作并回校做毕设。结果,剩余的工作并不仅仅是维护,在已实现的系统中有很多的问题以及无法满足需求的设计,这也使得我必须去细致阅读源码并进行改进。

现在想来,这段日子过得还挺郁闷的,因为感觉整个系统一开始的设计就不足以满足用户最终的需求,而时间和人手又不足以推到重来,整个改进的过程就像在不停地填坑,无法彻底地解决一些潜在的隐患。但也由于需要接手这块,迫使我必须去了解更多主流的分布式研究方向,比如分布式存储及分布式一致性等。之后就是各种改进、出差压测、回来集中修复以及再次出差等等了。

Anyway,结果还行,项目成功验收,我也对分布式存储有了基本的认识,也觉得这个方向未来仍有工作可以进行,并且属于那种半研究半工程(甚至工程更多一些),所以也决定去从事这个方向的工作。

今年另一件重要的事就是参加秋招了 ...

阅读全文

PhxPaxos 源码阅读笔记(三):PhxPaxos 设计简介

前置内容:建议对 Paxos 有基本理解后再阅读。

本篇主要是为了后续几篇讲算法实现做些铺垫,个人觉得在看代码之前对设计进行基本的了解是必须的,否则会是一头雾水。

因为只是简介,我只会把 PhxPaxos 中的一些概念稍微讲讲,更为详细的内容还是建议大家阅读微信团队的原文

我个人感觉 PhxPaxos 的实例-日志-状态机这样的设计是常见的一种实现思路,之前也有向同学请教了一下 X-Paxos 的设计,发现确实很类似,但是各个库出于各自对性能的要求,有着不同的优化取舍罢了(比如 X-Paxos 需要服务一些跨数据中心的高时延场景,所以 Pipelining 是个很好的优化手段)。

实例

相信了解过 Paxos 算法的读者都应该知道它最基本的能力:让多个进程(或节点)间达成一致,即它们均确定出同一个值。在确定值后,Paxos 组的成员中只要仍旧有多数派存活,该值将会一直被保持,从而能够容忍部分成员临时断线、掉线重启甚至丢失了该值。

我们知道,由于 Paxos 组内可能有多个 Proposer 同时提案 ...

阅读全文