UniKV: Toward High-Performance and Scalable KV Storage in Mixed Workloads via Unified Indexing

  • ICDE20: UniKV: Toward High-Performance and Scalable KV Storage in Mixed Workloads via Unified Indexing
  • https://ieeexplore.ieee.org/document/9101876

Differentiated Key-Value Storage Management for Balanced I/O Performance

  • ATC21 Differentiated Key-Value Storage Management for Balanced I/O Performance
  • https://www.cse.cuhk.edu.hk/~pclee/www/pubs/atc21diffkv.pdf

REMIX: Efficient Range Query for LSM-trees

  • FAST21 REMIX: Efficient Range Query for LSM-trees

C++ STL

  • C++ STL 的相关资料记录
  • 持续更新

HashKV: Enabling Efficient Updates in KV Storage via Hashing

  • HashKV: Enabling Efficient Updates in KV Storage via Hashing
  • http://adslab.cse.cuhk.edu.hk/software/hashkv/
  • ATC18 & TOS19

C++ 多线程

  • C++ 多线程封装,以及一些并发处理机制的资料
  • 持续更新ing

FloDB: Unlocking Memory in Persistent Key-Value Stores

  • EuroSys17: FloDB: Unlocking Memory in Persistent Key-Value Stores
  • https://dcl.epfl.ch/site/flodb

C 基础

  • C 语言基础汇总,主要包括一些容易混淆的、容易忘记的知识点,经常需要查询的。好吧,其实就是菜~
  • 持续更新ing

Evolution of Development Priorities in Key-value Stores Serving Large-scale Applications: The RocksDB Experience

  • FAST21: Evolution of Development Priorities in Key-value Stores Serving Large-scale Applications: The RocksDB Experience

Series Three of Basic of Concurrency - Condition Variables

  • 威斯康辛州大学操作系统书籍《Operating Systems: Three Easy Pieces》读书笔记系列之 Concurrency(并发)。本篇为并发技术的基础篇系列第三篇(Condition Variables),条件变量。

Lock of Programming

  • 编程中的锁。
  • 威斯康辛州大学操作系统书籍《Operating Systems: Three Easy Pieces》读书笔记系列之 Concurrency(并发)。本篇为并发技术的基础篇系列第二篇(Locks),锁。

Series One of Basic of Concurrency - Concurrency and Threads

  • 威斯康辛州大学操作系统书籍《Operating Systems: Three Easy Pieces》读书笔记系列之 Concurrency(并发)。本篇为并发技术的基础篇系列第一篇(Concurrency and Threads),并发和线程。

SpanDB: A Fast, Cost-Effective LSM-tree Based KV Store on Hybrid Storage

  • FAST 2021 的文章《SpanDB: A Fast, Cost-Effective LSM-tree Based KV Store on Hybrid Storage》

PebblesDB: Building Key-Value Stores using Fragmented Log-Structured Merge Trees

  • SOSP19 PebblesDB: Building Key-Value Stores using Fragmented Log-Structured Merge Trees
  • https://github.com/utsaslab/pebblesdb

Linux Software Management

  • Linux 软件包管理安装。

Reading Group Notes

  • 参加 Systems Reading Group 记录的论文笔记。

MapReduce: Simplified Data Processing on Large Clusters

  • 该篇文章来自于 OSDI2004,Google 当年率先提出的 MapReduce 框架,开启了分布式和大数据的纪元。

What is license for source code?

  • 什么是源代码许可?以及如何选择源代码许可?困扰了很久的问题,查了下资料决定把这个坑埋了。

Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based Key-Value Stores via Adaptive Removal of Superfluous Merging

  • SIGMMOD18 Dostoevsky: Better Space-Time Trade-Offs for LSM-Tree Based
    Key-Value Stores via Adaptive Removal of Superfluous Merging

CRaft: An Erasure-coding-supported Version of Raft for Reducing Storage Cost and Network Cost

  • FAST2020 主要是利用纠删码基于 Raft 进行优化,降低一致性开销

Alluxio

  • Alluxio 简单介绍,测试报告,然后会结合一些实际体验。

From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees

  • 该篇文章来自于 OSDI2020 From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees

