
Apache Calcite 在 MyCat2 中的实践探究
注意:本文基于 MyCat2 main 分支 ced134b 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 MyCat 是曾经较为流行的一款分库分表中间件,能够支持海量数据的水平分片,以及读写分离、分布式事务等功能。MyCat2 在原有功能的基础上增加了分布式查询引擎,该引擎基于 Calcite 项目实现,能够将 SQL 编译为关系代数...

注意:本文基于 MyCat2 main 分支 ced134b 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 MyCat 是曾经较为流行的一款分库分表中间件,能够支持海量数据的水平分片,以及读写分离、分布式事务等功能。MyCat2 在原有功能的基础上增加了分布式查询引擎,该引擎基于 Calcite 项目实现,能够将 SQL 编译为关系代数...

前言 熟悉 Apache ShardingSphere 的朋友们,可能听说过 SQL Federation 功能,它主要适用于海量数据水平分片场景下,提供对跨节点关联查询、子查询、分页、排序、聚合查询等复杂查询语句的支持。SQL Federation 功能内部使用了 Apache Calcite 项目,来实现 SQL 优化和执行。随着 Calcite 1.38.0 版本的发布,Calcit...

问题背景 MySQL JDBC 驱动支持使用 addBatch 和 executeBatch 方法,进行批量写入操作。MySQL 提供了 allowMultiQueries 和 rewriteBatchedStatements 两个属性用于控制是否开启批量写入,如果用户在 JDBC URL 上开启 &allowMultiQueries=true&rewriteBatched...

注意:本文基于 Calcite main 分支 60e0a3f 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 最近,很多朋友咨询关于 Calcite UDF 实现和扩展的问题,在之前 Apache Calcite System Catalog 实现探究一文中,我们简单介绍过 Catalog 中的 Function 对象,也了解到 Cal...

前言 在之前发布的 Java AOT 编译框架 GraalVM 快速入门一文中,我们介绍了 GraalVM 编译器的基础知识,对比了 GraalVM 和传统 JVM 之间的优势和劣势,并通过 Demo 示例展示了如何将 JVM 程序编译为原生可执行程序。GraalVM 除了编译原生可执行程序外,还可以用于编译动态链接库,提供给 C、C++ 等原生语言调用,GraalVM 编译动态链接库的能...