摘要:
分享一下笔者研读ClickHouse源码时分析函数调用的实现,重点在于分析Clickhouse查询层实现的接口,以及Clickhouse是如何利用这些接口更好的实现向量化的。本文的源码分析基于ClickHouse v19.16.2.2的版本。 1.举个栗子 下面是一个简单的SQL语句 SELECT 阅读全文
摘要:
笔者作为Apache Doris的开发者,平时感觉相关Doris的文章写的很少。主要是很多时候不知道应该去记录一些怎么样的问题,感觉写的不好就会很慌张。新的一年,希望记录自己在Doris开发过程之中所遇到一些有意思的事情。(只希望能坚持下来,别打脸~~) 言归正传,回到本篇想聊的问一个问题,笔者在开 阅读全文
摘要:
C++14在标准库里添加了一个很有意思的元函数: std::integer_sequence。并且通过它衍生出了一系列的帮助模板: std::make_integer_sequence, std::make_index_sequence, std:: index_sequence_for。在新的黑魔 阅读全文
摘要:
Name Mangling,直接翻译过来为名字改写 。它是深入理解 C++ 编译链接模型的必由之路。 笔者近期进行数据库开发工作时,涉及到MySQL客户端的编译链接的问题,通过重新厘清了之前理解一知半解的Name Manging,解决了让人抓狂的编译链接问题。 接下来,和大家聊聊C++的Name M 阅读全文
摘要:
上篇笔记讲到了聚合函数的实现并且带大家看了聚合函数是如何注册到ClickHouse之中的并被调用使用的。这篇笔记,笔者会续上上篇的内容,将剖析一把ClickHouse聚合流程的整体实现。 第二篇文章,我们来一起看看聚合流程的实现~~ 上车! 1.基础知识的梳理 ClickHouse的实现接口 Blo 阅读全文
摘要:
CRTP,奇特的递归模板模式 (Curiously Recurring Template Pattern) 是 C++ 的一种看起来很怪异的模板编程技巧。 它通过继承和模板的联合应用,实现了一种"看似"继承自己的语法。这种编程的技法,无论是在STL还是Boost之中都被大量使用。像它的名字一样,看起 阅读全文
摘要:
由于工作的需求,后续笔者工作需要和开源的OLAP数据库ClickHouse打交道。ClickHouse是Yandex在2016年6月15日开源了一个分析型数据库,以强悍的单机处理能力被称道。 笔者在实际测试ClickHouse和阅读ClickHouse的源码过程之中,对"战斗民族"开发的数据库十分欣 阅读全文
摘要:
最近将手头上负责的项目代码从GCC 4.8.2升级到了GCC 8.2。(终于可以使用C++17了,想想后续的开发也是很美好啊~~)不过这个过程之中也遇到了一些 稀奇古怪 的问题,在这里做一个简单的记录,希望后续有同学遇到类似的问题能作为参考。 1. error: unable to find str 阅读全文
摘要:
笔者入职百度时,二面面试官的让我聊聊C++之中的 volatile关键词 。volatile在Java和C++之中的差别可谓是 天差地别 ,我只是简单聊了聊Java之中的 volatile ,面试官对我的回答并不满意。后续学习 "《C++ Prmier》" 时,对 volatile 的理解也是云里雾 阅读全文
摘要:
又开了一个新的坑,笔者工作之后维护着一个 NoSQL 数据库 。而笔者维护的数据库正是基于 社区版本的 Aerospike 打造而来。所以这个踩坑系列的文章属于工作总结型的内容,会将使用开发 Aerospike 的各种问题进行总结梳理,希望能够给予大家启发和帮助。第一篇开山之文,就先从Aerospi 阅读全文