intelligent cache research

  • 本篇为智能缓存相关的研究调研,可能涉及 AI for System 以及相关缓存策略的设计

Ceph FS 介绍和使用

  • 一个项目测试使用到了 CephFS,故简要整理 CephFS 资料和相关文档

FileMR: Rethinking RDMA Networking for Scalable Persistent Memory

  • NSDI 2020 的文章 FileMR: Rethinking RDMA Networking for Scalable Persistent Memory

RADOS 读写流程

  • 本篇主要总结 RADOS 底层的读写流程,并结合源码进行分析
  • 考虑基于现有的强一致性模型的读写流程是否有可以优化的点,提升 Ceph 的 IO 性能

FlatStore: An Efficient Log-Structured Key-Value Storage Engine for Persistent Memory

  • 该篇文章来自于 ASPLOS20 - FlatStore: An Efficient Log-Structured Key-Value Storage Engine for Persistent Memory

Series Five of Basic of Virtualization - Memory Virtualization - Paging

  • 威斯康辛州大学操作系统书籍《Operating Systems: Three Easy Pieces》读书笔记系列之 Virtualization(虚拟化)。本篇为虚拟化技术的基础篇系列第三篇(Memory Virtualization),内存虚拟化。
  • 内存虚拟化又将分为两篇,本篇为第二篇内存虚拟化之分页

Optane Persisten Memory And UPS Memory

  • 项目新技术预研。Intel Optane Persistent Memory 和 备电(UPS)内存
  • 主要是资料整理,并考虑应用此类硬件技术到 Ceph.

OC SSD & ZNS

  • 项目新技术预研。OpenChannel SSD 和 ZNS SSD
  • 主要是资料整理,并考虑应用此类硬件技术到 Ceph.

Series Four of Basic of Virtualization - Memory Virtualization - Basic And Segmentation

  • 威斯康辛州大学操作系统书籍《Operating Systems: Three Easy Pieces》读书笔记系列之 Virtualization(虚拟化)。本篇为虚拟化技术的基础篇系列第三篇(Memory Virtualization),内存虚拟化。
  • 内存虚拟化又将分为两篇,本篇为第一篇内存虚拟化之基础和分段

Series Three of Basic of Virtulization - Mechanism and Policy Part.2

  • CPU 虚拟化被分为两篇,此篇是第二篇,Policy

Series Two of Basic of Virtulization - Mechanism and Policy Part.1

  • CPU 虚拟化被分为两篇,此篇是第一篇,Mechanism

Series One of Basic of Virtulization - Processes and API

  • 威斯康辛州大学操作系统书籍《Operating Systems: Three Easy Pieces》读书笔记系列之 Virtulization(虚拟化)。本篇为虚拟化技术的基础篇系列第一篇(Processes and API),进程和进程API。

PinK: High-speed In-storage Key-value Store with Bounded Tails

  • 该篇文章来自于 ATC2020 Best Paper PinK: High-speed In-storage Key-value Store with Bounded Tails
  • 论文其实是基于一种新的 KV 存储形式 KV-SSD 开展研究的,KV-SSD 近年来常被提及,未来可能作为一种新型存储器件在键值存储系统中使用。
  • 本文的工作主要实现了基于 LSM-Tree 的 KV-SSD,和基于哈希的 KV-SSD 进行了对比。

KVell: the Design and Implementation of a Fast Persistent Key-Value Store

  • 该篇文章来自于 SOSP2019 的论文 KVell: the Design and Implementation of a Fast Persistent Key-Value Store

TinyKV 学习笔记

MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based KV Stores with Matrix Container in NVM

  • 该篇文章来自于 ATC2020 上非易失主题下的论文 MatrixKV: Reducing Write Stalls and Write Amplification in LSM-tree Based KV Stores with Matrix Container in NVM

Series Five of Basic of Persistence - Locality and The Fast File System

  • 本篇为持久化技术的基础篇系列第五篇(局部性和 Fast File System),将以 FFS 为例,可以参考原版论文 A fast file system for UNIX

Series Four of Basic of Persistence - File System Implementation

  • 本篇为持久化技术的基础篇系列第四篇(文件系统实现),将以 vsfs 为例。

