摘要:
概述 接着上面--导读,本篇讲解Transport传输层实现。 如下NewRaft函数的参数中,除了Config结构,其他都是以interface形式实现。 接下来几篇我们分别对这5类接口进行详细分析。 func NewRaft(conf *Config, fsm FSM, logs LogStor 阅读全文
摘要:
整体的流程图如上,其中最重要的就是最后2步,分别处理data_stream和session void MySQL_Thread::run() { // 死循环 while (shutdown == 0) { // processing_idles初始化是false,上次检查时间大于ping的周期 i 阅读全文
摘要:
Main thread 初始化核心模块和线程。Main线程最后一部分用watchdog做mysql work线程和idle线程的heartbeat检查,如果超过20次则重启proxy,如果设置restart,则无限重启。 Admin thread 核心循环:admin_main_loop,是Admi 阅读全文
摘要:
main:内存配置数据库,表里存放后端db实例、用户验证、路由规则等信息。表名以runtime_开头的表示proxysql当前运行的配置内容,不能直接改。只能改对应的非runtime_表,然后load生效。 monitor:存储 monitor 模块收集的信息,主要是对后端server的健康/延迟检 阅读全文
摘要:
Main流程图 初始化全局变量,proxysql的main库里面的global_variables里面可查看变量 daemon_fork,这里fork两次(感兴趣可找资料看下),创建守护进程,proxysql宕机可自动拉起。 阶段2-not_started--初始化Main模块,主要就是new来各种 阅读全文
摘要:
ProxySQL介绍 上图中展示了流量从客户端发出 → ProxySQL进行处理转发 → 后端处理 → ProxySQL的前端连接 → 返回客户端的基本流程。下面我们简单梳理下ProxySQL的核心功能如下图。 读写分离:可查询走从库,写入走主库 简单Sharding:ProxySQL的shardi 阅读全文
摘要:
0:数据库架构 & 常见模块 Q1:为什么是disk-oriented架构? 磁盘很慢。那么问题来了,磁盘慢为啥还要用呢? 磁盘便宜。磁盘比内存那不是便宜了一点啊。 比内存大。数据往往很大,如果单纯的就用内存,那么多的数据存在哪。 永久存储。内存掉电数据就没了。 Q2:如果用了磁盘又会引入哪些问题? 阅读全文
摘要:
1、报错 # 执行sysbench sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=root -- 阅读全文
摘要:
Clickhouse中高阶函数的一写常见使用案例,包含滑动窗口计算、分组计算TopK值,时序数据求diff、漏斗函数、留存函数 阅读全文
摘要:
Error compile: ld: symbol(s) not found for architecture x86_64 conda1、报错GO111MODULE=on go build -tags codes -o bin/tinykv-server kv/main.go# runtime/cgold: warning: ignoring file /Applications/Xcode.... 阅读全文