自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 RocksDB的compaction流程及优化(一)

本文着重围绕compaction展开讨论,争取通过这篇文章将RocksDB在其中的优化以及各种调优方式准确的呈现出来。这个系列主要分为三部分,这一篇主要以文字的形式讲述RocksDB的compaction做了哪些事情,流程是什么;下一篇以分析源码的形式将RocksDB的compaction流程展现出来;最后一篇则是展开呈现RocksDB对于compaction做的一系列优化,以及这些优化是为了解决哪些问题。

2023-10-07 06:42:16 621 1

原创 数据库内核系列(二)- MySQL的锁

在InnoDB中,锁分为以下八种:Shared and Exclusive Locks,Intention Locks,Record Locks,Gap Locks,Next-Key Locks,Insert Intention Locks,AUTO-INC Locks,Predicate Locks for Spatial Indexes

2023-10-04 23:59:33 486 1

原创 Linux AIO实现原理

最近在看Rocksdb中关于异步I/O与预读的代码,有点不太理解的是如果linux内核版本不够高的话,Rocksdb异步I/O会完全回退到同步的I/O操作,而不是尝试采用linux的另一种aio的方式来达到异步。同时之前或多或少接触过io_uring的知识,这是正好有机会做个总结,和aio对比一下。内容总共分为两篇,这一篇主要用图解的方式讲明aio的实现原理和流程。

2023-10-03 23:23:36 998 1

原创 数据库内核系列(一)- 并发控制

这次主要聊聊数据库的并发控制,以及MySQL在这方面是怎么做的 (说实话我觉得MySQL的有些理念和设计有点落后于pg和现在的一些database了,具体为啥看完这篇就应该能理解了)

2023-09-30 23:47:42 689 1

原创 从LSM-Tree架构的角度谈为什么要分层

LSM-Tree的磁盘结构采用分层的处理是基于何种考量,又解决了什么样的问题?在面向未来的系统中分层是否还有必要?

2023-09-29 10:00:00 953 1

原创 C++系列(三)右值引用

有关C++中左值右值的定义,我们直接用C++ Primer的说法来解释:(为了最大化还原它的本意,这里放上原文)int i = 42;i = 43;int& foo();foo() = 42;int j = 0;j = 42;通常来说,左值是指一个具有持久的内存地址的对象,而右值是指临时对象或字面量值。C++中的左值和右值也具有着不同的用途和行为。例如,左值可以取地址并用作指针,而右值不能取地址。此外,左值和右值在传递参数和返回值时也具有不同的语义和行为,这些在后面会详细说明。

2023-09-25 11:53:03 772 1

原创 C++系列(二)lambda表达式

C++的这个系列接着续上,这次聊聊lambda表达式。C++11中首次引入了lambda表达式。通俗的来说,就是可以方便的定义和创建一个内嵌的匿名函数。这样的标准定义方式在对于查找一段逻辑的调用栈,或者不同层级的逻辑相互解耦的时候是很好的写法。但当我们需要将这个函数的值传递给另外一个算法或者异步函数,特别是函数中的代码量很少的时候,lambda表达式也是一种不错的选择。可以看到,这里我们直接用lambda表达式创建的匿名函数替换了原先独立声明的compare函数,语法上简洁了许多。

2023-09-24 03:43:24 761 1

原创 C++系列(一)智能指针

今天主要讲的是C++的智能指针。在C++中,智能指针的引入是为了更加安全和方便的动态管理内存。智能指针大体上和普通的指针具有一样的功能,唯一不同的地方在于它可以自动的delete其所指向的object。在正确使用的前提下,智能指针可以很好的避免因为忘记释放内存而导致内存泄漏的事情发生。总的来说,C++定义了两种不同的智能指针,shared_ptr和unique_ptr。

2023-09-20 08:33:38 736 1

原创 文件I/O:Linux下的不同I/O接口(pread/pwrite, read/write, readv/writev, fread/fwrite)

最近一直在做Rocksdb以及存储相关的事情,借这个机会总结一下Linux的I/O栈。这次写写Linux中不同读写接口的区别以及性能差异。

2023-09-20 02:29:14 1017 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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