Series Three of Basic of Persistence - Files and Directories

  • 本篇为持久化技术的基础篇系列第三篇(文件与目录)。

Series Two of Basic of Persistence - Hard Disk Drives And RAID

  • 本篇为持久化技术的基础篇系列第二篇(硬盘设备和磁盘阵列),即一些硬件设备基础知识以及基础的 IO 处理相关知识,可以结合之前的一篇博客 Flavor of IO

Series One of Basic of Persistence - I/O Devices

  • 本篇为持久化技术的基础篇系列第一篇(I/O 设备),即一些硬件设备基础知识以及基础的 IO 处理相关知识,可以结合之前的一篇博客 Flavor of IO

存储系统中的一致性

  • 源于最近的项目里涉及到的一致性问题,此处是指存储系统内部的数据一致性。
  • 注意和 分布式系统中的一致性以及协同算法 进行区分,此处更多的是多层存储之间的一致性。
  • 主要会先了解记录常见的存储系统中的数据一致性保证,如文件系统、数据库等;再分析项目中是否真正数据存在一致性问题。

AI For System Papers Index

  • Index for AI-4-Systems researches.
  • Some aspects in intelligent storage field.
  • Continuous update.

Database Internal - LSM-tree Summary

  • The LSM-tree basic in database system.

Database Internal - B-tree Summary

  • The B-tree basic in database system.

Amplification and RUM

  • Distributed Storage System Basic Serie 2 - Amplification and RUM.

Flavor of IO

  • Distributed Storage System Basic Serie 1 - Flavor of IO.

Distributed Storage System Basic

  • Distributed Storage System Basic.

Head First Golang

  • Head first Golang.
  • Here is the basic of go-language, including grammer basic and some features.
  • The content is based on the tutorial A tour of Go and I will present my understanding.
  • Furthermore, I will try to anaylyze the priciple

S3FS

  • FUSE-based file system backed by Amazon S3
  • 基于对象存储的文件系统,国内有 aliyun/ossfs, huaweicloud/obsfs
  • 本质是实现了将对象存储的 Bucket 挂载到了本地文件系统中,从而通过本地文件系统操作 OSS 上的对象

Bigtable: A Distributed Storage System for Structured Data

  • 2006 年 Google 发表的 Bigtable (Google 三大论文 GFS/MapReduce/BigTable 之一). 原文链接见参考链接【1】

The Log-Structured Merge-Tree (LSM-Tree)

  • 1996 年发表的 LSM Tree. 原文链接见参考链接【1】

DistCache: Provable Load Balancing for LargeScale Storage Systems with Distributed Caching

  • FAST19 Best Paper DistCache: Provable Load Balancing for LargeScale Storage Systems with Distributed Caching

C++基础快速入门

  • 项目开发需要使用 C++,曾经学过相关课程,但很久没与使用,有些遗忘。
  • 此处将和自己比较擅长的 Java 语言其中的概念进行类比,加深理解。
  • 记录重要笔记,主要是C++ 一些独有的概念和一些基础知识
  • 前半部分是 C 和 C++ 共通的部分,后半部分为面向对象的相关特性。

Minio

  • 开源支持 S3 协议的对象存储
  • 支持多个客户端访问,支持分布式集群部署,容器化部署
  • 考虑集成在项目中,作为后端存储进行测试

FlashBlox: Achieving Both Performance Isolation and Uniform Lifetime for Virtualized SSDs

  • 虚拟化课程论文分享,文章来自 FAST17
  • SSD 虚拟化相关,顺便补一下之前 SSD 的坑
  • 主要解决云计算领域中虚拟化 SSD 设备中的隔离性问题

Controlled Data Migration in the Expansion of Decentralized Object-Based Storage Systems

  • FAST 2020 Controlled Data Migration in the Expansion of Decentralized Object-Based Storage Systems
  • 主要针对集群扩容/缩容场景的数据迁移过程进行优化
  • 基于Ceph CRUSH进行了修改,减少了增扩容过程中的数据迁移。

Ceph ObjectStore

  • Ceph OSD 后端存储实现架构和源码分析
  • 结合 Ceph 已经实现的存储引擎,考虑实现新的后端存储
  • 理解 ObjectStore 和 Ceph IO 流的调用关系

