- 博客(101)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Level DB --- TableCache
TableCache 是Level DB 中重要的类,Level DB 中多层(multi level),且每一层(level)有多个 key-value file,TableCache正是用来缓存多层以及多层中的file数据,更快速地检索。
2025-03-30 21:02:31
186
原创 子集||(90)
计算的时间复杂度O(N2exp(N)),一共有N个数字,每一个数字都会作为头数字计算子集,在子集中每一个数字都会进入子集和不进入子集2个状态。空间复杂度O(N),这里主要用一个N维bool数字记录status,同时递归中栈空间累积最多N层。
2025-03-23 17:35:21
191
原创 Level DB --- WriteLevel0Table
当memtable中的数据达到阈值,内存中的数据要序列化到文件中,WriteLevel0Table正是这个过程的模块。
2025-03-23 17:20:39
246
原创 Level DB --- Compaction后台架构
Level DB的小文件会在后台不断进行Compaction计算,在架构上既要保证数据的安全,同时要保证Compaction计算的效率。
2025-03-19 06:30:00
223
原创 Level DB --- 写流程架构
Level DB是高效的k-v数据库,接受多线程写,既要保证多线程写临界区安全,同时又要保证写流程的尽量高效性。
2025-03-02 14:49:40
318
原创 Level DB --- Table
class Table 是 Level DB核心的几个组件之一,Table里面序列化高效存储了key-value,table是不可变的(immutable),并且持久存储的(persistent)。
2025-02-23 21:26:01
478
原创 合并区间(56)
时间计算复杂度O(NlogN)---sort 排序,空间复杂度O(1),不需要重新构建数组,这里面通过cur_index记录intervals数组的当前填充位置,算法细节见注释。
2025-02-22 20:49:40
190
原创 Level DB --- two_level_iterator
two_level_iterator 是 Level DB 中 table核心的迭代器。该迭代器定义了table对于block的读写操作。
2025-02-16 20:42:55
383
原创 Level DB --- Iterator
Iterator是Level DB中的一个基类,它定义了迭代器的基础的操作,同时对内存资源进行了维护。
2025-02-09 21:20:38
268
原创 全排列(46)
这道题很容易让人想到递归的方法,同时需要回溯。计算的时间复杂度O(N * N!),空间复杂度主要来自递归在栈空间上的使用,因为调用N次,每次使用的占空间固定为O(1),所以空间复杂度是O(N)。
2025-02-04 18:44:08
213
原创 恢复二叉搜索树(99)
算法过程:对于二叉搜索树,它的中序遍历是val递增的序列。对于交换了其中的两个val, 存在2种情况,举一个例子,例如{1, 2, 3, 4, 5, 6, 7, 8},a.交换相邻的两个数字,譬如交换2,3,则序列为{1, 3, 2, 4, 5, 6, 7, 8},存在1个逆序关系(3->2);b.交换不相邻的两个数字,譬如交换2,5,则序列为{1, 5, 3, 4, 2, 6, 7, 8},则存在两个逆序关系(5->3,4->2 )。在代码中predecessor代表遍历的当前节点的前一个节点。
2025-02-02 16:01:51
233
原创 Level DB --- table.format
table.format是Level DB中table序列化、反序列化重要的辅助类。它用来定义序列化、反序列化的核心结构体和操作实现。
2025-02-01 18:38:41
460
原创 Level DB --- TableBuilder
TableBuilder是Level DB里面重要的类和模块,它描述了数据如何序列化到文件中,以及数据里面的格式逻辑。它里面包含了之前介绍的多个模块和类。
2025-01-26 23:57:39
496
请问HBase的thrift客户端支持协处理器吗?
2015-09-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人