首页 > 分布式存储(ceph)技能图谱(持续更新)

分布式存储(ceph)技能图谱(持续更新)

一下为个人结合其他人对分布式存储 所需的技能进行总结,绘制成如下图谱,方便针对性学习。

这里对分布式存储系统接触较多的是ceph,所以在分布式存储系统分支上偏向ceph的学习。

如有分类有问题或者分支不合理,欢迎大家批评指正,目的是为了大家共同提升

文章目录

  • 分布式存储技能树
    • Linux操作系统
      • 文件系统
      • I/O系统
        • I/O追踪
      • 内存管理
        • Page Cache和Buffer Cache
      • 进程管理
        • 进程间同步机制
          • 多进程编程
          • 共享内存
        • 进程内存分布
        • 进程状态
      • 多线程管理
        • 多线程编程
    • 系统分析
      • 性能分析
        • CPU
          • CPU上下文切换
          • CPU使用率
        • 性能分析工具
          • systemtap
    • 分布式存储系统
      • ceph
        • ceph核心理论
          • CEPH架构
          • PG
          • RADOS(reliable autonomic distributed object storage system)
            • rocksdb
            • BlueStore
            • CRUSH 算法
    • 传统存储理论
      • 机械磁盘(hdd)/ssd 基本工作原理
    • 分布式存储理论
      • quorum协议
    • 编程基础
      • 编程语言
        • C++
        • SHELL
      • 算法
        • 十大排序算法
    • 网络知识
      • TCP协议
      • 网卡的bond技术

分布式存储技能树

在这里插入图片描述

Linux操作系统

文件系统

在这里插入图片描述

I/O系统

I/O追踪

在这里插入图片描述

内存管理

Page Cache和Buffer Cache

在这里插入图片描述

参考文档:

https://zhuanlan.zhihu.com/p/42364591

https://zhuanlan.zhihu.com/p/32354613

《深入理解Linux 内核》

进程管理

进程间同步机制

多进程编程

在这里插入图片描述

无名管道PIPE

命名管道FIFO

POSIX共享内存

POSIX消息队列

POSIX信号量

SYS V共享内存

SYS V消息队列

SYS V信号量

共享内存

在这里插入图片描述

system V 共享内存 接口及命令使用

POSIX 共享内存 接口及命令使用

进程内存分布

在这里插入图片描述

linux 进程内存分布及 堆分配和栈分配的特点

进程状态

在这里插入图片描述

多线程管理

多线程编程

在这里插入图片描述

互斥变量

互斥对象

ptrhead相关接口

条件变量

future异步访问类

async类

promise类

package_task类

系统分析

性能分析

CPU

CPU上下文切换

在这里插入图片描述

CPU使用率

在这里插入图片描述

性能分析工具

systemtap

在这里插入图片描述

s-systemtap工具 基本使用 图谱详解

分布式存储系统

ceph

ceph核心理论

CEPH架构

在这里插入图片描述

PG

在这里插入图片描述

参考文档:

https://blog.csdn.net/Z_Stand/article/details/100082984

https://blog.csdn.net/skdkjzz/article/details/51579432

https://blog.csdn.net/skdkjzz/article/details/52852076

https://blog.csdn.net/liu3612162/article/details/79389088

RADOS(reliable autonomic distributed object storage system)
rocksdb

在这里插入图片描述

BlueStore

在这里插入图片描述

参考文档:

http://blog.wjin.org/posts/ceph-bluestore.html

BlueStore源码分析之事物状态机

CRUSH 算法

在这里插入图片描述

传统存储理论

机械磁盘(hdd)/ssd 基本工作原理

在这里插入图片描述

参考文档:

https://blog.csdn.net/yizhaoxin/article/details/53615740

分布式存储理论

quorum协议

在这里插入图片描述

参考文档:

https://www.cnblogs.com/charlist/p/7122237.html

编程基础

编程语言

C++

在这里插入图片描述

SHELL

在这里插入图片描述

算法

十大排序算法

在这里插入图片描述

网络知识

TCP协议

在这里插入图片描述

参考文档:

https://blog.csdn.net/qq_38950316/article/details/81087809

网卡的bond技术

在这里插入图片描述

