Sutdown Blog

「行至朝雾里,坠入暮云间」

C++演化(论文现代C++白皮书,书籍深入理解C++11特性)

本文分为两部分: 现代c++白皮书:在纷繁多变的世界里茁壮成长:C++ 2006–2020论文笔记 书籍:深入理解c++11特性阅读笔记 找资料的过程中发现了现代c++白皮书,相见恨晚,github上还有各路大佬翻译的中文版,论文和《深入理解c++11》刚好可以同步学习,c++11应该属于现代版c++的开端,到了c++20,版本迭代属于更加完善了。 ...

leveldb源码阅读6 wirte&read and log

LOG log结构和设计 Log有Record和一些为了对其而填充的gap组成的文件。levelDB在读取Log文件时,为了减少IO次数,每次读取都会读入一个32KB大小的块。因此在写入log文件时,leveldb也将数据按照32KB对齐。 每个块中会很有多段,段的记录形式有三种:FirstType Middle Fragment Last Fragment。 而对于段结构: ...

赋值运算符函数

赋值运算符函数 1 2 3 4 5 6 7 8 9 10 11 class CMyString { public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator =(const CMyString &...

单例模式

顾名思义,单例模式就是只提供一个类的实例。 简单来说的需要思考到的要点有: 全局只存在一个实例,不能拷贝和赋值 有实例时直接返回该实例,没有实例时创建实例 创建实例考虑线程安全 双重锁校验 两次锁的出现其实都是为了确保线程安全, 只有确保实例为空时,我们才需要加锁创立新的实例, 加完第一次锁之后,可能其它线程已经创建实例,此时需要再次进行判断,判断为空后就可以创建...

My first blog based github

啊哈,我好懒,其实之前也搭建过网站,用的宝塔面板+typora,然后用了些域名还租了个服务器,一年大概两百吧,其实我搞不太懂宝塔面板,那会就照葫芦画瓢勉强弄了一个,后来出来点问题也不太会修,遂放弃,不过文章大多都有存档。 今天看到了github可以直接生成静态页面,兴致上来了就想着弄弄,还不用花钱,搞了差不多两小时,emmm,git在用代理的时候总容易出问题,这个就消耗了好久。其实不难,就...

leveldb源码阅读5 Compaction And Version

compaction 作用:leveldb - handbook 数据持久化。一次minor compaction的产出是一个0层的sstable文件,其中包含了所有的内存数据。但是若干个0层文件中是可能存在数据overlap的。 提高读写效率。Major Compaction的过程,将0层中的文件合并为若干个没有数据重叠的1层文件。对于没有数据重叠的...

leveldb源码阅读4 snapshot,Bloom Filter

snapshot snapshot是什么,有什么用 snapshot是一种机制,用于在数据库读取时保持一致的视图,确保在读取数据时,写入操作不会影响读取结果,从而提供一种简单的并发控制方式。LevelDB 的快照机制通过版本管理和引用计数来实现一致性读取,确保读操作在写入操作发生时不会受到影响。版本管理机制在leveldb5中会讲解,这里暂时掠过。 这个.h文件中的信息有限,主要是有三...

leveldb源码阅读3 filesysytem

sstable 感谢这个博主MrCroxx,看了这么多对leveldb的讲解,他的文章是最为明了的!本文中由部分引用他的原文,在此先声明。 插入,对于以下部分内容的概览,有利于理解cache的实现。 来源:一只安静的猫 2.1 hash table数据结构 哈希表是一个很常见的结构了,存储的是key-value结构,一个key-value对常被称作entry,它最大的特点...

leveldb源码阅读2 memtable(skiplist)

前言 leveldb是一个写性能十分优秀的存储引擎,是典型的LSM树(Log Structured-Merge Tree)实现。LSM树的核心思想就是放弃部分读的性能,换取最大的写入能力。 leveldb如何读写的呢 LSM树写性能极高的原理,简单地来说就是尽量减少随机写的次数。对于每次写入操作,并不是直接将最新的数据驻留在磁盘中,而是将其拆分成(1)一次日志文件的顺序写(2)一次内存...

普通人的自述

小时候,对事情都只有些许模糊的认知,每天一块钱,还能悄悄留五毛和我的弟弟傍晚在回家的路上买点零食,比如一毛的糖果或者辣条;也会有几个好友,在某个大石头附近当作一个秘密基地,那时网络还不怎么发达,虫儿飞,荷塘月色就是那时接触的最多的音乐。 13年,是我人生的第一个转折点。 那一年,从乡下的小学校去到了市里私立小学,同村那年因为学校的招生,去了三四个人吧,后来陆续的,有因为学费,也有因为跟不...