More than code

More Than Code
The efficiency of your iteration of reading, practicing and thinking decides your understanding of the world.
未分类

GPT as innodb master

GPT as innodb master 向GPT学习innodb。虽然我还不清楚他回答的到底是不是正确的,但是看上去还是蛮正确的。 感觉只需要几句prompt GPT4就变成innodb大师了。 粘一下我和他的对话记录,我的目的是想知道Innodb有没有类似ARIES中提到的CLR机制。

2023年5月3日 1条评论 1146点热度 1人点赞 sheep 阅读全文
未分类

C++ Coroutines Notes

C++ Coroutines 这个文章算是一个个人的笔记,想简单记录一下Coroutine相关的细节,以便后续回忆。如果想从头学习coroutine的话,我更推荐这个系列,本文也是从这个系列中摘取一些关键点记录而已。 Awaiter A type that supports the co_await operator is called an Awaitable type. An Awaiter type is a type that implements the three special methods tha…

2023年4月23日 0条评论 1103点热度 0人点赞 sheep 阅读全文
未分类

async_simple Coroutine

async_simple Coroutine 简单看看async simple的coroutine的实现。 async_simple的coroutine是通过Lazy<T>实现的,即每一个Coroutine的返回值都是Lazy<T>,然后我们可以通过co_await Lazy来等待一个coroutine的返回值。 所以这里要关注的有两个点,一个是Lazy是怎么开始执行一个coroutine的,即关注Lazy的promise_type,另一个就是在coroutine内去co_await一个La…

2023年4月23日 0条评论 1118点热度 5人点赞 sheep 阅读全文
rocksdb

RocksDB WAL概览

WAL 简单看一下RocksDB的WAL SyncWAL 接口处有一个叫SyncWAL的函数,作用是把当前的日志同步到盘上。 相关的数据结构有一个deque<LogWriterNumber>,以及一个锁叫做log_write_mutex_。 其中LogWriterNumber中保存了log filter number,log writer,一个标识当前日志正在进行Sync的标记,以及pre_sync_size,代表在调用Sync之前的已经写入当前日志的数据大小,这里注释是说这个值会被记录在Manifes…

2023年4月16日 0条评论 1157点热度 0人点赞 sheep 阅读全文
未分类

async_simple Future/Promise 概览

async_simple Future/Promise 概览 简单看看async_simple的Future/Promise。注意这里不会关注coroutine/uthread部分 Future/Promise这块和folly,以及seastar的接口都是类似的,之后可以再写一下他们实现上的区别。 简单来说,就是Promise可以获取一个对应的Future,对应生产者和消费者。然后Future可以通过then(Func &&func)来创建一个continuation,表示在这个future获取到结…

2023年4月16日 0条评论 1093点热度 0人点赞 sheep 阅读全文
rocksdb

RocksDB WritePath概览

RocksDB WritePath概览 简单过一遍RocksDB前台的写链路。 忽略这些,从下面的第一张写链路图开始看。。 DB::Put 没给CF的话会用DefaultCF 构造一个WriteBatch,把key,value,以及column family塞进去 这里有个Comparator的timestamp size,还不知道是干啥的 DBImpl::Write 先走到没有Callback的版本 然后有一堆InvalidArg的检查。disable memtable先不看,pipelined write先不看…

2023年4月5日 0条评论 968点热度 0人点赞 sheep 阅读全文
database

LevelDB Recover

LevelDB Recover 过一遍LevelDB的Recover流程。 DB::Open DBImpl::Recover 给当前的db上锁。防止有什么并发的OpenDB之类的。 看看有没有CurrentFile,没有的话打开一个新的DB。 VersionSet::Recover 读取Current,找到Manifest文件。 读取Manifest,重放VersionEdit。 如果Manifest过大,或者是重新将Manifest文件通过Append的方式打开的时候失败了,就会放弃Reuse Manifest。…

2023年4月4日 0条评论 879点热度 0人点赞 sheep 阅读全文
database

LevelDB Read

LevelDB Read 读链路主要分为两个,一个是点读,一个是RangeScan。 点读的接口是Get DBImpl::Get ref住当前的mem table,immmutable mem table,以及version 先读mem table,再读immutable memtable,最后调version->Get() 读完后更新统计信息,可能触发SeekCompaction Unref 读MemTable的时候会构建LookupKey。这是因为写入MemTable的时候会用一个varint作为leng…

2023年4月4日 0条评论 765点热度 0人点赞 sheep 阅读全文
database

LevelDB Compaction

LevelDB Compaction Compaction分为MinorCompaction和MajorCompaction。我们就直接叫Flush Memtable和Compaction SST。 LevelDB的Immutable memtable只能由一个。Flush Memtable优先级比较高,因为会影响前台写链路。 Flush memtable的调用点为CompactMemTable()。有两个调用点,不过都是后台线程做Compaction,所以不会出现并发Compaction的情况。 调用链路如下: …

2023年4月4日 0条评论 784点热度 0人点赞 sheep 阅读全文
rocksdb

RocksDB-1 HyperClockCache

RocksDB-1 HyperClockCache 接口 目前有两类Cache。分别是LRUCache,以及HyperClockCache。(还有一个CompressedSecondaryCache,注释中写是experimental的,就不看了。) 两种CacheOptions都会继承一个ShardedCacheOptions,说明都是分shard的cache 比较有意思的是RocksDB支持一个叫SecondaryCache的东西,是在In-memory Cache和磁盘层中间的又一层Cache,有点Cache…

2023年2月19日 0条评论 1304点热度 1人点赞 sheep 阅读全文
1…1213141516…34
分类
  • Agent/RAG
  • ARTS
  • C++
  • CSAPP
  • daily
  • database
  • leetcode
  • linux
  • ml
  • nlp
  • paper
  • RL
  • rocksdb
  • rust
  • ScummVM
  • tech
  • 其他
  • 周报
  • 未分类
  • 笔记
  • 算法
  • 计算机图形学
归档
  • 2026 年 4 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2026 年 1 月
  • 2025 年 12 月
  • 2025 年 11 月
  • 2025 年 10 月
  • 2025 年 9 月
  • 2025 年 8 月
  • 2025 年 7 月
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 7 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 4 月
  • 2023 年 2 月
  • 2023 年 1 月
  • 2022 年 9 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 9 月
  • 2021 年 8 月
  • 2021 年 7 月
  • 2021 年 6 月
  • 2021 年 5 月
  • 2021 年 4 月
  • 2021 年 3 月
  • 2021 年 1 月
  • 2020 年 12 月

COPYRIGHT © 2021 heavensheep.xyz. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS