- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 博客收藏1
https://normaluhr.github.io/2020/12/31/Effective-C++/ 【effective C++】
2024-10-05 11:40:24
128
原创 使用ceph-deploy部署Ceph集群
使用了Ubuntu22.04安装ceph-deploy,因为python模块适配的问题,最多只能到python3.6(3.7以上可能也行,但是要去github上面下载ceph最新版本2.1.0)Ceph官方推荐部署已经把Ceph-deploy取消了,原因是Ceph-deploy在20年就不再维护更新了。执行这一步时,需要到对于host下创建一个磁盘分区,并且必须为空。所以使用Ubuntu18.04或以下版本部署最好。
2023-10-12 11:02:54
492
原创 Ceph--PG读写流程和迁移
对于纠删码而言,当涉及覆盖写时,如果改写的部分不足一个完整条带(指写入的起始地址或者数据长度没有进行条带对齐),则需要执行RMW,这期间需要多次执行补齐读、重新生成完整条带并重新计算校验块、单独生成每个副本的事务并构造消息进行分发(Write)、同时在必要时执行范围克隆和对PG日志进行修正,以支持Peering期间的回滚操作。如果删除head对象并且对象仍然被快照引用,则创建snapdir对象,同时生成一条创建snapdir对象的日志,并将head对象的OI和SS属性用snapdir’对象转存。
2023-10-08 18:07:37
562
原创 Ceph--存储引擎BlueStore
又因为产生了新PG,需要存储到OSD中,因为原先老PG存放到OSD中时已经做了负载均衡,新PG的数据又是从老PG迁移过来的,所以新PG存放的OSD就和老PG相同,以减少数据的跨OSD迁移造成性能的损耗。BlueStore提供的读写接口都是基于PG粒度的,通过其提供的接口来操作PG下的某个对象,首先需要找到BlueStore中对应PG上下文和对象上下文,这两类上下文保存了关键的PG和对象的元数据信息,而且BlueStore通过KVDB固化这两类上下文至磁盘,接下来我们需要谅解这两类上下文的磁盘数据结构。
2023-10-07 16:17:20
959
原创 Ceph简要概括
首先Ceph会将一个文件A分为大小默认为4M的object(且有一个唯一编号文件名+序号),通过hash(object id) & mask(通常为osd的数量减一)得到PG id,最后通过CRUSH(PG id) --> (osd1,osd2,osd3) 将该PG存储到这三个osd中,其中一个为primary,剩下两个为副本。当Ceph存储集群设定的数据有两个副本时(一共存两份),则至少需要两个OSD守护进程,即两个OSD节点,集群才能到达active+clean状态。用于集群中所有数据与对象的存储。
2023-10-05 11:04:56
113
原创 MIT6.5840 分布式系统笔记
是一种计算机程序设计领域的优化策略。其核心思想是,如果有多个调用者(callers)同时请求相同资源(如内存或磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者试图修改资源的内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的。此作法主要的优点是如果调用者没有修改该资源,就不会有副本(private copy)被创建,因此多个调用者只是读取操作时可以共享同一份资源。
2023-09-30 11:26:08
274
1
原创 linux高性能编程随记
3. 当写 buff 有数据,但是我们没处理(没发送出去),但是对相应fd进行epoll_mod OUT事件时,触发。3. 当读 buff 有数据可读时,我们不处理,但是对相应fd进行epoll_mod IN事件时,触发。读缓冲区有数据就一直触发(即epoll_wait时能检测到),没有就不触发。2. 当有新数据到达时,即读 buff 数据由 少 -> 多 时,触发;2. 当有数据被送走时,即写 buff 数据由 多 -> 少 时,触发;1. 当写 buff 从 满 -> 不满 时,触发;
2023-09-18 19:55:02
56
原创 【VS Code】“The ‘clang-format‘ command is not available. Please check your clang-format.“报错
快捷键shift+alt+f就可以自动格式化当前文件了。
2023-09-18 10:46:36
710
原创 MIT 6.824 Lab4 Sharded Key/Value Service
和15445的lab一样,最后一个实验的最后一个task没写完。但做完这几个lab以及课堂知识,也对分布式系统以及数据库的了解更深了一点,在做6.824lab的时候我常常回合15445相比,相比较而言15445lab中给定的约束更多,而6.824则留给了大家更多发挥的空间。
2023-06-28 17:40:17
289
原创 MIT 6.824 Lab3 Fault-tolerant Key/Value Service
MIT 6.824 Lab3 Fault-tolerant Key/Value Service 2023 spring
2023-06-27 10:52:02
241
原创 C++ 前向声明
前向声明指在A程序中引入新的类型B,但是B并不是一个完整清晰的类,因为我们只知道只是一个B类,但是我们不清楚它的具体函数接口实现以及成员变量;不能定义一个B的类型,只能使用指针和引用的方式;直到后面找到B的定义我们才真正直到B的具体实现,才可以调用它的实现方式;在a2.h中前向声明B,但没有使用B,第二种方式也可以在a2.h中加入#include “a1.h”,但是这样对于每个#include “a2.h”的文件,不管是否用到B,都需要编译一遍a1.h,降低编译效率。
2023-05-17 11:35:02
97
原创 CMU 15445 Project 4 Concurrency Control
CMU 15445 2023spring Project4 Concurrency Control
2023-05-13 09:17:52
641
原创 CMU 15445 P3 Query Execution
CMU 15445 2023spring Project3 Query Execution
2023-05-04 20:45:17
2599
2
原创 CMU 15445 Project 1 Buffer pool
CMU 15445 2023spring Project 1 Buffer pool
2023-04-24 17:12:40
1096
2
原创 在linux系统下,下载安装配置vscode并成功运行一个C++项目
在linux系统下,下载安装配置vscode并成功运行一个C++项目,包括vim,g++编译的基本指令。以及使用cmake运行和配置vscode
2022-12-08 18:39:01
3950
原创 tensorflow
Tensorflow之AlexNet构建2.AlexNet网络构建本网络采用了5个卷积层三个全连接层来构建该网络。增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;全新的 KaTeX数学公式 语法;增加了支持甘特图的mermaid语法1 功能;增加了 多屏幕编辑 Markdown文章功能;增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能...
2019-12-01 19:47:44
98
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人