首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
linjinhe
掘友等级
coredump
|
。
擅长C++、分布式、数据库
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
26
文章 24
沸点 2
赞
26
返回
|
搜索文章
最新
热门
DuckDB:开篇
简单说,DuckDB 是一个 C++ 编写的 OLAP(列存)版本的 SQLite。 麻雀虽小,五脏俱全。
FoundationDB:Apple 开源的分布式 KV 存储
FoundationDB(简称 FDB),是 Apple 公司开源的一个支持分布式事务的 Key-Value 存储,可以认为类似 PingCAP 开源的 TiKV。
Linux 文件 I/O 进化史(四):io_uring —— 全新的异步 I/O
io_uring 是 2019 年 5 月发布的 Linux 5.1 加入的一个重大特性 —— Linux 下的全新的异步 I/O 支持,希望能彻底解决长期以来 Linux AIO 的各种不足。 用户进程生产 I/O 请求,放入提交队列(Submission Queue,后续简…
Linux 文件 I/O 进化史(三):Direct I/O 和 Linux AIO
前面介绍的 buffered I/O 和 mmap,访问文件都是需要经过内核的 page cache。这对于数据库这种 self-caching 的应用可能不是特别友好: 用户层的 cache 和内核的 page cache 其实是重复的,导致内存浪费。 数据的传输:disk …
Linux 文件 I/O 进化史(二):mmap
mmap 可以将文件或设备映射到内存中,使应用程序可以像读写内存一样读写文件。 具体参数说明可以参考 Linux Programmer's Manual: mmap(2)。 使用 mmap 之后,如果访问的数据刚好在内存(page cache)中,读写文件和读写内存没什么差别(…
Linux 文件 I/O 进化史(一):Buffered I/O
想找时间复习和总结一下 Linux 的文件 I/O 方式。大概想了,主要内容可以分成 4 个部分: Buffered I/O:传统的基于 page cache 的文件读写。 mmap:可以让应用像访问内存一样访问文件。 Direct I/O 和 AIO:绕过 page cach…
[小长文]Linux 内存管理
在 Linux 下,每个进程都拥有独立的虚拟地址空间。 在 IA-32 的场景下,虚拟地址只有 32 位,所以最大的寻址空间是 2^32 = 4GB。Linux 内核将这个 4GB 的地址空间按照 3:1 的比例划分,其中用户空间占用低地址的 3GB,内核空间占用高地址的 1G…
现代 C++:一文读懂智能指针
std::unique_ptr<T> :独占资源所有权的指针。 std::shared_ptr<T> :共享资源所有权的指针。 std::weak_ptr<T> :共享资源的观察者,需要和 std::shared_ptr 一起使用,不影响资源的生命周期。 std::auto_p…
LevelDB 完全解析(11):Compaction
清理过期(旧版本或者已删除)的数据。 维护数据的有序性。 当 MemTable 的大小达到阈值时,进行 MemTable 切换,然后需要将 Immutable MemTable 刷到外存上 —— 一般称之为 Minor Compaction。 当 level-n 的 SSTab…
现代 C++:Lambda 表达式
Lambda 表达式(Lambda Expression)是 C++11 引入的一个“语法糖”,可以方便快捷地创建一个“函数对象”。 无法直接捕获当前的一些状态,所有外部状态只能通过参数传递(不考虑在函数内部使用 static 变量)。 使用函数指针的调用无法 inline(编…
下一页
个人成就
文章被点赞
61
文章被阅读
45,697
掘力值
1,015
关注了
0
关注者
42
收藏集
1
关注标签
9
加入于
2020-02-12