VLDBJ 2018:LSM-based storage techniques: a survey

  • VLDBJ 2018:LSM-based storage techniques: a survey

FAST 2017-2019

  • Paper bewtween FAST 2017 and FAST 2019
  • To know about hot topic in storage.
  • Will update to recent FAST.

WiscKey: Separating Keys from Values in SSD-Conscious Storage

  • 文章题目:WiscKey: Separating Keys from Values in SSD-Conscious Storage。FAST 16 上的文章,该论文的延申发表在 TOS17。

文献阅读和写作技巧

  • 总结文献阅读和写作过程中的相关技巧
  • 根据列举的相关要点,实现文献的高效阅读
  • 写作部分还有所欠缺,还缺乏一定的实践经验
  • ...

基于RDMA的RPC实现

  • 项目起源于分布式系统与中间件的课程作业,自己实现一个分布式系统相关的项目。
  • 由于课程内容中有大量涉及 RPC 的内容,考虑自己实现一个 RPC 的框架。
  • 现如今有很多优秀的 RPC 框架,此次主要基于 RDMA 来进行实现,参考相关论文。
  • 后续会基于 Netty 实现 RPC,顺便了解 Netty 通信框架的基础知识。

GEM5 & NVMain

  • 该篇主要记录 gem5 的安装和简单使用过程
  • 计算机系统设计课程实验环境需要,部分论文的实验仿真环境为 gem5
  • 结合部分 Paper,简要介绍 gem5 主要模拟的场景和测试方法

Ceph Tiring Cache 调优

  • 主要介绍 Ceph 缓存机制涉及到的相关参数
  • 提供了一些参数的经验值参考
  • 后续针对具体的IO设计更为细致的优化方案

Ceph Cache Tiering

  • 主要介绍 Ceph 中的缓存机制和缓存相关实现
  • 介绍 Tiring 的相关模式并结合部分代码
  • 调研业界对于 Ceph 缓存的性能评价和优化方案

File Systems Unit as Distributed Storage:Lessons from 10 Years of Ceph Evolution

  • 该篇文章原文是两年一届的 SOSP2019 《File Systems Unit as Distributed Storage:Lessons from 10 Years of Ceph Evolution》

SLM-DB Single-Level Key-Value Store with Persistent Memory

  • FAST 2019 的文章《SLM-DB Single-Level Key-Value Store with Persistent Memory》
  • 这篇论文主要在新型存储器件Persistent Memory上针对传统的 LSM 树进行了优化。
  • 本篇论文用于课程论文阅读汇报,故在此总结便于演讲。同时学习 NVM 相关基础知识。

Exploiting Commutativity For Practical Fast Replication

  • NSDI 2019 的文章《Exploiting Commutativity For Practical Fast Replication》

重拾Docker

  • 本篇博文主要是针对 Docker 相关进行一次系统地总结以及一些实战过程中的记录
  • 主要参考 Docker 官方文档,会结合一些简单的实战例子讲解部署的相关流程。
  • 后续可能针对 Docker 和 K8S 容器编排的结合进行讲解,包括一些自动化平台的集成。

Ceph中的数据一致性

  • Ceph 作为分布式存储系统,在可用性和一致性方面有极高的要求。
  • Ceph 区别于其他分布式数据库等产品,更多的是作为云计算基础设施提供服务。
  • 本文主要介绍 Ceph 中的数据一致性的实现方案,以多副本为例,后续介绍纠删码。

Tail Latency

  • 在相关课程以及论文阅读过程中都遇到了尾延迟问题,借此机会深入学习一下
  • 国内尾延迟资料相对较少,针对部分参考资料进行翻译搬运
  • 埋坑,看一些尾延迟相关研究和论文,未完待续。
  • btw 针对部分论文和实验中关于尾延迟的测试进行阐述

分布式系统中的一致性

  • 源于分布式存储系统中对一致性的严格要求,该篇针对 CAP 理论中的一致性做简单总结。

Ceph-RBD 源码阅读

  • RBD 是 Ceph 分布式存储系统中提供的块存储服务
  • 该篇主要针对 RBD 中的整体架构以及 IO 流程进行介绍
  • 针对 librbd 中提供的接口进行简单介绍,后续将在此基础上进行实战

