Sy Blog

Thinking will not overcome fear but action will.

Pro Git

Git笔记

1.Git 简史 ​ Git有三种状态,分别是已提交(commited)、 已修改(modified)和已暂存(staged)。 已提交:表示数据已经安全的保存在本地数据库中 已修改:表示修改了文件,但还没保存到数据库中 已暂存:表示数据对一个已修改的文件的当前版本做了标记,使之包含在下次提交的快照中 由此引入Git项目的三个工作区域的概念:Git仓库,工作目录以及暂存...

AniFilter-Parallel and Failure-Atomic Cuckoo Filter for Non-Volatile Memories

PM版本上的过滤器

这篇论文实现了一个PM友好的过滤器,主要是基于布谷过滤器进行改进。这篇博客记录一下文章中作者提出的优化点,公式推导以及实验对比。 1.背景介绍 近似成员查询数据结构(Approximate Membership Query)表示了一组用于近似成员查询的结构。AMQ对于将数据存储在DRAM,SSDS,硬盘上的数据库,网络管理等领域有很大的应用。对于这些存储媒介上的AMQS有很多的优...

MemC3- Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing

哈希和缓存

全文翻译 摘要 本文对流行的Memcached系统提出了一组从架构和工作负载出发的算法和工程改进,从而极大地提高了其内存效率和吞吐量。这些技术—乐观布谷鸟散列、一种基于时钟的近似lRU的回收算法,以及乐观锁定的全面实现——使最终系统在小键值对上减少30%的内存使用,并在网络上每秒提供多达3倍的查询。我们在一个称为MemC3-Memcached的系统中实现了这些修改,该系统具有时钟和并发布...

13.拷贝控制

C++

13.拷贝控制 当定义一个类的时候,往往需要显式或者隐式地指定在此类型的对象拷贝,移动,赋值和销毁时需要做什么,类通过五种特殊的成员函数来控制这些操作,称之为拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋值运算符和析构函数。拷贝构造和移动构造定义了当用同类型的另一个对象初始化本对象需要做什么。拷贝和移动赋值运算符定义了将一个对象赋予同类型的另一个对象时做什么。析构函数定义了当此类...

3.Persistent Memory Architecturey

PMDK

第三章主要是介绍操作系统如何将持久内存作为平台资源来进行管理 1.Operating System Support for Memory and Storage 如图3-1,易失性主存通过内存总线直接连接到CPU。操作系统直接将内存区域映射到应用程序的可见内存地址空间。storage运行速度通常比CPU慢的多,它通过一个I/O控制器连接。操作系统通过加载到I/O子系统中的设备...

2.Operating System Support for Persistent Memory

PMDK

第二章主要介绍持久性内存的架构,内容比较多 1.Persistent Memory Characteristics 持久性内存的性能比NAND好的多,但可能比DRAM慢 持久性内存是持久的,它的寿命比NAND flash好几个数量级 持久性内存的容量比DRAM DIMMS大的多,并且可以在相同的内存通道上共存 支持持久性内存的应用程序可以就地更新数据,而不需要对...

1.Introduction to Persistent Memory Programming

PMDK

这周一定抓紧时间吧PMEMOBJ这一块看完!!!先从第一章节开始吧,这一章节主要是为了对持久性内存编程做一个介绍 下面是一个简单的使用libpmemkv的例子,主要就是创建一个cmap引擎,然后插入三个键值对再读取出来全部的键值对 #include <iostream> #include <cassert> #include <libpmemkv.h...

Lock-free Concurrent Level Hashing for Persistent Memory

ATC'20 Clevel

Clevel主要实现无锁的rehash操作,方法我们拭目以待 1.Introduction 1.P-CLHT和Level Hash在进行rehash操作的时候需要对全表进行锁定 2.CCEH在分割段的时候会对段进行锁定,当对目录加倍的时候,需要对目录进行锁定 其中Duplication和Missing代表的意思是 Duplication:一个对某个项使用单槽锁的插入线程...

Write-Optimized Dynamic Hashing for Persistent Memory

Fast '19 CCEH

本文提出的CCEH,是我印象中第一篇将如何让动态哈希适用于PCM的文章,文章开头DISS了一下Level Hash,可以在被背景这一块提到。Our implementations of CCEH, linear probing (LINP), and cuckoo hashing (CUCK) are available at https://github.com/DICL/CCEH....

Write-Optimized and High-Performance Hashing Index Scheme for Persistent Memory

OSDI’18 Level Hash

这篇文章是左鹏飞师兄的第二篇Hash文章,简称Level Hash。 1.背景 1.1 Question High Overhead for Consistency Guarantee:持久性内存的数据结构应该避免数据的不一致性,比如部分更新和数据丢失对内存的写入顺序往往会被CPU,内存控制器进行排序,通常使用cache line的刷新指令以及memory屏障指令来确保我...