使用 Rust 实现高性能预写日志(Write Ahead Log)

不知不觉已经三个多月没有更新博客了,这段时间也想写一点东西,但因为各种原因一直没有动笔。或许我的拖延症已经到达晚期了 ¯\(ツ)/¯。最近,我看到一句挺有意思的话:「战胜拖延症的方法:我就是要做一坨🐶💩出来」。话虽糙,但其本质是「完成比完美更重要」。如果一开始就抱着把事情搞砸的心态去做,说不定就成了呢? ...

2024-06-02 · 6 分钟 · 2525 字 · Rust

译|使用 Linux 命名空间隔离系统

原文:Separation Anxiety: A Tutorial for Isolating Your System with Linux Namespaces 随着 Docker、Linux Containers 这些工具的出现,将 Linux 进程隔离到自己的小系统环境中隔离变得非常容易。这使得在一台真实的 Linux 机器上运行各种各样的应用成为可能,并确保它们之间不会互相干扰,而无需使用额外的虚拟机。这些工具为 PaaS 服务商带来了巨大的福音。但是这背后到底是如何实现的呢? ...

2024-02-27 · 11 分钟 · 5243 字 · Linux

深入 Hyperf:HTTP 服务是如何处理请求的?

上一篇文章介绍了 HTTP 服务启动时发生了什么,让我们对于 Hyperf 框架以及 HTTP 服务的启动过程有了更进一步的理解。今天我们继续来了解一下,当我们访问 HTTP 服务时,它是如何处理请求并返回响应内容的。 ...

Linux 文件权限学习笔记

在 Linux 中,文件权限分为所有者、群组、其他人三种身份。 所有者:指拥有该文件/目录的用户,默认是创建该文件/目录的用户。 群组:指该文件/目录所属的群组,默认是创建该文件/目录的用户所在主要群组。群组是多个用户的集合,通过给群组赋予权限,从而使群组中的用户都拥有相应的权限。 其他人:如果一个用户既不是文件/目录的所有者,也不属于文件/目录所属的群组,那么该用户就是其他人。 在下面的例子中,可以看到当前用户是 her-cat,通过 ll 查看 /var/run/docker.sock 的文件属性。其中,第三列表示文件的所有者是 root;第四列表示文件所属的群组是的 docker;用户 her-cat 既不是所有者 root,又不在 docker 群组中,所以用户 her-cat 的对该文件来说身份是其他人。 ...

2023-10-31 · 8 分钟 · 3633 字 · Linux

译|了解 Bitcask:基于日志结构的 KV 存储引擎

最近我在微信上看到了一篇介绍 rosedb 的文章,从这篇文章中,我了解到 rosedb 是一个基于 Bitcask 存储模型的 KV 存储引擎,并在此基础上做了大量了优化工作,它兼容 Redis 协议、支持丰富的数据结构和批量操作。实际上,可以将 rosedb 看作是 Go 语言版本的 Redis。 ...