Java 虚拟机指令操作码和助记符映射关系

前言 本文整理了 Java 虚拟机指令操作码和助记符之间的映射关系,可以用于日常学习 Java 字节码时快速查阅。需要注意的是,操作码 186 对应的 invokedynamic 指令是 JDK 7 版本新增的指令,在 JDK 7 之前的版本没有该指令。 常量 Constants 字节码(十进制) 字节码(十六进制) 助记符 指令含义 00 0x00 nop 无操作 0...

JVM

深度探究 Apache Calcite SQL 校验器实现原理

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇 Apache Calcite System Catalog 实现探究中,我们介绍了经典的数据库处理流程,包括:SQL 解析、SQL 绑定、SQL 优化以及计划执行。SQL 绑定主要的作用是将 SQL 解析生成的 AST 和数据库的元数据...

Calcite

初探分布式事务常见方案及实现原理

前言 TODO 什么是分布式事务 基本定义 使用场景 随着互联网、金融等行业的快速发展,业务越来越复杂,一个完整的业务往往需要调用多个子业务或服务,随着业务的不断增多,涉及的服务及数据也越来越多越来越复杂。传统的系统难以支撑,出现了应用和数据库等的分布式系统。分布式系统又带来了数据一致性的问题,从而产生了分布式事务。 如何实现分布式事务 基于第一个强一致的思路,就有了基于数据库本...

Transaction

BenchmarkSQL & ShardingSphere-JDBC 性能测试实战

TPC-C 模型简介 TPC 是一系列事务处理和数据库基准测试的规范。其中TPC-C(Transaction Processing Performance Council)是针对 OLTP 的基准测试模型。TPC-C 测试模型给基准测试提供了一种统一的测试标准,可以大体观察出数据库服务稳定性、性能以及系统性能等一系列问题。对数据库展开 TPC-C 基准性能测试,一方面可以衡量数据库的性能,...

ShardingSphere

CBO 优化的基石——Apache Calcite 统计信息和代价模型详解

注意:本文基于 Calcite 1.35.0 版本源码进行学习研究,其他版本可能会存在实现逻辑差异,对源码感兴趣的读者请注意版本选择。 前言 在上一篇深入理解 Apache Calcite ValcanoPlanner 优化器一文中,我们介绍了 Calcite VolcanoPlanner 的理论基础、核心概念和整体流程,VolcanoPlanner 在优化时会计算不同执行计划的代价 ...

Calcite
12347