摘要:Apache Doris的BE部分是由C++编写,当出现一些内存越界,非法访问的问题时会导致BE进程的Crash。这部分的问题常常较难排查,同时也很难快速定位到对应的触发SQL,给使用者带来较大的困扰。所以下面会介绍通过Linux的CoreDump快速定位到问题SQL,并复现问题的方式。 1.查看日 阅读全文
posted @ 2021-07-15 14:15 HappenLee 阅读(117) 评论(0) 推荐(0) 编辑
摘要:最近一直在进行Doris的向量化计算引擎的开发工作,在进行CPU热点排查时,发现了存储层上出现的CPU热点问题。于是尝试通过SIMD的指令优化了这部分的CPU热点代码,取得了较好的性能优化效果。借用本篇手记记录下问题的发现,解决过程一些对于C/C++程序性能问题的一些解决思路,希望各位也能有所收获。 阅读全文
posted @ 2021-07-09 12:27 HappenLee 阅读(107) 评论(0) 推荐(1) 编辑
摘要:分析完成了聚合以及向量化过滤,向量化的函数计算之后。本篇,笔者将分析数据库的一个重要算子:排序。让我们从源码的角度来剖析ClickHouse作为列式存储系统是如何实现排序的。 本系列文章的源码分析基于ClickHouse v19.16.2.2的版本。 1.执行计划 老规矩,咱们还是先从一个简单的查询 阅读全文
posted @ 2021-07-01 19:07 HappenLee 阅读(160) 评论(0) 推荐(0) 编辑
摘要:乍一看这个标题很玄乎,但是其实这只是涉及一个很简单的CPP的模板推导的知识点。 笔者近期进行CPP开发工作时,在编译时遇到了如下的模板类型的推断错误:note: candidate template ignored: deduced conflicting types for parameter T 阅读全文
posted @ 2021-04-30 12:25 HappenLee 阅读(235) 评论(0) 推荐(0) 编辑
摘要:笔者在源码笔记1之中分析过ClickHouse的聚合函数的实现,但是对于各个接口函数的实际如何共同工作的源码,回头看并没有那么明晰,**主要原因是没有结合Aggregator的类来一起分析聚合函数的是如果工作起来的。**所以决定重新再完成一篇聚合函数的源码梳理的文章,帮助大家进一步的理解ClickH 阅读全文
posted @ 2021-04-20 15:50 HappenLee 阅读(364) 评论(0) 推荐(0) 编辑
摘要:书接上文,本篇继续分享ClickHouse源码中一个重要的流,FilterBlockInputStream的实现,重点在于分析Clickhouse是如何在执行引擎实现向量化的Filter操作符,而利用这个Filter操作符的,就可以实现where, having的数据过滤。 话不多说,准备发车~~ 阅读全文
posted @ 2021-03-01 12:39 HappenLee 阅读(457) 评论(2) 推荐(0) 编辑
摘要:分享一下笔者研读ClickHouse源码时分析函数调用的实现,重点在于分析Clickhouse查询层实现的接口,以及Clickhouse是如何利用这些接口更好的实现向量化的。本文的源码分析基于ClickHouse v19.16.2.2的版本。 1.举个栗子 下面是一个简单的SQL语句 SELECT 阅读全文
posted @ 2021-02-22 11:22 HappenLee 阅读(617) 评论(0) 推荐(0) 编辑
摘要:笔者作为Apache Doris的开发者,平时感觉相关Doris的文章写的很少。主要是很多时候不知道应该去记录一些怎么样的问题,感觉写的不好就会很慌张。新的一年,希望记录自己在Doris开发过程之中所遇到一些有意思的事情。(只希望能坚持下来,别打脸~~) 言归正传,回到本篇想聊的问一个问题,笔者在开 阅读全文
posted @ 2021-02-15 11:52 HappenLee 阅读(721) 评论(0) 推荐(0) 编辑
摘要:C++14在标准库里添加了一个很有意思的元函数: std::integer_sequence。并且通过它衍生出了一系列的帮助模板: std::make_integer_sequence, std::make_index_sequence, std:: index_sequence_for。在新的黑魔 阅读全文
posted @ 2021-01-01 13:39 HappenLee 阅读(1255) 评论(0) 推荐(1) 编辑
摘要:Name Mangling,直接翻译过来为名字改写 。它是深入理解 C++ 编译链接模型的必由之路。 笔者近期进行数据库开发工作时,涉及到MySQL客户端的编译链接的问题,通过重新厘清了之前理解一知半解的Name Manging,解决了让人抓狂的编译链接问题。 接下来,和大家聊聊C++的Name M 阅读全文
posted @ 2020-09-27 18:31 HappenLee 阅读(414) 评论(2) 推荐(0) 编辑