- 博客(68)
- 资源 (1)
- 收藏
- 关注
原创 SwissTable:一种高效和可扩展的哈希表数据结构
在软件开发领域,哈希表作为一种重要的数据结构,广泛应用于各种场景中,尤其是在后端开发中,高效的查找和插入操作是不可或缺的。近年来,SwissTable作为一种改进的哈希表实现,因其出色的性能和可扩展性而备受关注。本文将深入探讨SwissTable的工作原理、特点及其在实际应用中的优势。
2025-04-03 09:48:38
227
原创 PostgreSQL技术内幕27:autocommit功能实现原理解析
autocommit对于数据库操作来说非常重要,其可以很好的简化操作,保证可见性,而常见的实现方式包含客户端实现和服务端实现,PG采用的是psql客户端实现,相对比较简单,本文将对autocommit概念,优缺点,PG中使用方式,实现原理等内容进行详细介绍。
2025-03-28 09:05:31
1083
原创 异地多活架构演进详解
随着互联网公司的业务规模不断扩大,对于系统的并发能力,流量承载能力和故障恢复能力都有了更高的要求,而最为基本的就是系统的可用性,要做到这点就需要针对故障做容灾设计,其本质是提供冗余以避免单点故障造成系统不可用,本文将从容灾各个发展阶段:单机,主从,同城,两地三中心,异地双活,异地多活来进行详细的分析。
2025-03-21 09:13:10
1011
原创 PostgreSQL技术内幕26:PG聚合算子实现分析
聚合算子在聚合函数在数据分析、报告生成和统计计算中扮演着重要角色,通过对多行数据进行计算,将多个输入值压缩为单一输出值,如求和、平均值、计数等。本文将通过对PostgreSQL聚合算子的源码进行解析,深入了解其实现机制。
2025-03-14 09:09:54
698
原创 StarRocks高效聚合源码解析
聚合是数据分析中的一种常用的手段,其性能直接对于整个系统的分析来说有着非常重要的影响,本文将对starrocks中聚合实现做深入的分析,主要包括其实现策略以及采用的优化手段。
2025-03-07 12:28:29
1008
原创 常见容错机制以及实现原理:failover、failfast、failback、failsafe
在现代信息系统中,随着业务的不断扩展和对服务要求的提高,系统可用性变得越来越重要,为了系统能够在各种故障场景下继续运行,就需要提供对应的容错机制,本文将介绍常见的容错机制failover、failfast、failback、failsafe的概念和实现思路。
2025-02-28 09:05:03
1089
原创 分库分表详解(背景、概念及十二种方式)
随着互联网应用的不断发展,数据量和访问量都大幅的增加,传统的增加硬件资源的方式暴露出成本高,拓展能力受限的问题,分库分表可以将数据分散到多个节点,通过负载均衡和故障转移,提高并发处理能力和可用性,本文将介绍分库分表的概念及常见的拆分策略和方式。
2025-02-21 11:27:18
659
原创 PostgreSQL技术内幕25:时序数据库插件TimescaleDB
现今时序数据库的应用场景十分广泛,其通过保留时间序列的性质,记录下事务随时间变化的事实。本文将介绍时序数据库产生背景,概念等基础知识,以及对于PG中时序数据库插件TimescaleDB做原理和代码的剖析。
2025-02-14 09:12:32
1071
原创 存储可靠性:从基于磁盘的RAID到分布式纠删码(EC),多副本
在选择数据存储方案时,一个绕不开的话题就是数据存储的可靠性(面对故障时的应对能力),本文对磁盘的RAID技术和现在分布式存储常用的纠删码(EC)和多副本的原理和优缺点进行详细的介绍。
2025-02-07 13:20:28
1026
原创 PostgreSQL技术内幕24:定时任务调度插件pg_cron
pg_cron是PostgreSQL中的一个简单的基于cron的任务调度插件,本文将从其基础知识(Linux中Cron的语法)、pg_cron安装使用方式以及实现原理来对其进行详细的分析。
2025-01-30 22:05:03
1600
原创 PostgreSQL技术内幕23:PG统计信息的收集和应用
数据库统计信息是数据库管理系统(DBMS)中用于优化查询性能和提高数据库效率的重要元数据,其中包含很多关键信息,能够为优化器生成合理的查询计划提供数据支撑,本文将对PG统计信息收集方式,关键的统计信息以及其优化器使用原理方面进行介绍。
2025-01-24 10:00:29
761
原创 高性能定时器实现方式
在实际开发中,经常会有定时去执行一个任务或者到某一时间去执行某一特定任务的需求(如心跳检测,状态检查等),此时就需要定时器去进行唤醒和调度,本文将从设计和实现的角度介绍多种定时器原理,并对其复杂度进行分析。
2025-01-17 09:16:11
633
原创 PostgreSQL技术内幕22:vacuum full 和 vacuum
在之前介绍MVCC文章中介绍过常见的MVCC实现的两种方式,一种是将旧数据放到回滚段,一种是直接生成一条新数据(对于删除是不删除),PG采用的是第二种,虽然实现上较为清晰简单,但面临着数据膨胀的问题。本文将介绍其清理命令vacuum,主要包含概念和使用方式,以及实现原理。
2025-01-10 11:25:24
856
原创 概念说明:星型模型和雪花模型及对应优缺点
在数据仓库的建设中,一般会围绕着星型模型和雪花模型来设计表的关系和结构,其分类的依据是事实表和维度表关系,本文将介绍事实表、维度表的概念,以及星型模型和雪花模型这两种模型的详细说明以及其区别和优缺点。
2025-01-03 10:52:01
335
原创 服务器编程框架:I/O模型和两种高效并发模型
本文从一个整体视角来对服务器编程框架来介绍,将其分为三个部分:I/O模型,逻辑处理,持久化存储单元。介绍其三者的关系,同时详细去介绍I/O模型部分及其衍生出的两种并发模型:Reactor和Proactor
2024-12-27 09:02:26
736
原创 PostgreSQL技术内幕21:SysLogger日志收集器的工作原理
在前面文章中介绍了事务模块用到的事务日志结构和其工作原理,本文将介绍日志的另一个部分,操作日志,主要去描述SysLogger日志的工作原理,流程以及其中关键的实现:日志轮转,刷盘性能问题等,同时基于这个实现考虑统一日志的设计方法(可以借鉴的思想)。
2024-12-20 11:32:46
814
原创 详解多租户架构下的资源隔离模式
随着Saas(软件即服务)的兴起,对于不同使用方资源如何隔离就是一个必须面对的问题,由此多租户概念开始被人所熟知,本文将从多租户的概念和三种实现方式来对其进行详细描述。
2024-12-13 14:34:17
1111
原创 PostgreSQL技术内幕20:PG实现分布式数据库的插件-Citus
本文主要介绍PG的分布式插件Citus,主要介绍其实现方式(如何将单机转换为分布式的):主要包含数据存储(分片方式,表类型)处理,分布式计划,分布式事务以及集群管理内容。
2024-12-06 10:20:22
913
原创 七种内聚和耦合概念和解耦说明
高内聚,低耦合在软件设计中是经常听到的概念,本文将从其概念和七种内聚和七种耦合类型及其强弱关系以及实际解耦例子来实际分析,以达到对高内聚,低耦合设计思想的充分理解。
2024-11-29 10:55:10
790
原创 PostgreSQL技术内幕19:逻辑备份工具pg_dump、pg_dumpall
上一篇文章介绍了逻辑备份和物理备份概念,主要介绍了PG的物理备份工具,本文主要介绍PG逻辑备份工具g_dump和pg_dumpall,包括其使用方法和对应的流程以及代码分析。
2024-11-22 16:00:18
903
1
原创 PostgreSQL技术内幕18:物理备份工具pg_basebackup
PG自带备份工具有多种,pg_basebackup、pg_dump、pg_dumpall,其中pg_basebackup是文件系统级别的备份,其余两种是逻辑备份。本文主要介绍PG备份工具产生的背景和概念,以及对pg_basebackup使用方法和其实现原理进行详细说明,剩余两种工具在后续文章进行详细分析。
2024-11-15 09:03:08
936
原创 快速掌握序列化工具:Protobuf && Boost.Serialization
数据在内存中结构格式和传输或存储格式的转换被称为序列化,其广泛应用于通讯协议和框架中,本文将对序列化/反序列化的概念及常用的两种方式进行介绍,为后续介绍相关框架做基础知识说明。
2024-11-09 21:53:52
572
原创 PostgreSQL技术内幕17:PG分区表
本文主要介绍PG中分区表的概念,产生分区表技术的原因,使用方式和其内部实现原理,旨在能对PG分区表技术有一个系统的说明。
2024-11-01 10:00:20
1506
原创 PostgreSQL技术内幕16:一次完整查询流程串联调试
本文主要介绍PG调试方法和PG服务端收到一条SQL后的完整执行流程,对前面各个模块做一个在代码层面的串联(从架构层面协作关系在前面文章已有介绍),后续对PG再继续分析相关功能,有此文章可以更好对应代码中的位置。
2024-10-24 08:49:17
939
原创 PostgreSQL技术内幕15:物化视图
本节主要介绍PG的物化视图,从物化视图产生背景到使用方式,实现思路以及源码分析多个方面来对物化视图进行详细的分析。
2024-10-19 15:16:17
708
2
原创 PostgreSQL技术内幕14:从插件来看PG扩展性-FDW插件
PG具有很好的扩展性,通过代码内部使用的函数指针,不同层级之间的标准接口,通过SQL语句创建的不同配置等实现其不改动核心代码而直接的扩展,本文是PG插件部分的第一篇,主要介绍FDW插件,从FDW插件的角度来分析PG的通过插件实现功能扩展。
2024-10-13 11:20:14
1314
原创 Linux在命令行直接使用密码来远程执行命令和远程复制 + 新安装的库找不到问题解决方式
本文主要介绍如何使用非交互式的方式,直接设置密码来远程执行命令和远程复制。另外介绍下往/usr/lib或者/lib下拷贝了新库但找不到的解决方式。
2024-10-13 11:05:43
434
原创 PostgreSQL技术内幕13:PostgreSQL通讯协议
之前文章对于PG的内部模块做了一些介绍,接下来对PG和外部交互的部分进行介绍,本文主要介绍通讯协议的概念和PG中的消息格式和交互流程。
2024-10-04 17:12:12
1641
原创 从单节点到多节点-计算性能优化的思考
本文用于介绍近期关于性能优化的一些思考,主要在于如何高效进行多节点并行计算的优化,以及单节点如何利用现代的CPU特点和缓存特点高效的去执行计算。
2024-10-04 17:06:09
1052
原创 PostgreSQL技术内幕12:PostgreSQL事务原理解析-锁管理
本文介绍PG中的锁技术,主要包括PG中两阶段锁的介绍和PG中各种不同级别的锁,死锁问题介绍,以及如何去查看锁。
2024-09-25 09:20:01
1373
原创 PostgreSQL技术内幕11:PostgreSQL事务原理解析-MVCC
本文主要介绍在事务模块中MVCC(多版本并发控制)常见的实现方式,优缺点以及PG事务模块中MVCC(多版本并发控制)的实现。
2024-09-18 17:13:01
1184
原创 PostgreSQL技术内幕10:PostgreSQL事务原理解析-日志模块介绍
本文将延续上一篇文章内容,上一篇介绍了PG事务涉及到的模块,本文介绍日志模块,主要介绍PG包含的日志分类,和WAL日志、CLOG的详细介绍。
2024-09-18 17:07:56
1527
原创 PostgreSQL技术内幕7:PostgreSQL查询编译
一次完整的SQL执行包含两大部分,一个是查询编译涉及到的内容较多,整体分为查询分析,查询重写和查询优化。结束后交给执行器其进行编译的执行,本节将整体介绍一次查询的流程以及详细分析PG查询编译的三个步骤。
2024-09-08 21:51:21
1299
原创 PostgreSQL技术内幕9:PostgreSQL事务原理解析
本文将介绍PG事务模块,主要介绍PG支持的事务类型(普通事务,子事务,多事务,2pc事务),事务模块涉及的的子模块整体介绍(日志模块,MVCC管理,事务锁管理)和事务模块代码脉络解读。日志模块、MVCC管理和事务锁管理详细内容将在后续文章中介绍。
2024-09-08 21:34:17
1532
原创 PostgreSQL技术内幕8:PostgreSQL查询执行器
执行器是查询编译和存储引擎之间的连接模块,其负责将优化器输出的执行计划,进行初始化、执行,访问存储引擎并获得最终结果返回,本章主要介绍PG的执行器模型和其执行流程。
2024-09-03 20:03:51
1148
原创 PostgreSQL技术内幕7:PostgreSQL查询编译
一次完整的SQL执行包含两大部分,一个是查询编译涉及到的内容较多,整体分为查询分析,查询重写和查询优化。结束后交给执行器其进行编译的执行,本节将整体介绍一次查询的流程以及详细分析PG查询编译的三个步骤。
2024-09-02 19:42:28
1721
原创 PostgreSQL技术内幕6:PostgreSQL索引技术
本文主要介绍PG的索引技术,包含PG支持的索引类型,语法,查看方式,以及其中B-Tree索引的原理解析和源码解读。
2024-09-01 22:10:23
2899
原创 PostgreSQL技术内幕5:PostgreSQL存储引擎从磁盘到内存的读取
本篇内容介绍PG从磁盘到内存的加载流程,经过那些层级,各层级作用以及源码分析,主要包括共享缓存(Buffer),存储管理器,磁盘管理器,虚拟文件管理器以及部分物理文件介绍。
2024-09-01 22:01:16
2110
原创 PostgreSQL技术内幕4:PostgreSQL存储引擎内存管理
了解完PG的物理存储,本篇介绍PG的内存管理,主要包含内存管理方式,分配流程,各部分层级关系,以及如何通过函数指针的方式动态的进行分配方式选择,主要分析进程本地的内存管理,同时在最后第三节介绍多进程共享内存管理。本篇介绍完内存管理后,下一篇介绍物理存储到内存的转换过程。
2024-08-29 22:00:42
1380
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人