Git 从入门到掐死

  • Git 从入门到掐死教程 (简易教程)
  • 主要整理了一下之前实习过程中一些 Git 的操作核问题的处理
  • 并为自己整理的 Git 命令集提供相应的索引
  • 未完待续~

分布式缓存读书笔记(一)

  • 分布式缓存读书笔记系列之一
  • 从缓存的基本概念以及淘汰算法简单介绍入手
  • 介绍优秀缓存框架的实现(本地缓存和集中式缓存)

编程语言-教程和案例汇总

  • 源于众多朋友、同学和学弟(对没有学妹)请教过 Java 学习路线的相关问题
  • 在这篇博客中对曾经使用到或者收集的教程和优秀博客进行一个汇总
  • 主要从各大编程语言入门的角度,同时也更新各个方向的相关技术栈
  • 持续更新ing

Tools

分布式系统基本概念

  • 介绍总结一些基本的分布式系统中的概念
  • 简要介绍分布式系统中常见的问题和解决方案
  • 后续会针对部分分布式常用组件进一步介绍

常见的C语言库函数

  • 常见的C语言库函数介绍(主要针对IO相关操作)
  • 部分函数仅为linux系统特有
  • 后续会对相关系统调用中涉及到的IO进行讲解

  • 主题和《四分之一》一样的系列日志。
  • 距离上次写已经三年了,也很难有以往的文字功底。
  • 经历倒是只增不减,但主要是没了那份初心与热情才拖到了现在。
  • 想写下来的太多,但到了真正写的时候愿意写出来的太少。

字符编码与文件

  • 一个在重写tcmu读写接口时遇到的问题:如何转化标准的块设备读写缓冲区?
  • 由于最初不理解相关数据底层编码方式,导致开发过程效率低下。
  • 在此总结编码相关和文件数据相关的基础知识。

网络代理基础

  • 源于师姐提到的一个问题:什么是反向代理?
  • 之前本科在自己建站以及做学校项目的时候其实有涉及到,但没进行总结
  • 趁此机会埋个坑,把代理的东西好好理一理,顺便讲讲 VPN 啥的
  • 未完待续~

Hello Diary

  • Diary 开始篇,大概也不能叫 Diary.
  • 主要记录一些咸鱼日常观点以及胡言乱语灵感
  • 好吧,其实是为了打发晚上无聊的时光

CMake入门

  • 构建工具 CMake 介绍
  • 官方入门教程翻译
  • 后续增加部分高级功能实现

存储基本概念

  • 存储的一些基本概念
  • 一些专业的术语解释
  • 持续更新ing

TCMU学习笔记

  • iSCSI Target 端的用户态实现 TCMU 介绍
  • TCMU 原理剖析
  • TCMU 对接自定义后端存储代码示例讲解

Cinder核心

  • OpenStack 存储调度管理基础设施 Cinder 组件介绍
  • Cinder 核心流程和实现方式
  • Cinder 高可用架构实现方式

RabbitMQ

  • Introduce the RabbitMQ.
  • Write some example code.
  • Refer the official document.

教你写测试

  • 测试开发
  • 结合实际例子介绍相关测试框架的使用
  • Findbugs, Fortify,SonarQube,PMD也会做简单介绍

Spring Event

  • Introduce the Event in Spring.
  • Explore the core concept in Spring Event.
  • At the same time, introduce the design pattern Observer

设计模式之工厂模式

  • 代码不完全参照原书 , 借鉴书中相关例子和部分概念
  • 顺序部分参考原书,部分引用原书 UML 类图,会结合实际应用描述优缺点
  • 工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)

SpringData-JPA

  • 此篇博文主要是结合官方文档以及对JPA的一些使用进行记录。
  • 对于相关介绍,可参考相应博客。
  • 后续会对相关实现机制和核心思想进行深入探讨。

tinySpring学习笔记(二)-实现AOP

  • tinySpring学习笔记系列之二
  • 主要介绍AOP实现过程
  • 并介绍不同的动态代理方式

Head Frist Spring Cloud

  • Spring Cloud一些基础概念
  • 介绍Spring Cloud的一些基本组件
  • 介绍一些组件的替代方案

