编程技术分享

  • 首页
MySQL
MySQL

大数据平台之binlog采集方案

1、背景 大数据平台的采集功能是从外部数据源采集数据存储到hive,采集方式分为全量采集、增量采集,增量采集适用于数据规模较大情况,有很多使用场景,但是在增量采集时,平台只能感知数据新增、更新,无法感知到数据删除,为了解决这个问题,本文选用了常用的外部数据源mysql为例进行binlog采集方案介绍。 2、方案 针对mysql数据源,可以通过拉取binlog来回放每条SQL语句,这样不管是新增、更新、删除都能进行处理,但是前提条件是需要mysql服务开启binlog,并且模式为row,因为row模式会存储每条记录的…

2023年3月10日 18条评论 2682点热度 2人点赞 jemuel 阅读全文
MySQL

MySQL源码分析系列5——ibd解析

1、背景 本文主要介绍MySQL中ibd文件的存储结构,并配套开发了解析ibd文件的代码:https://github.com/jemuelmiao/parseibd,该代码输出结果可以一目了然的看到ibd文件中当前的存储结构、btree中page的连接关系、聚簇索引或二级索引的组织格式等。 2、表空间 MySQL中最顶层的逻辑管理结构是表空间,根据用途表空间分为如下几类: 系统表空间:存放数据字典(data dict)、双写缓存(double write buffer)、变更缓存(change buffer)、回…

2022年11月7日 0条评论 23103点热度 1人点赞 jemuel 阅读全文
MySQL

MySQL源码分析系列4——MDL子系统

1、MDL MDL是metadata lock的简写,即元数据锁,该锁是在Server层实现的,用于保证并发操作时元数据的一致性,如DDL和DML并发时,保护表结构数据。接下来本文会从源码角度分析MDL的实现。 2、数据结构 要分析MDL源码,需要了解其中几个重要的数据结构:MDL_request、MDL_lock、MDL_ticket、MDL_key、MDL_context、MDL_map。 2.1 MDL_request MDL_request表示MDL锁请求,该对象在MDL子系统外部创建,生命周期由外部控制。…

2022年8月10日 19条评论 5123点热度 0人点赞 jemuel 阅读全文
MySQL

MySQL源码分析系列3——登录协议解析

1、发送接收数据包流程 在介绍登录流程之前,让我们先看看mysql发送、接收数据包流程,mysql数据包有固定的协议格式,即每个数据包都包含一个4字节包头,其中前三个字节指定数据包大小,最后一个字节指定数据包序列号,序列号用于保证数据包的顺序,如下图所示: 1.1  发送数据包 //文件net_serv.cc //发送逻辑数据包,将逻辑数据包按照大小0xffffff(16M)分割为一个或多个物理数据包,物理数据包增加数据头部,头部包括包长度、包序号。 my_bool my_net_write(NET *net, c…

2021年12月25日 19条评论 2099点热度 0人点赞 jemuel 阅读全文
MySQL

MySQL源码分析系列2——启动流程

以下介绍服务启动调用流程及注释 //文件main.cc int main(int argc, char **argv) { return mysqld_main(argc, argv); } //文件mysqld.cc int mysqld_main(int argc, char **argv) { ... //初始化 my_init() //启动服务 mysql_service(NULL); ... } //文件mysqld.cc int mysql_service(void *p) { ... win_main…

2021年12月25日 0条评论 26815点热度 0人点赞 jemuel 阅读全文
MySQL

MySQL源码分析系列1——编译环境搭建

1、安装依赖环境 本文介绍的是Windows平台编译环境搭建,安装过程中路径尽量不要有空格,避免踩坑。 Visual Studio,版本:2019 MySQL源码,版本:5.7.35 cmake,版本:3.22.0,下载地址:http://www.cmake.org/cmake/resources/software.html bison,版本:2.4.1,下载地址:http://downloads.sourceforge.net/gnuwin32/bison-2.4.1-bin.zip bison-deps,版本:…

2021年12月25日 18条评论 2721点热度 0人点赞 jemuel 阅读全文
文章分类
  • Go / 6篇
  • GraphQL / 1篇
  • Java / 2篇
  • K8S / 3篇
  • MongoDB / 1篇
  • MySQL / 6篇
  • 分布式 / 2篇
  • 大数据 / 1篇
最新 热点 随机
最新 热点 随机
Volcano源码分析系列—调度篇 K8S源码分析系列1—搭建K8S调试集群 K8S Controller开发 6.5840 Lab 1: MapReduce MongoDB源码分析系列1——编译环境搭建 GraphQL介绍及使用
Java热更新 K8S源码分析系列1—搭建K8S调试集群 Volcano源码分析系列—调度篇 分布式共识算法paxos Java Profile MySQL源码分析系列2——启动流程

COPYRIGHT © 2021 www.miaozhouguang.com. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

粤ICP备2022006024号

粤公网安备 44030602006568号