自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

原创 【ClickHouse内核】资源管理

摘要: 本文主要讲述ClickHouse开源数据库资源管理相关知识点。主要内容如下:概述资源使用追踪机制资源隔离机制资源使用配额(Quota)机制结论

2021-01-20 18:59:17 1780

原创 【ClickHouse内核】对于分区、索引、标记和压缩数据的协同工作

摘要: 本文主要讲述ClickHouse开源数据库对于分区、索引、标记和压缩数据的协同工作相关知识点。主要内容如下:概述写入过程查询过程数据标记与压缩数据块的对应关系结论

2021-01-20 18:58:54 1391 3

原创 【ClickHouse内核】MergeTree物理存储之mrk文件解析

摘要: 本文主要讲述ClickHouse开源数据库物理存储之mrk文件解析相关知识点。主要内容如下:概述mrk文件生成规则数据标记的工作方式结论

2021-01-20 18:58:24 2432 2

原创 【ClickHouse内核】MergeTree物理存储之bin文件解析

摘要: 本文主要讲述ClickHouse开源数据库物理存储之bin文件解析相关基础知识点。主要内容如下:概述压缩数据块结论

2021-01-20 18:57:57 1548

原创 【ClickHouse内核】MergeTree索引相关基础知识点

摘要: 本文主要讲述ClickHouse开源数据库MergeTree索引相关基础知识点。主要内容如下:概述主键索引索引粒度索引数据的生成规则索引的工作机制

2021-01-19 16:28:59 950

原创 【ClickHouse内核】MergeTree分区目录合并详细过程

摘要:本文主要讲述ClickHouse开源数据库MergeTree分区目录合并详细过程相关知识点。主要内容如下:数据分区目录命名规则分区目录合并过程描述通过系统表查看分区状态修改无效分区目录删除时间

2021-01-19 16:28:34 5307

原创 【ClickHouse内核】MergeTree数据物理存储结构

摘要: 本文主要讲述ClickHouse开源数据库MergeTree数据物理存储结构相关知识点。主要内容如下:概述查看ClickHouse的数据目录测试环境描述数据物理存储信息结论

2021-01-19 16:28:05 559

原创 【ClickHouse内核】MergeTree表引擎语法结构

摘要: 本文主要讲述ClickHouse开源数据库MergeTree表引擎语法结构相关知识点。主要内容如下:概述MergeTree表引擎ReplacingMergeTree表引擎SummingMergeTree表引擎AggregatingMergeTree表引擎GraphiteMergeTree表引擎CollapsingMergeTree表引擎VersionedCollapsingMergeTree表引擎结论

2021-01-19 16:27:36 731

原创 【ClickHouse内核】Insert语句执行链路

摘要: 本文主要讲述ClickHouse开源数据库插入语句的执行流程。主要内容如下:测试的环境涉及到的核心类和功能语句的执行链路结论

2021-01-19 16:27:13 1704

原创 【ClickHouse内核】调试版本的ClickHouse的安装

摘要:本文主要讲述ClickHouse开源数据库调试版本安装流程。主要内容如下:目的环境描述安装步骤测试

2021-01-19 16:26:45 1050

原创 【ClickHouse内核】Select语句的执行链路

摘要: 本文主要讲述ClickHouse开源数据库查询语句的执行流程。主要内容如下:概述服务器实例启动逻辑语句的执行链路结论

2021-01-19 16:26:18 1603 1

原创 【ClickHouse内核】源码阅读策略

摘要:本文主要讲述如何阅读ClickHouse开源数据库代码的一些方式和技巧。主要内容如下:ClickHouse开源库简介搭建运行环境针对于ClickHouse库提出问题阅读开源代码的步骤结论

2021-01-19 16:25:15 938

原创 【操作系统】进程调度算法

摘要:本文主要讲述操作系统关于进程调度算法方面的一些知识点。主要内容如下:概述进程调度算法结论

2021-01-19 16:24:24 1288

原创 【操作系统】CPU上下文切换

摘要: 本文主要讲述CPU上下文切换方面的一些知识点。主要内容如下:概述进程上下文切换线程上下文切换中断上下文切换减少CPU上下文切换CPU上下文切换次数查看结论

2021-01-19 16:23:42 807

原创 【硬件设备】CPU 高速缓存知识

摘要:本文主要讲述CPU高速缓存方面的一些知识点。主要内容如下:概述CPU 的多级缓存提升L1数据缓存的命中率提升L1指令缓存的命中率提升多核 CPU 下的缓存命中率结论

2020-12-07 12:50:42 2640

原创 【线上问题定位】Llvm库ARM环境崩溃问题

摘要:记一次ARM服务器上面Llvm开源库崩溃,问题发现到解决的过程。主要内容如下:1. 问题现象2. 问题分解思维导图3. 工具说明4. 问题定位5. 源码