更多相关:

  • Bigtable 可以说是log-structed以及page-oriented 两种存储引擎的整合体,我们性能优越的单机存储引擎leveldb和rocksdb就是基于google的bigtable存储系统实现的。 论文地址Bigtable: A Distributed Storage System for Structured Da...

  • 存储过程存储过程分为系统存储过程和自定义存储过程存储过程通过将处理数据的程序从客户端应用程序移动到服务器,存储过程是放在服务器上的,通过客户端下达指令调用存储过程的时候,这个过程是在服务器上发生的,自然就不会占用网络的带宽就会降低网络流量。存储过程就是一组为了完成特定功能的T-SQL语句...

  • 原文地址:https://github.com/jaywcjlove/handbook/blob/master/MySQL/MySQL%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B.md MySQL数据类型 数字类型 整数: tinyint、smallint、mediumint、int、bigint浮点数:...

  • 为什么要用存储过程   几个去 IBM 面试的兄弟回来抱怨:去了好几个不同的 IBM 项目组,几乎每个面试官问到数据库的时候都要问用没用过存储过程,烦人不?大家去面的程序员,又不是 DBA,以前的项目都没有用到存储,不照样运行的好好的? 存储过程真的那么重要吗,它到底有什么好处呢? 笔者认为,存储过程说白了就是一堆 SQL 的合并。...

  • 更多内容,欢迎关注微信公众号:全菜工程师小辉~前言在笔者上一篇博客,详解了NIO,并总结NIO相比BIO的效率要高的三个原因,彻底搞懂NIO效率高的原理。这篇博客将针对第三个原因,进行更详细的讲解。首先澄清,零拷贝与内存直接映射并不是Java中独有的概念,并且这两个技术并不是等价的。零拷贝零拷贝是指避免在用户态(User-space)...

  • 一、预备知识—程序的内存分配  一个由c/C++编译的程序占用的内存分为以下几个部分  1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈,如果还不清楚,那么就把它想成数组,它的内存分配是连续分配的,即,所分配的内存是在一块连续的内存区域内.当我们声明变量时,那么编译器...

  • 我的爱机是一台ThinkPad T420,原装三星DDR 1333 4G内存一根,还剩一根内存位置,最近趁京东6.18促销,准备增加一根物理内存。为了确保兼容性,觉得仍然选购DDR 1333 4G内存,于是购买了金士顿这款,比如DDR3 1600的还贵。 这个安装过程完全参照该内存的网页提示进行 这里简单记录一下,以备...

  • 陪伴我多年的老本ThinkPad T420渐渐垂垂老矣, 我想更新一下可以更新的部分, 比如将2.5寸HDD更换为SSD, 将单条4G内存再增加一根, 凡此种种想法, 可能最后归结为如何获取该笔记本的硬件配置信息, 在windows下面使用鲁大师之类的检测软件, 也许很好搞定,但是在Ubuntu 14.04平台上如果办到呢? 很简单...

  • 一.内存错误出现的场景 这几天在重构ATS插件代码的过程中遇到了烦人的内存泄露问题, 周五周六连续两天通过走查代码的方法,未能看出明显的导致内存错误的代码, 同时也觉得C和C++混合编程得到一个动态库, 在一个.cpp主文件中,即用new又用malloc来动态分配内存, 可能会导致内存错误.后来网上调研和查资料发现, new和mal...

  • 在我们面试过程中,面试官经常会问到这么一个问题,那就是从在浏览器地址栏中输入URL到页面显示,浏览器到底发生了什么?这个问题看起来是老生常谈,但是这个问题回答的好坏,确实可以很好的反映出面试者知识的广度和深度。本文从浏览器角度来告诉你,URL后输入后按回车,浏览器内部究竟发生了什么,读完本文后,你将了解到:浏览器内有哪些进程,这些...

  • 进程与线程进程(process)就是任务,是计算机系统进行资源分配和调度的基本单位[1]。比如,打开一个word文件就是启动了一个word进程。线程(thread)是进程内的子任务。比如word中可以进行编辑、拼写检查和打印等子任务。我们目前的操作系统都是多任务的操作系统,多任务的实现方式[2]:多进程多线程多进程 + 多线程多进程:...

  • 运行cmd netstat -aon|findstr 80 然后 taskkill -f -pid 32428(这个就是pid进程编号) 回车   进程死翘翘了~ 去愉快玩耍吧~哦对了 别忘记一健三联关注我哟~...

  • 首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可以唯一标识网络中的主机,而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。这样利用三元组(ip地址,协议,端口)就可以标识网...

  • 1.      SIGTERM “kill pid” 会发送SIGTERM到进程pid. This is the termination signal sent by killcommand by default. 2.      SIGINT 在终端中敲入interrupt key(DELETE或ctrl+c)会产生SIG...