
存储技术
文章平均质量分 90
杰特JET
这个作者很懒,什么都没留下…
展开
-
io_uring设计理念及使用方式总结
io_uring设计理念及使用方式总结overview设计目标io_uring系统调用io_uring_setup特性io_uring_enterio_uring_registerliburingop codefeatureIO interfaces 比较spdk+io_uring参考链接overviewio_uring通过使用先进的IO特性,以及内核支持下的各种免拷贝、免context switch特性,成为kernel下一代高性能异步IO接口,不同于libaio,io_uring支持同步和异步IO原创 2021-07-01 16:57:27 · 2044 阅读 · 2 评论 -
Persistent Memory优化实践
Persistent Memory优化实践Persistent Memory的优缺点相关论文A Study of Application Performance with Non-Volatile Main MemoryWrite-Optimized and High-Performance Hashing Index Scheme for Persistent Memoryclosing the gap between DRAM with PM for key-value storeChallenges原创 2021-05-24 18:23:26 · 1435 阅读 · 0 评论 -
Persistent Memory编程简介
Persistent Memory编程简介编程libpmem持久化函数libpmemobj跟对象 root object例程事务支持type safety线程安全使用工具ipmctlndctlcreate-namespace例子测试工具fiopmembenchipmwatchemon参考链接本文主要目的是介绍PM基础的的编程方法、管理工具、监测手段等编程持久内存开发套件(Persistent Memory Development Kit-PMDK) - pmem.io: PMDKPMDK bas原创 2021-05-21 12:46:24 · 1974 阅读 · 0 评论 -
Persistent Memory错误注入测试
目的了解持久化内存各种故障场景下的系统和应用行为错误注入方法https://docs.pmem.io/ipmctl-user-guide/debug/inject-error测试温度测试# 模拟高温$ ipmctl set -dimm Temperature=100# 恢复$ ipmctl set -dimm Clear=1 Temperature=1坏块测试# 模拟指定dimm地址0x10000200为坏块$ ipmctl set -dimm [dimm_id] Poison=0原创 2021-05-19 09:54:52 · 407 阅读 · 0 评论 -
分布式文件系统HDFS解析
分布式文件系统HDFS解析设计目标Namenode 和 DatanodeHDFS HAHDFS Federation读写流程Replication元数据副本均衡元数据磁盘错误快照流水线复制参考链接HDFS作为分布式文件系统,主要是为了方便海量上层计算节点存取而设计的。提供posix api,将元数据(存放在NameNode)和数据(存放在DataNodes)分开存放。所有Node之间通过tcp通信。设计目标存储非常大的文件:这里非常大指的是几百M、G、或者TB级别。实际应用中已有很多集群存储的数据原创 2021-04-27 09:43:24 · 489 阅读 · 0 评论 -
LevelDB源码解读
LevelDB源码解读提供的功能read and writeGroup commitsequence numberdeleteAtomic Updates同步写Synchronous Writes遍历 iteration快照 SnapshotsSlice比较器 Comparatorsconcurrency保证compactionLevelDB的性能优化参数Block sizeCompressionCache键分布 Key LayoutFilters校验和 ChecksumApproximate SizesE原创 2021-04-27 09:31:48 · 1426 阅读 · 0 评论 -
深入理解LSM-Tree
深入理解LSM-Tree基础概念compaction策略Size-tired compaction strategy(STCS)/Tieredleveled compactionLeveled-NHybridTime-Window比较工业实现leveldbRocksDBWrite StallsscyllaDB/cassandrahbaseTiKV/Titan学术研究Dostoevsky参考链接lsm-tree的背景、定义和适用场景本文不再详述。本文意在论述LSM的存储引擎、工业取舍以及发展现状。基础概原创 2021-04-27 09:29:26 · 2024 阅读 · 0 评论 -
分布式块存储QoS限速算法介绍与实践以及对上层应用的影响
分布式块存储QoS限速算法以及对上层应用的影响QoS限速算法介绍令牌桶 Token Bucket漏桶 Leaky BucketLeaky bucket as a meterLeaky bucket as a queue主流的块设备流控方案Qemulibrbdspdk限速策略对块设备的影响时延IO util对数据库应用的影响参考链接QoS限速算法介绍限速策略主要有令牌桶的漏桶两种,下面分别介绍如下。令牌桶 Token BucketWiki对令牌桶的算法描述如下:A token is added原创 2021-04-23 13:02:04 · 1667 阅读 · 0 评论 -
spdk-nvmf指南
spdk-nvmf指南概述名词解释nvme over fabricspdk nvmfnvmf initiator 和 targetspdk nvmf targetlinux kernel NVMeOF initiator实践注意事项参考链接概述NVMe协议制定了本机高速访问PCIe SSD的规范,为了把本地高速访问的优势暴露给远端应用, 诞生了NVMe-oF 协议。NVMe-oF target 是NVMe协议在不同传输网络 (transport) 上面的延伸。NVMe-oF 协议中的 transpor原创 2021-04-22 10:35:31 · 6172 阅读 · 2 评论 -
Windows Azure Storage论文解读
Windows Azure Storage论文解读整体架构文件流层 stream layer存储引擎存储优化分区层 Partition Layer存储引擎WAS总结WAS是微软开发的云存储系统,提供Blob、Table、Queue三种类型的服务,它广泛部署与微软内部。其论文发表于2011年SOSP。整体架构WAS主要分为两个部分:定位服务(Location Service LS)和存储区(Storage Stamp)定位服务管理用户到存储区之间的映射,负责负载均衡,并且服务跨地域、高可用存储原创 2021-04-14 16:04:55 · 1090 阅读 · 1 评论 -
Kafka Without ZooKeeper ---- 不使用zookeeper的kafka集群
不使用zookeeper的kafka集群前言ZooKeeper的缺点Kakfa Without ZooKeeper简介Kakfa Without ZooKeeper的优势总结参考链接前言大名鼎鼎的Kafka作为最出名的消息处理中间件,Zookeeper在其中提供一致性服务,并且承担了选主、服务发现、服务注册、存储各种Kafka的各种元数据。随着Kafka的演进,Kafka自己也变成了一个复杂的分布式系统,它和zookeeper一样,都对外提供一致性服务。Kafka在其系统内再维护一套zookeepe原创 2021-04-13 14:19:53 · 3308 阅读 · 0 评论 -
副本放置策略Copysets论文解读及工程实践
副本放置策略CopySet论文解读及工程实践概述CopySet论文解读术语定义Random ReplicationCopyset ReplicationPremutationReplication工程实践参考链接概述分布式存储追求在系统成本允许的范围内(一般存储集群都是三副本,还想方设法的使用条带化、压缩等方式降低成本),降低数据丢失的概率,降低故障恢复的时间。好的副本放置策略可以优化整个集群的可用性和一致性。斯坦福大学曾经出过一篇论文,Copysets: Reducing the Frequenc原创 2021-04-12 11:21:10 · 1142 阅读 · 0 评论 -
Google Megastore介绍
Google Megastore介绍概述策略对比异步主从 Asynchronous Master/Slave同步主从 Synchronous Master/Slave乐观复制 Optimistic ReplicationMegastore的选择Megastore系统架构实体组EG并发控制(事务)读事务写事务索引协调者读写流程读流程写流程Megastore总结概述Megastore是在Bigtable的基础上提供了友好的数据库功能支持。是介于关系型数据库(RDBMS)和NoSQL之间的存储技术。其引入了原创 2021-04-11 16:04:39 · 2923 阅读 · 0 评论 -
分布式表格系统Google Bigtable详解
分布式表格系统Google Bigtable详解概述Bigtable架构数据分布保证副本位置与负载均衡存储表的分裂与合并存储引擎垃圾回收总结概述bigtable系统由表格组成,每行有一个主键(Row Key),每行又包含很多列(Column),某一行的某一列构成一个单元(Cell),每个单元包含多个版本的数据。整体上看,Bigtable是一个分布式多维映射表:(row:string,column:string,timestamp:int64)−>string(row:string, colum原创 2021-04-10 11:15:34 · 2475 阅读 · 1 评论 -
分布式键值系统Amazon Dynamo简介
分布式键值系统Amazon Dynamo简介@[TOC](分布式键值系统Amazon Dynamo简介)Dynamo采用的技术虚拟节点Gossip协议NRWVector Clock读写流程参考链接Dynamo采用的技术问题采用的技术数据分布改进的一致性哈希(DHT),采用了虚拟节点技术复制协议复制写协议(Replicated-write protocal,NRW参数可调)数据冲突处理向量时钟临时故障处理数据回传机制(Hinted handoff)永久故原创 2021-04-09 10:35:42 · 594 阅读 · 0 评论 -
什么是SPDK,以及什么场景需要它
什么是SPDK,以及什么场景需要它1. 前言2. 什么是spdk3. spdk的设计理念3. 使用spdk加速NVMe存储4. spdk bdev5. spdk应用场景6. 总结7. 参考链接1. 前言有关spdk网上已经有了很多文章,笔者只是想结合自己日常工作对spdk的理解,阐述为什么是spdk是一个高性能的解决方案,以及什么场景适合用spdk。本文不会特别深入某个具体技术细节,有关具体的技术实现,笔者会放在文末的参考连接中。2. 什么是spdk首先要明确spdk是一个框架,而不是一个分布式系统原创 2021-04-07 17:03:37 · 1195 阅读 · 0 评论