2017.11找实习-面经-Java

  • 2017年11月,为了2018年上半年的企业实习投递了一系列简历并参与了相关面试。
  • 主要分为Java篇,数据库篇,网络篇,框架篇,算法篇和相关工具篇
  • 当时无太多项目经验,一切都还是入门阶段

事务和锁

  • 此篇博文主要是结合例子介绍数据库事务。
  • 同时介绍数据库相关锁协议。
  • 后续会对相关实现机制和核心思想进行深入探讨。

常见算法之寻找K大数

  • 此篇博文主要是对面试过程中的算法题进行记录。
  • 该题作为面试常见题型,同时拥有多种实现方式。
  • 后续会对相关算法进行具体代码实现。

Redis数据类型

  • 此篇博文主要是结合命令行工具介绍Redis数据类型。
  • Redis基础知识篇。
  • 后续会对相关实现机制和核心思想进行深入探讨。

Redis安装与配置

  • 此篇博文主要是记录Redis安装过程。
  • 对于其他相关介绍,可参考相应博客。
  • 可能会因为版本差异,步骤稍有不同,但都大同小异。

tinySpring学习笔记(一)-实现IOC容器

  • tinySpring 是一个模仿Spring框架的迷你项目。
  • 通过理解和实现相关代码,掌握Spring的核心思想。
  • 后续会对Spring本身的一些实现再做深入探讨。

Servlet常用用法(二)-文件上传下载

  • 此篇博文主要是结合JavaEE基础知识了解原理。
  • 提供常见的例子实现来介绍现代JavaWeb框架的本质。
  • 后续会结合相关框架实现进行深入探讨。

Servlet常用用法(一)

  • 该系列博文主要是介绍JavaEE基础知识。
  • 结合当初项目实例,介绍几种Servlet的具体应用
  • 后续会解析相关JavaWeb框架的具体实现原理。

验证码Java实现

  • 此篇博文源于对验证码的机制好奇从而想一探究竟。
  • 此处只介绍了最简单的字符型验证码实现,其他高级验证码机制更为复杂。
  • 后续结合相关图像识别技术和自动化技术介绍验证码的攻与防。

Servlet基础知识

  • 该系列博文主要是介绍JavaEE基础知识。
  • 可以结合相关Web应用容器技术进行食用。(Tomcat)
  • 后续会解析相关JavaWeb框架的具体实现原理。

Docker常用命令

  • 该系列博文主要是记录Docker学习过程中使用到的一些命令。
  • 部分命令可能会因Docker版本不同有所差异
  • 后续会不断更新。

Docker入门笔记

  • 该系列博文主要是介绍Docker的一些基本概念。
  • 学习笔记,仅此而已
  • 后续...。

深入剖析Tomcat读书笔记(一)

  • 该系列博文主要是介绍Web应用容器的一些原理。
  • 结合JavaEE的基础只是,介绍核心思想和实现机制
  • 介绍容器中其他组件,系列一。

适配器模式

  • 该系列博文主要是介绍一些常用的设计模式。
  • 此处仅使用了Java语言来进行示例,设计模式是一种思想,不受预言限制
  • 结合一些具体的例子对适配器模式进行讲解。

Java.String

  • 该博文主要是介绍字符串处理过程中一些常用的函数和操作。
  • 结合Java本身封装的字符串库来讲解
  • 对于部分操作的效率进行对比,探讨性能问题

操作系统引论

  • 该系列博文主要是针对操作系统课程中的一些知识点进行梳理。
  • 更多地是介绍相关概念,后续会结合部分代码介绍
  • 操作系统系列之一

进程的描述与控制

  • 该系列博文主要是针对操作系统课程中的一些知识点进行梳理。
  • 更多地是介绍相关概念,后续会结合部分代码介绍
  • 操作系统系列之二

Java基本常识

  • 该博文主要是简单记录Java的一些基本知识
  • 更多地是介绍相关概念,后续会结合部分代码介绍
  • 会结合部分内存虚拟机的知识加深概念理解

四分之一

  • 大一结束的暑假写的一些总结和规划
  • 更多地是胡言乱语吧,随笔记录
  • 应该会有后续吧