2020-11-24 10:51:12 881

原创 【操作系统】SMP vs NUMA vs MPP 架构简介

摘要:本文主要讲述SMP、NUMA、MPP架构设计方面的一些知识点。主要内容如下:概述SMP对称多处理模型NUMA非一致性处理模型MPP大规模并行处理模型结论

2020-11-23 12:04:19 3338 2

原创 【数据库内核】跨域数据平台通过数据库实现的设计

摘要:本文主要讲述通过数据库来实现跨域数据平台的功能。主要内容如下:概述目前行业的痛点和解决方案架构设计结论

2020-11-16 11:58:31 765 1

原创 【数据库内核】物理算子之Distinct算子实现

摘要:本文主要讲述数据库中distinct算子的设计。主要内容如下:概述Sort Distinct算法Hash Distinct算法Distinct 语义优化结论

2020-11-09 13:31:14 979

原创 【LeetCode】整数分类之整数反转

摘要:本文主要讲述LeetCode整数分类之整数反转解法。主要内容如下:题目示例解题

2020-11-02 23:39:57 144

原创 【数据库内核】物理算子之Aggregate聚合算子实现

摘要:本文主要讲述数据库中Aggregate聚合算子的设计。主要内容如下:概述Stream Aggregate算法Hash Aggregate算法聚合函数的计算模式结论

2020-11-02 12:31:17 2528

原创 【LeetCode】字符串分类之无重复字符的最长子串

摘要:本文主要讲述LeetCode字符串分类之无重复字符的最长子串解法。主要内容如下:题目示例解题

2020-10-29 12:15:09 113

原创 【LeetCode】链表分类之两数相加

摘要:本文主要讲述LeetCode链表分类之两数相加解法。主要内容如下:题目示例解题

2020-10-29 12:13:01 137

原创 【数据库内核】物理算子之Join算子实现

摘要:本文主要讲述数据库中表与表之间的关联Join算子的设计。主要内容如下:概述数据库为什么需要JoinNested Loop Join算法Merge Sort Join算法Hash Join算法三类算法对比情况说明结论

2020-10-26 12:51:08 1649

原创 【数据库内核】基于代价的优化器引擎之Join Order

摘要:本文主要讲述基于代价的优化器中Join Order模型的设计。主要内容如下:概述Tidb Join Order 算法简介贪心算法缺点PostgreSQL Join Order 算法简介算法对比情况结论

2020-10-26 12:50:50 1498

原创 【数据库内核】基于代价的优化器引擎之统计信息

摘要:本文主要讲述基于代价的优化器中统计信息直方图的作用和种类。主要内容如下:概述统计信息直方图结论

2020-10-26 12:50:28 781

原创 【数据库内核】基于代价的优化器引擎-代价估算

摘要:本文主要讲述基于代价的优化器中代价估算模型的设计。主要内容如下:概述查询代价估算单表扫描代价索引两表连接算法Mysql代价模型的实现方式结论

2020-10-26 12:50:05 2092

原创 【数据库内核】基于代价的优化器引擎

摘要:本文以GPORCA优化器引擎为例讲述基于代价优化器的工作机制。主要内容如下:概述ORCA架构体系基于代价的优化器引擎设计与实现基于代价优化器面临的挑战总结

2020-10-26 12:49:37 1052

原创 【数据库内核】事务MVCC简介

目录概述MySQL InnoDB下读操作分类一、快照读(snapshot read)二、当前读(current read)三、当前读,快照读和MVCC的关系Mysql MVCC实现原理一、InnoDB引擎的隐式字段二、undo日志版本链三、Read View四、可见性比较算法结论概述MVCC(Multi-Version Concurrency Control 多版本并发控制),是一种不利用锁机制实现的隔离级别,主要实现了在保证数据的一致性的前提下,实.

2020-10-26 12:48:32 721

原创 【LeetCode】数组分类之两数之和

摘要: 本文主要介绍LeetCode上面两数之和的解题思路。主要内容如下:题目示例暴力法两遍哈希表一遍哈希法

2020-09-10 12:07:42 135

原创 【数据库内核】事务核心基础简介

摘要: 本文主要介绍数据库事务的相关技术点。主要内容如下:概述事务ACID四大原则并发事务带来的问题隔离级别总结

2020-09-08 11:04:35 1043

原创 【存储】基于列存之Parquet格式

目录概述数据存储模式一、行式存储模式二、列式存储模式三、行式存储于列式存储的区别四、行列混合式存储模式Parquet的含义Parquet的数据模型Parquet的数据类型Parquet的存储格式Striping/Assembly算法一、Definition Level二、Repetition Level三、举例说明Striping和assembly的过程投影下推(Project PushDown)谓词下推(PredicatePushDown).

2020-09-08 11:04:26 1302

原创 【数据库内核】基于规则优化之子查询优化

