ceph的 cache tier实现分析

1 基本介绍 1.1 设计思想 数据的存储可划分为active和inactive两大类,active数据是小部分,会频繁访问,使用更高性能的底层存储介质进行存储;inactive的数据是全集,使用廉价的存储介质存储。这种分冷热的思想与CPU的多级缓存、操作系统的cache、各类软件系统的软件缓...

2019-06-14 13:08:03

阅读数 36

评论数 0

gossip协议介绍

背景 gossip 协议(gossip protocol)又称 epidemic 协议(epidemic protocol),是基于流行病传播方式的节点或者进程之间信息交换的协议,在分布式系统中被广泛使用,比如我们可以使用 gossip 协议来确保网络中所有节点的数据一样。 Gossip pr...

2019-06-14 12:51:53

阅读数 21

评论数 0

Linux文件存储抽象VFS

概念VFS(Virtual Filesystem Switch)称为虚拟文件系统或虚拟文件系统转换,是一个内核软件层,在具体的文件系统之上抽象的一层,用来处理与Posix文件系统相关的所有调用,表现为能够给各种文件系统提供一个通用的接口,使上层的应用程序能够使用通用的接口访问不同文件系统,同时也为...

2018-03-18 23:38:12

阅读数 369

评论数 1

Ceph的BlueStore总体介绍

整体架构bluestore的诞生是为了解决filestore自身维护一套journal并同时还需要基于系统文件系统的写放大问题,并且filestore本身没有对SSD进行优化,因此bluestore相比于filestore主要做了两方面的核心工作:去掉journal,直接管理裸设备针对SSD进行单...

2018-03-15 19:35:10

阅读数 4596

评论数 0

Ceph的FileStore代码阅读问题整理

1.bufferlist中的_memcopy_count作用是什么?bufferlist提供了一个rebuild函数,用来将整个buffterptr链表的所有bufferraw都copy到一个新建的bufferptr中,然后清空链表并将新建的这个bufferptr插入到链表中。_memcopy_c...

2018-03-15 19:05:04

阅读数 513

评论数 0

Ceph单机引擎FileStore简介

Ceph作为一个高可用和强一致性的软件定义存储实现,去使用它非常重要的就是了解其内部的IO路径和存储实现。这篇文章主要介绍在IO路径中最底层的ObjectStore的实现之一FileStore。ObjectStoreObjectStore是Ceph OSD中最重要的概念之一,它封装了所有对底层存储...

2018-03-15 18:58:43

阅读数 769

评论数 0

socks5协议中文版

目录 1.介绍 2.现有的协议 3.基于TCP协议的客户 4.请求 5.地址 6.应答 7.基于UDP协议的客户 8. 安全性考虑 9. 参考书目 1.介绍 利用网络防火墙可以将组织内部的网络结构从外部网络如INTERNET中有效地隔离,这种方法在许多网络系统中正...

2017-12-15 00:42:31

阅读数 631

评论数 0

Raft协议整理

复制状态机是当前分布式系统中最核心最基础的组件,提供命令在多个节点之间有序复制和执行,当多个节点初始状态一致的时候,保证节点之间状态一致。系统只要多数节点存活就可以正常处理,它允许消息的延迟、丢弃和乱序,但是不允许消息的篡改。 Raft将一致性问题分解成了如下三个子问题 Leader el...

2017-12-13 19:44:03

阅读数 389

评论数 0

磁盘挂载信息:/etc/fstab

磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。 系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了...

2017-09-04 19:39:00

阅读数 644

评论数 0

vim查找与替换

vim提供了:s(substitute)命令进行替换和查找,基本格式如下::{作用范围}s{分隔符}{目标}{分隔符}{替换}{分隔符}{替换标志}作用范围 %:全文 n,m:第n行到第m行 .,$:当前行到最后一行 .,+n:当前行到其后n行 '<,>':visual模式下选择区域后...

2017-08-25 21:04:10

阅读数 284

评论数 0

Erasure Coding

1. 介绍Erasure Code可以认为是RAID的通式,任何RAID都可以转换为特定的erasure code。在传统的RAID中,仅支持少量的磁盘分布,当系统中存在多个分发点和多节点时,RAID将无法满足需求。比如RAID5只支持一个盘失效,即使是RAID6也仅支持两个盘失效,所以支持多个盘...

2017-08-10 12:56:07

阅读数 484

评论数 0

C++版ThreadPool实现

个人基于pthread实现的C++版ThreadPool,代码见github。

2017-07-17 22:54:06

阅读数 759

评论数 0

基于python生成器封装的协程类

自从python2.2提供了yield关键字之后,python的生成器的很大一部分用途就是可以用来构建协同程序,能够将函数挂起返回中间值并能从上次离开的地方继续执行。python2.5的时候,这种生成器更加接近完全的协程,因为提供了将值和异常传递回到一个继续执行的函数中,当等待生成器的时候,生成器...

2017-03-14 14:32:21

阅读数 514

评论数 0

协程的概念总结

并发最早的计算机,每次只能执行一个程序,只有当当前执行的程序结束后才能执行其它程序,在此期间,别的程序都得等着。到后来,计算机运行速度提高了,程序员们发现,单任务运行一旦陷入IO阻塞状态,CPU就没事做了,很是浪费资源,于是就想要同一时间执行那么三五个程序,几个程序一块跑,于是就有了并发。原理就是...

2017-02-24 14:45:43

阅读数 896

评论数 0

C++11特性维基百科总结

C++11标准发布已有一段时间了, 维基百科上有对C++11新标准的变化和C++11新特性介绍的文章. 我是一名C++程序员,非常想了解一下C++11. 英文版的维基百科看起来非常费劲,而中文版维基百科不是知道是台湾还是香港人翻译的然后由工具转换成简体中文的,有些术语和语言习惯和大陆程序不一样! ...

2017-02-24 11:19:28

阅读数 506

评论数 0

模版元编程:C++11中type traits的部分实现

C++11新加入的type_traits头文件提供了模版元编程中常用的type trait基础设施,这些type traits基于编译期间的运算,能够极早提示出程序中的错误。这些type traits的基础就是整形包装器,见之前的博文总结:http://blog.csdn.net/u0104875...

2016-12-26 23:32:26

阅读数 1223

评论数 0

g++编译选项

介绍 代码编译过程分为: 预处理,生成.i文件编译,转换成汇编语言, 生成.s文件将汇编代码转换成机器码,生成.o文件链接目标代码,生成可执行程序 总体选项 -E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. gcc -E hello.c &g...

2016-12-19 15:36:58

阅读数 422

评论数 0

C++11 强类型enum

旧式enum问题容易被隐式转换成int默认情况下enum的每一项都有一个整数对应,可以显式指定或者从前一个自增得到。 旧式enum的类型限制是: 禁止不同枚举体之间的赋值 禁止整形向枚举体的隐式转换等 但是,当使用enum作为函数参数或者返回值时,如果此时参数类型或者返回值类型为int类型,是...

2016-12-14 18:40:36

阅读数 356

评论数 0

C++11类的新语法和特性

sizeof计算类成员大小sizeof可以直接用于获取Class::member的大小,而不用通过Class的实例获取。class A { public: long ...

2016-11-28 16:50:03

阅读数 328

评论数 0

C++11新增语法(糖)

新增类型long longC++11标准中新加入了long long类型属性,占用空间不小于long类型。long large = LONG_MAX; long long long_large = LLONG_MAX; long long long_long_large = 1LL <<...

2016-11-23 23:51:01

阅读数 685

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