LevelDB 源码阅读:准备开发环境

LevelDB 是 C++ 开发的优秀的 LSM Tree 的存储组件,整体代码量不大,但是设计精巧,值得学习。在阅读源码过程中,整理了系列文章,逐步拆解 LevelDB 的实现细节。不过在阅读代码前,最好先准备好整个开发环境。

本文会从最基本的拉取代码开始,记录自己准备整个环境的过程,包括配置 VSCode IDE 和 clangd 插件使用,以及如何配置编译选项等。然后会通过简单的读写代码 demo,来简单使用下 LevelDB,对这个库有个感性的认识。另外,还会介绍如何运行测试用例,LevelDB 的测试用例写的很好,在代码阅读过程中,可以借助用例更好的理解代码。

阅读全文

LevelDB 源码阅读:Posix 文件操作接口实现细节

LevelDB 支持在各种操作系统上运行,为了适配不同的操作系统,需要封装一些系统调用,比如文件操作、线程操作、时间操作等。在对外暴露的 include 文件中,env.h 文件定义了 LevelDB 用到的各种接口。包括 Env 类,封装文件操作,目录操作等,还有一些文件抽象类,比如 SequentialFile、WritableFile、RandomAccessFile 3 个类,用于顺序读取,随机读取和写入文件。

通过抽象接口,只需要为每个平台实现相应的 Env 子类,LevelDB 就可以在不同的操作系统上运行。这篇文章以 POSIX 系统环境为例,先来看看抽象出来的和文件操作相关的接口是怎么实现的。

阅读全文

从法院判决书看性骚扰行为的后果

在当今社会,性骚扰问题引起了广泛关注,特别是高校内部的师生关系中性骚扰问题更是敏感而复杂。近期,一位来自某知名高校的教授因涉嫌对女学生进行性骚扰而被曝光,此事件迅速激发了公众对于高等教育环境中性问题的关注。这不仅是一个高校的内部问题,更触及到了社会法律对于性骚扰行为的态度与处理。

性骚扰不仅侵犯了个体的人格尊严,还可能对受害者造成长期的心理阴影。我国法律对此有着严格的规定与明确的法律后果,而通过具体的法院判决书,我们可以清晰地看到法律是如何审视这一行为的。本文将结合最新的判例,详细分析关于性骚扰行为的相关法律知识~

阅读全文