More than code

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

Efficiently Compiling Efficient Query Plans for Modern Hardware

Efficiently Compiling Efficient Query Plans for Modern Hardware Abstract 这个Abstract写的很清楚。现有的iterator model在执行的时候对locality,以及instruction prediction利用率很差。导致执行性能比不上hand-written的代码。即便是有vectorized tuple processing,只能缓解这个问题,但是性能还是不够。 本文提出了一种基于LLVM框架的将query翻译成机器码的方法。…

2022年6月17日 0条评论 535点热度 0人点赞 sheep 阅读全文
未分类

leveldb-1 Overall

Overall 开始看leveldb的代码。leveldb整体代码量不多,所以读起来应该不会很困难。并且有比较完善的leveldb handbook。读得时候要多加考虑他的设计因素。 这次从doc中的index看一下整体的概念。文档在这里 #include <cassert> #include "leveldb/db.h" leveldb::DB* db; leveldb::Options options; options.create_if_missing = true; leveldb::Statu…

2022年6月16日 0条评论 532点热度 1人点赞 sheep 阅读全文
未分类

brpc-15 bthread_id

bthread_id 这里的bthread id不是标识bthread的identifier,而是用于同步的一种数据结构 我们之前在channel中看到过他,用来做同步的brpc brpc中也有相关的文档 这么看他的名字叫rpc id更合适一些 这里粘一下文档的东西 bthread_id包括两部分,一个是用户可见的64位id,另一个是对应的不可见的bthread::Id结构体。用户接口都是操作id的。从id映射到结构体的方式和brpc中的其他结构类似:32位是内存池的位移,32位是version。前者O(1)时间定…

2022年6月15日 1条评论 700点热度 2人点赞 sheep 阅读全文
daily

Daily C/C++ piecewise_construct

piecewise_construct 之前就被piecewise construct折磨住过。后来重新看一下发现其实在cppreference中写的很明白了 piecewise constuct实际上就是一个empty class tag,他的作用就是为函数添加一个可重载的参数,从而避免歧义 The overloads that do not use std::piecewise_construct_t assume that each tuple argument becomes the element of …

2022年6月14日 0条评论 536点热度 0人点赞 sheep 阅读全文
未分类

brpc-14 Channel

Channel 这一次看看channel 之前我就画过这个图。channel的作用就是从client向server发送请求。核心方法就是CallMethod。 然后请求到server的时候会被event dispatcher拿出来,然后调用Process,即切割数据并处理。 因为brpc是基于protobuf这个框架的,所以他的channel base是继承自protobuf的RpcChannel Weight表示的是权重。不同类型的channel有不用的权重 而protobuf的RpcChannel的定义则更为简…

2022年6月14日 0条评论 515点热度 0人点赞 sheep 阅读全文
未分类

brpc-13 Socket

Socket bthread相关的基本上结束了。这次重新看一下socket 在官方文档中有说,Socket的作用是让我们可以在多线程环境下使用fd。我个人的理解就是要多线程使用需要两点,引用计数+锁。SocketID的作用类似弱引用指针,我们可以通过SocketID来获取对应socket的unique ptr。并且SocketID可以作为epoll的data,而weak ptr不可以。并且shared ptr和weak ptr不能阻止后续的引用。如果一个server要退出时,不断的有请求到来,那么引用计数可能迟迟不…

2022年6月13日 0条评论 479点热度 0人点赞 sheep 阅读全文
未分类

brpc-12 ExecutionQueue

ExecutionQueue execution queue在brpc中已经有相关的文档。就在execution_queue.md中 可以看到这个execution queue最开始是实现多线程向同一个fd写数据。之前我们已经看到过他相关的机制了。就是通过原子交换来获得所有权。 execution queue的任务在另一个单独的线程中执行。并保证执行顺序和提交顺序一致。同时支持多线程并发提交任务。(这里的提交就是插入) 这个execution queue是泛型的,可以创建多个不同类型的execution queue…

2022年6月13日 0条评论 538点热度 0人点赞 sheep 阅读全文
database

Access Path Selection in Main-Memory Optimized Data Systems: Should I Scan or Should I Probe?

Access Path Selection in Main-Memory Optimized Data Systems: Should I Scan or Should I Probe? Abstract 列式数据分析引擎的发展引起了一系列对scan operator的优化。比如column-group storage, vectorized execution, shared scans, working directly over compressed data, using SIMD and multi-co…

2022年6月10日 0条评论 572点热度 0人点赞 sheep 阅读全文
未分类

brpc-11 bthread remain

bthread remain 这一节把bthread相关的收收尾。把之前留下的坑填一下。 最主要的就是interrupt了 用来打断在butex上的睡眠 注释有说到如果当前bthread没有被阻塞的话,这次interrupt就会被记住,然后在下一次阻塞的时候进行检查。 这里先调用interrupt and consume waiters 通过原子操作把current waiter拿出来。这样我们就可以获得butex上对应的结点。 然后用erase from butex because of interruption…

2022年6月9日 0条评论 457点热度 0人点赞 sheep 阅读全文
未分类

brpc-10 TimerThread

TimerThread 这次我们看看timer thread 之前已经大概知道他是干什么的了。在注释中也比较清楚 即在指定时间运行指定任务。注意运行任务的是独立的一个线程,添加任务和删除任务还是由调用者进行,而不是通过一些事件去分发。 先看看成员变量 这个stop原子量很常见了,用来停掉无限循环的代码的 option指的是timer thread的一些配置 timer thread是通过哈希来定位具体的任务的。所以我们有若干个bucket mutex则用来保护nearest run time _thread则是用来…

2022年6月9日 0条评论 445点热度 0人点赞 sheep 阅读全文
1…1112131415…30
分类
  • Agent/RAG
  • ARTS
  • C++
  • CSAPP
  • daily
  • database
  • leetcode
  • linux
  • ml
  • nlp
  • paper
  • RL
  • rocksdb
  • rust
  • ScummVM
  • tech
  • 其他
  • 周报
  • 未分类
  • 笔记
  • 算法
  • 计算机图形学
归档
  • 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