1. 概述 2. 多分片执行 SQL 3. 合并多分片结果 3.1 记录头(header) 3.2 记录行(row) 3.1 AbstractDataNodeMerge 3.2 DataNodeMergeManager 3.3 UnsafeRow 3.4 UnsafeExternalRowSorter 3.5 UnsafeRowGrouper 4. 救护中心…
更多MyCat源码分析,请戳MyCat源码分析系列 结果合并 在SQL下发流程和前后端验证流程中介绍过,通过用户验证的后端连接绑定的NIOHandler是MySQLConnectionHandler实例,在MySQL服务端返回执行结果时会调用到MySQLConnecionHandler.handleData(),用于不同类型的处理派发: protected void handleData(byte[] data) { switch (resultStatus) { case RESULT_STA…
更多MyCat源码分析,请戳MyCat源码分析系列 SQL下发 SQL下发指的是MyCat将解析并改造完成的SQL语句依次发送至相应的MySQL节点(datanode)的过程,该执行过程由NonBlockingSession.execute()触发: public void execute(RouteResultset rrs, int type) { // clear prev execute resources clearHandlesResources(); if (LOGGER.isDe…
1. 概述 2. 主流程 3. ShareJoin 3.1 JoinParser 3.2 ShareJoin.processSQL(...) 3.3 BatchSQLJob 3.4 ShareDBJoinHandler 3.5 ShareRowOutPutDataHandler 4. 彩蛋 1. 概述 MyCAT 支持跨库表 Join,目前版本仅支持跨库两表 Join.虽然如此,已经能够满足我们大部分的业务场景.况且,Join 过多的表可能带来的性能问题也是很麻烦的. 本文主要分享: 整体流程.…
[源码解析] Flink的groupBy和reduce究竟做了什么 目录 [源码解析] Flink的groupBy和reduce究竟做了什么 0x00 摘要 0x01 问题和概括 1.1 问题 1.2 概括 0x02 背景概念 2.1 MapReduce细分 2.2 MapReduce细分 2.3 Combine 2.4 Partition 2.5 Shuffle 2.6 Reducer 0x03 代码 0x04 从Flink JAVA API入手挖掘 4.1 GroupBy是个辅助概念 4.1…
[源码解析] 当 Java Stream 遇见 Flink 目录 [源码解析] 当 Java Stream 遇见 Flink 0x00 摘要 0x01 领域 1.1 Flink 1.2 Java Stream 1.3 探寻角度 0x02 数据流模型 2.1 Java Stream 2.2 Flink 2.3 分析 0x03 流水线 3.1 总体对比 3.2 示例代码 3.3 Stream操作分类 3.4 Stage 3.4.1 分类 3.4.2 AbstractPipeline 3.5 流水线构…
[源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 目录 [源码解析] 深度学习分布式训练框架 horovod (2) --- 从使用者角度切入 0x00 摘要 0x01 Horovod 简介 0x02 Hovorod 机制概述 2.1 Horovod 机制 0x03 示例代码 3.1 摘要代码 3.2 horovodrun 0x04 运行逻辑 4.1 引入python文件 4.2 初始化 in python 4.2.1 引入SO库 4.2.1.1 SO库 4…
[源码解析] 深度学习分布式训练框架 horovod (18) --- kubeflow tf-operator 目录 [源码解析] 深度学习分布式训练框架 horovod (18) --- kubeflow tf-operator 0x00 摘要 0x01 背景知识 1.1 Kubernetes 1.2 容器作为调度单元 1.3 Kubeflow 1.4 Tensorflow on Kubeflow 1.5 Operator 1.6 TF-Operator 0x02 TensorFlow 分布…
[源码解析] 深度学习流水线并行Gpipe(1)---流水线基本实现 目录 [源码解析] 深度学习流水线并行Gpipe(1)---流水线基本实现 0x00 摘要 0x01 概述 1.1 什么是GPipe 1.2 挑战 0x02 并行机制 2.1 机制分类与权衡 2.1.1 数据并行 2.1.2 模型并行 2.1.3 流水线并行 2.2 如何使用 0x03 Pytorch 手动指定并行方式 3.1 基础知识 3.2 特点 3.3 基本用法 3.4 将模型并行化应用于现有模块 3.5 通过流水线输入…
[源码解析] 深度学习流水线并行 PipeDream(6)--- 1F1B策略 目录 [源码解析] 深度学习流水线并行 PipeDream(6)--- 1F1B策略 0x00 摘要 0x01 流水线比较 1.1 普通流水线 1.2 Gpipe流水线 1.3 1F1B流水线 1.3.1 思路 1.3.2 图示 0x02 PipeDream 实现 2.1 总体逻辑 2.2 权重问题 2.3 Weight Stashing 2.4 Vertical Sync 2.5 缓冲区 0x03 代码 3.1 总…