摘要: 在boltdb中,最核心的数据结构当属B+树了。B+树是数据库或文件系统中常见的数据结构,它的特点是能够保证数据稳定有序,因为每个叶子节点的深度都相同,因此其插入和修改操作拥有较稳定的时间复杂度。 那么boltdb中B+树的节点是如何表示的呢?答案是node。node对应page在内存中的数据结构, 阅读全文
posted @ 2021-03-21 19:04 后端技术小屋 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 流水线技术 现代CPU为了提高执行指令执行的吞吐量,使用了流水线技术,它将每条指令分解为多步,让不同指令的各步操作重叠,从而实现若干条指令并行处理。在流水线中,一条指令的生命周期可能包括: 取指:将指令从存储器中读取出来,放入指令缓冲区中。 译码:对取出 阅读全文
posted @ 2021-03-16 10:36 后端技术小屋 阅读(3254) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 看了boltdb也有一阵子了,看完之后总想写点什么,因为感觉到这可能是个不小的坑,所以迟迟没有动笔(没错我的拖延症又犯了..)。最近有一种流行的说法:如果一个东西不能把它讲清楚,便不能说你学会了它。因为看起来会和真的会之间有一个巨大的鸿沟,想跨越这个鸿沟 阅读全文
posted @ 2021-03-07 22:26 后端技术小屋 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 一文读懂clickhouse集群监控 常言道,兵马未至,粮草先行,在clickhouse上生产环境之前,我们就得制定好相关的监控方案,包括metric采集、报警策略、图形化报表。有了全面有效的监控,我们就仿佛拥有了千里眼顺风耳,对于线上任何风吹草动都能及 阅读全文
posted @ 2021-02-28 21:46 后端技术小屋 阅读(1878) 评论(0) 推荐(0) 编辑
摘要: Vim是从vi发展出来的一个文本编辑器,是Linux后端开发人员必会工具之一,被广大码农戏称为编辑器之神(神之编辑器是Emacs,笔者没用过,看起来段位比Vim更高)。本文简单介绍Vim中不同的模式以及每个模式下的高频命令,希望能够引领初学者快速入门。 阅读全文
posted @ 2021-02-27 11:54 后端技术小屋 阅读(475) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 本文将介绍一下c++代码模板的小技巧 CRTP 虚函数 在介绍 CRTP 之前,我们先来了解下虚函数。 虚函数是通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数,从而实现了多态的特性。 一段简单的代码示例 class A { public: 阅读全文
posted @ 2021-02-26 08:51 后端技术小屋 阅读(836) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 《Linux Shell脚本攻略》是一本适合初学者系统学习Bash Shell的书籍,墙裂推荐。以下是我阅读这本书的笔记,希望对读者有用。 输出颜色字符 echo -e "\e[1:41m" # 1表示背景色 echo打印!需转义 echo "hello 阅读全文
posted @ 2021-02-26 08:49 后端技术小屋 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 C/C++关键字之restrict 在C语言中,restrict关键字用于修饰指针(C99标准)。通过加上restrict关键字,编程者可提示编译器:在该指针的生命周期内,其指向的对象不会被别的指针所引用。 需要注意的是,在C++中,并无明确统一的标准支 阅读全文
posted @ 2021-02-26 08:43 后端技术小屋 阅读(2068) 评论(0) 推荐(1) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 最近偶然看到一些有意思的shell命令,分享给大家。 fork炸弹 代码如下 :(){ :|:& };: 还是看不懂,将:替换成fork fork(){ fork | fork &} 这时候应该可以看出来了,这个炸弹的代码分为两个部分 第一部分:定义函数 阅读全文
posted @ 2021-02-26 08:36 后端技术小屋 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 现代C++之右值语义 在现代C的众多特性中,右值语义(stdmove和stdforward)大概是最神奇也最难懂的特性之一了。本文简要介绍了现代C中右值语义特性的原理和使用。 1 什么是左值,什么是右值? int a = 0; // a是左值,0是右值 阅读全文
posted @ 2021-02-26 08:34 后端技术小屋 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 工欲善其器,必先利其器。性能与效率是程序员们永恒的追求,对代码如此,对日常搬砖也应如此。对于日常搬砖过程中的热点操作,本文推荐几个好用的在线工具,只愿各位同仁少加班,早下班,Work Life Balance, 两开花! 1 Linux命令搜索 传送门 阅读全文
posted @ 2021-02-26 08:33 后端技术小屋 阅读(3307) 评论(0) 推荐(15) 编辑
摘要: 〇、环境 zk client: github.com/samuel/go-zookeeper 一、zk client状态 zookeeper是一款流行的分布式协调组件,被广泛用于leader选举、分布式锁、服务发现、名称服务、配置中心等场景。 1. 状态含义 zk client与zk server在 阅读全文
posted @ 2021-02-26 08:30 后端技术小屋 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 〇、背景 注:为简化表述,本文中将clickhouse简称为ck, 将zookeeper简称为zk。 我司从去年年底开始启动从香港到新加坡机房的迁移。目前Clickhouse集群所有实例都已经搬迁从香港搬迁到了新加坡机房,还剩下其依赖的Zookeeper 阅读全文
posted @ 2021-03-29 20:51 后端技术小屋 阅读(1878) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 GDB全称GDB Debugger。GDB具备各种调试功能,使用GDB的调试人员可以查看及修改程序的内部变量值。它是Linux C++开发者赖以生存的神器。本篇文章将简要介绍GDB常用功能,希望对于初学者能起到快速入门的作用。 1. 绑定进程 gdb . 阅读全文
posted @ 2021-03-09 19:40 后端技术小屋 阅读(1399) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 alias的使用 在日常开发中,为了提高运维效率,我们会用alias(命令别名)来定义命令的简称。比如在~/.bash_profile中添加: alias ll='ls -lrt --color' alias bdebug="go build -gcfl 阅读全文
posted @ 2021-03-08 23:06 后端技术小屋 阅读(3958) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 原文:https://altinity.com/blog/integrating-clickhouse-with-ldap-part-one 作者:Vitaliy Zakaznikov ClickHouse上一般使用XML文件来定义配置,其中包括用户配置 阅读全文
posted @ 2021-03-08 19:40 后端技术小屋 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 最近在一个技术分享上听说了一个有意思的gdb插件:peta(https://github.com/longld/peda),使用它可方便地对C/C++代码进行逆向工程 peda的输出分为三个框,一个显示寄存器状态,一个显示当前汇编指令,一个显示stack 阅读全文
posted @ 2021-03-07 13:12 后端技术小屋 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 更多精彩内容,请关注微信公众号:后端技术小屋 如果把大脑比作一个CPU, 我们日常的工作、生活、学习类似CPU处理前台任务,而暗时间就像CPU处理后台任务,虽然看不见也没有产生直接成果,但是如果一个人能充分利用这些时间进行思考、消化平时所读所看,便能使得认识更系统、全面、深入,也能无形之中拥有更多的 阅读全文
posted @ 2021-02-27 15:04 后端技术小屋 阅读(215) 评论(0) 推荐(0) 编辑