目录概述准备资料子查询的分类从子查询出现在SQL语句的位置区分一、目标列位置二、FORM 子句位置三、WHERE 子句位置四、JOIN/ON 子句位置五、GroupBy子句位置六、OrderBy子句位置从对象间的关系区分一、相关子查询二、非相关子查询从特定谓词区分一、[NOT] IN/ALL/ANY/SOME子查询二、[NOT] EXISTS子查询三、其他的子查询从语句的构成复杂程度区分一、SPJ子查询二、GROUPBY子查询

2020-09-08 11:04:12 1567

原创 【线上问题定位】简单死锁问题定位

目录测试案例现象准备工具一、PS 概述二、gcore工具三、gdb工具定位步骤一、保留环境二、分析Core文件结论测试案例​// deadlock.cpp#include <stdio.h>#include <pthread.h>#include "iostream"pthread_mutex_t m1 ;pthread_mutex_t m2 ;void *thread_1(void*) { pthread_mutex_lo

2020-09-08 11:03:52 604

原创 【设计模式】简单工厂设计模式说明

目录定义使用场景实现方式优点缺点定义简单工厂模式(Simple Factory Pattern):专门定义一个类(工厂类)来负责创建其他类的实例。可以根据创建方法的参数来返回不同类的实例,被创建的实例通常都具有共同的父类。简单工厂模式又称为静态工厂方法(Static FactoryMethod)模式,它属于类创建型模式。创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰..

2020-09-08 11:03:42 249

原创 【数据库内核】基于规则优化之谓词下推

目录概念逻辑算子介绍为什么要谓词下推谓词下推在Join中的应用一、InnerJoin 下推情况说明二、LeftJoin下推情况说明三、RightJoin下推情况说明四、FullJoin下推情况说明谓词下推在Parquet中的应用聚合下推一、简单聚合函数下推二、Join场景下的聚合函数下推Join下推Order By Limit下推一、下推到存储层 Coprocessor二、TopN 下推过 Join 的情况(排序规则仅依赖于外表中的列)...

2020-09-08 11:03:31 3442

原创 【LLVM】Llvm 源码编译安装

目录概述搭建CMake环境搭建SVN环境搭建Llvm环境一、下载Llvm源码二、下载Clang项目三、下载 Compiler-RT四、下载测试部分代码(可选 并且比较大)五、离线下载相关包(可选)六、创建build文件夹编译llvm源码七、编译源码八、查看是否安装成功总结概述搭建Llvm源码编译环境,可以帮助我们后续学习Llvm源码和通过llvm库编译出的可执行文件来使用Llvm库。下面来带大家了解下Llvm源码环境的搭建方式。搭建..

2020-09-07 12:11:23 6416

原创 【LLVM】Llvm 源码目录功能简介

目录概述LLVM 源码工程目录介绍一、docs目录二、examples目录三、include目录四、lib目录五、projects目录六、test目录七、tools目录八、unittests目录九、utils目录结论参考资料概述下面我们了解一下Llvm源码工程目录介绍、Llvm相关lib库的介绍、Llvm生成的工具链介绍,方便我们后期学习Llvm。LLVM 源码工程目录介绍一、docs目录这个目录下存放Llv...

2020-09-07 12:11:10 1983

原创 【数据库内核】物理执行器引擎Pull模型之火山模型

目录概述算子介绍火山模型火山模型痛点一、虚函数的开销二、Cpu Cache的利用率结论参考资料概述当我们的逻辑计划引擎把SQL生成了逻辑计划后,后端的物理计算引擎接收到逻辑计划生成物理执行计划,便可以开始去真正执行计算作业了。在关系数据库发展的早期,受制于计算机IO能力的约束,数据库通常的物理执行引擎采用的是火山模型的设计方式。因为火山模型每次只处理一行数据,大大的节约了内存的使用量。数据库物理计算引擎通常分为二类,一类是以火山模型(Volcano Mode.

2020-09-07 12:10:53 6094

原创 【存储】LSM-Tree架构

目录概念磁盘IO与预读顺序写VS随机写传统数据库加快数据访问的解决方案B树(B-树)相关简介B+树相关简介LSM-Tree是什么?一、体系结构二、存储模型WAL(write ahead log)MemTableImmutable MemtableSSTable三、LSM-Tree写入流程四、LSM-Tree读取流程LSM TREE与B树的优缺点结论参考资料概念十多年前,谷歌发布了大名鼎鼎的"三驾马车"的论文,分别是GFS(.

2020-09-07 12:10:41 1899

JNI-API完全手册

它使得在Java虚拟机内部运行的Java代码能够与用其它编程语言如CC 和汇编语言编写的应用程序和库进行互操作。JNI最重要的好处是它没有对底层Java虚拟机的实现施加任何限制。

2017-01-12

JNI-API文档

2017-01-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除