03 2025 档案

摘要:Managing memory in lock-free data structures 正如之前我们在上一章,一开始讨论的那样,为了防止 dangling pointer,我们将 5. delete old head 跳过,那这样会造成内存泄露 The basic problem is that 阅读全文
posted @ 2025-03-30 08:53 rustic-stream 阅读(20) 评论(0) 推荐(0)
摘要:sequenceDiagram participant MainLoop as 主线程EventLoop participant SubLoop as 子线程EventLoop participant Eventfd as eventfd唤醒机制 MainLoop->>SubLoop: 调用runI 阅读全文
posted @ 2025-03-29 17:35 rustic-stream 阅读(58) 评论(0) 推荐(0)
摘要:C++ 并发编程实战 7.1 7.2 设计无锁栈部分 阅读全文
posted @ 2025-03-29 08:41 rustic-stream 阅读(42) 评论(0) 推荐(0)
摘要:C++的3种memory model: + sequentially consistent + relexed + acquire-release 对应5.3章 阅读全文
posted @ 2025-03-28 07:24 rustic-stream 阅读(31) 评论(0) 推荐(0)
摘要:了解了文件系统后,也理解了他是如何进行路径解析找到对应文件的情况后,如果是本机的情况下,是可以很好地通过地址进行方法,但是,我们常常会使用U盘,使用移动硬盘,在我们使用的过程中,外部的系统是如何与我们的本地的文件系统产生关联的呢?我们是如何访问它们的呢,因为在本机的情况下我们都是使用文件路径进行访问 阅读全文
posted @ 2025-03-18 16:14 rustic-stream 阅读(34) 评论(0) 推荐(0)
摘要:好了,到现在为止从01. 数据在磁盘中的存储 和 02. 数据在flash的存储,我们理解了说在硬件层面上数据的存储,也理解了为了使得文件系统和底层的物理特性解耦合,我们在文件系统中设定了 "逻辑块" 的概念,并且使用 映射层 来实现从逻辑块和物理地址的映射,不论是基于磁盘还是基于flash。由此我 阅读全文
posted @ 2025-03-18 13:08 rustic-stream 阅读(63) 评论(0) 推荐(0)
摘要:然后我们要理解说文件是如何存储在Flash上的话,首先我们要理解在Flash中是如何存储0,1的 总结来说,从上到下是这样的结构: Flash就是通过双珊极场效应管的方法存储单位的0,1; 而双珊极场效应管是由场效应管设置而来; 如果要理解场效应管,首先我们要理解半导体导电原理。 我们从下到上开始理 阅读全文
posted @ 2025-03-18 12:13 rustic-stream 阅读(86) 评论(0) 推荐(0)
摘要:数据在磁盘上的存储抽象 数据存储在磁盘上,物理层面上是在每一个存储单元中,有类似2维的一个一个空间,每一个空间存储1bit或者1byte的数据. 当存储数据的时候都需要知道每一段数据的头地址由此进行读写 这样并不方便管理,所以将整个存储空间划分为更大的单位空间,以block的方式进行管理,在这个文件 阅读全文
posted @ 2025-03-18 12:11 rustic-stream 阅读(34) 评论(0) 推荐(0)
摘要:入门系统编程,首先理解一下 基本的系统调用和库函数的区别 一切皆文件的思想,都是通过文件描述符来进行操作 strace命令 文件读写系统调用 #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcnt 阅读全文
posted @ 2025-03-18 12:10 rustic-stream 阅读(80) 评论(0) 推荐(0)
摘要:在这样的情况之下,我就想来捋一下,这个代码的逻辑 首先从不同的模块说起吧 include/leveldb : 这里面存储了要暴露给外部的API,这里面的结构,从使用者来说会比较熟悉,就是通过这里面的结构,实现它的功能,对不同的组件会有一个直观的定义 db : 这里面是对应的实现的类,不仅实现了inc 阅读全文
posted @ 2025-03-18 06:56 rustic-stream 阅读(30) 评论(0) 推荐(0)
摘要:首先学习LevelDB当中比较独立的一部分,当然的,读源码的话,一个很好的入门的感觉就是先从一个独立的组件模块开始,一个比较容易的开始,SkipList 然后跳表的基本概念什么的我不太想要去过多的赘述,就像二叉树那样希望能得到log(N)的性能,而又利用概率算法更好实现,可以看leveldb-han 阅读全文
posted @ 2025-03-18 06:52 rustic-stream 阅读(29) 评论(0) 推荐(0)