 Greenplum 编译安装和调试gpinitsystem 是Bash脚本工具,有些时候它的报错信息很不清楚。这个 时候可以 ○ 使用 -D 选项 ○ gp_bash_functions.sh 是内部一个被频繁调用执行系统命令的函数,可以通过 set -x 可以打印出所有执行的命令的详细信息。对调试 hang 问题很有效。 ● 在合适的代码处启用 Python 调试器,如果不知道什么地方合适,则在入口处。 3. Greenplum ExecutorStart (lldb) b ExecutorRun (lldb) b ExecProcNode (lldb) c (lldb) c (lldb) c (进入 ExecProcNode 函数) * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 4.1 7.1 frame #0: 0x000000010ca50d9c 0x0000000000000000 可见 master 上的 QD在执行聚集操作,对应的函数是 result = ExecAgg((AggState *) node); (lldb) c Greenplum 会再次断点在 ExecProcNode, 这次的 node 类型是 T_MotionState, 执行 ExecMotion() 函数为 ExecAgg 获得下一个 tuple。 ExecMotion()0 码力 | 15 页 | 2.07 MB | 1 年前3 Greenplum 编译安装和调试gpinitsystem 是Bash脚本工具,有些时候它的报错信息很不清楚。这个 时候可以 ○ 使用 -D 选项 ○ gp_bash_functions.sh 是内部一个被频繁调用执行系统命令的函数,可以通过 set -x 可以打印出所有执行的命令的详细信息。对调试 hang 问题很有效。 ● 在合适的代码处启用 Python 调试器,如果不知道什么地方合适,则在入口处。 3. Greenplum ExecutorStart (lldb) b ExecutorRun (lldb) b ExecProcNode (lldb) c (lldb) c (lldb) c (进入 ExecProcNode 函数) * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 4.1 7.1 frame #0: 0x000000010ca50d9c 0x0000000000000000 可见 master 上的 QD在执行聚集操作,对应的函数是 result = ExecAgg((AggState *) node); (lldb) c Greenplum 会再次断点在 ExecProcNode, 这次的 node 类型是 T_MotionState, 执行 ExecMotion() 函数为 ExecAgg 获得下一个 tuple。 ExecMotion()0 码力 | 15 页 | 2.07 MB | 1 年前3
 Greenplum 分布式数据库内核揭秘火山模型,或者说拉模型,是指从最顶层的输出节点开始,不断从下层节点拉取数据,一种自顶向 下的执行方式。最常见的拉模型是 Tuple-At-A-Time,即每次从下层拉取一个元组进行处理。 Greenplum、PostgreSQL、MySQL 以及 Oracle 等主流数据库均采用拉模型。 拉模型的每个算子都实现了从下层节点获取一条元组的 GetNext 函数,每次调用该函数都会从下 层节点返回一条元组或者 层节点返回一条元组或者 EOF 的 NULL 指针。上层节点不断地调用 GetNext 函数从下层节点获 取数据,直至数据全部获取完毕。 火山模型 postgres=# explain select * from t order by t1 limit 1; QUERY PLAN ------------------------------------0 码力 | 31 页 | 3.95 MB | 1 年前3 Greenplum 分布式数据库内核揭秘火山模型,或者说拉模型,是指从最顶层的输出节点开始,不断从下层节点拉取数据,一种自顶向 下的执行方式。最常见的拉模型是 Tuple-At-A-Time,即每次从下层拉取一个元组进行处理。 Greenplum、PostgreSQL、MySQL 以及 Oracle 等主流数据库均采用拉模型。 拉模型的每个算子都实现了从下层节点获取一条元组的 GetNext 函数,每次调用该函数都会从下 层节点返回一条元组或者 层节点返回一条元组或者 EOF 的 NULL 指针。上层节点不断地调用 GetNext 函数从下层节点获 取数据,直至数据全部获取完毕。 火山模型 postgres=# explain select * from t order by t1 limit 1; QUERY PLAN ------------------------------------0 码力 | 31 页 | 3.95 MB | 1 年前3
 TiDB v8.5 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 67 2.3.1 数据类型,函数和操作符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1125 8.7.3 受时区设置影响的函数和数据类型· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1126 8.7.4 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3490 14.12.4 函数与操作符· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·0 码力 | 5095 页 | 104.54 MB | 10 月前3 TiDB v8.5 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 67 2.3.1 数据类型,函数和操作符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1125 8.7.3 受时区设置影响的函数和数据类型· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1126 8.7.4 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3490 14.12.4 函数与操作符· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·0 码力 | 5095 页 | 104.54 MB | 10 月前3
 TiDB v8.4 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 63 2.3.1 数据类型,函数和操作符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3472 14.12.4 函数与操作符· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 操作生效,且默认关闭。如需开启优化版的 Hash Join,可以将系统变 量tidb_hash_join_version 设置为 optimized。 更多信息,请参考用户文档。 36 • 支持下推以下日期函数到 TiKV #56297 #17529 @gengliqi – DATE_ADD() – DATE_SUB() – ADDDATE() – SUBDATE() 更多信息,请参考用户文档。0 码力 | 5072 页 | 104.05 MB | 10 月前3 TiDB v8.4 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 63 2.3.1 数据类型,函数和操作符 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 3472 14.12.4 函数与操作符· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 操作生效,且默认关闭。如需开启优化版的 Hash Join,可以将系统变 量tidb_hash_join_version 设置为 optimized。 更多信息,请参考用户文档。 36 • 支持下推以下日期函数到 TiKV #56297 #17529 @gengliqi – DATE_ADD() – DATE_SUB() – ADDDATE() – SUBDATE() 更多信息,请参考用户文档。0 码力 | 5072 页 | 104.05 MB | 10 月前3
 Apache ShardingSphere 中文文档 5.0.0隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ? SELECT 子句不支持 * 和内置分 布式主键生成器 无 SELECT MAX(tbl_name.col1) FROM tbl_name 查询列是函数表达式时,查询列 前不能使用表名 使用表 别名 分页 完全支持 MySQL、PostgreSQL 和 Oracle 的分页查询,SQLServer 由于分页查询较为复杂,仅部分支持。 分页性能 相关操作 5.1. ShardingSphere-JDBC 157 Apache ShardingSphere document, v5.0.0 Connection 接口 • 不支持存储过程,函数,游标的操作 • 不支持执行 native SQL • 不支持 savepoint 相关操作 • 不支持 Schema/Catalog 的操作 • 不支持自定义类型映射 Statement0 码力 | 385 页 | 4.26 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ? SELECT 子句不支持 * 和内置分 布式主键生成器 无 SELECT MAX(tbl_name.col1) FROM tbl_name 查询列是函数表达式时,查询列 前不能使用表名 使用表 别名 分页 完全支持 MySQL、PostgreSQL 和 Oracle 的分页查询,SQLServer 由于分页查询较为复杂,仅部分支持。 分页性能 相关操作 5.1. ShardingSphere-JDBC 157 Apache ShardingSphere document, v5.0.0 Connection 接口 • 不支持存储过程,函数,游标的操作 • 不支持执行 native SQL • 不支持 savepoint 相关操作 • 不支持 Schema/Catalog 的操作 • 不支持自定义类型映射 Statement0 码力 | 385 页 | 4.26 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.1隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ? SELECT 子句不支持 * 和内置分 布式主键生成器 无 SELECT MAX(tbl_name.col1) FROM tbl_name 查询列是函数表达式时,查询列 前不能使用表名 使用表 别名 分页 完全支持 MySQL、PostgreSQL 和 Oracle 的分页查询,SQLServer 由于分页查询较为复杂,仅部分支持。 4 uteSQL/: 表示执行 SQL 异常的日志。 5.1.8 不支持项 DataSource 接口 • 不支持 timeout 相关操作。 Connection 接口 • 不支持存储过程,函数,游标的操作; • 不支持执行 native SQL; • 不支持 savepoint 相关操作; • 不支持 Schema/Catalog 的操作; • 不支持自定义类型映射。 5.1.0 码力 | 409 页 | 4.47 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.1隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ? SELECT 子句不支持 * 和内置分 布式主键生成器 无 SELECT MAX(tbl_name.col1) FROM tbl_name 查询列是函数表达式时,查询列 前不能使用表名 使用表 别名 分页 完全支持 MySQL、PostgreSQL 和 Oracle 的分页查询,SQLServer 由于分页查询较为复杂,仅部分支持。 4 uteSQL/: 表示执行 SQL 异常的日志。 5.1.8 不支持项 DataSource 接口 • 不支持 timeout 相关操作。 Connection 接口 • 不支持存储过程,函数,游标的操作; • 不支持执行 native SQL; • 不支持 savepoint 相关操作; • 不支持 Schema/Catalog 的操作; • 不支持自定义类型映射。 5.1.0 码力 | 409 页 | 4.47 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.0隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ? SELECT 子句不支持 * 和内置分 布式主键生成器 无 SELECT MAX(tbl_name.col1) FROM tbl_name 查询列是函数表达式时,查询列 前不能使用表名 使用表 别名 分页 完全支持 MySQL、PostgreSQL 和 Oracle 的分页查询,SQLServer 由于分页查询较为复杂,仅部分支持。 4 cuteSQL/: 表示执行 SQL 异常的日志。 5.1.8 不支持项 DataSource 接口 • 不支持 timeout 相关操作 Connection 接口 • 不支持存储过程,函数,游标的操作 • 不支持执行 native SQL • 不支持 savepoint 相关操作 • 不支持 Schema/Catalog 的操作 • 不支持自定义类型映射 5.1. ShardingSphere-JDBC0 码力 | 406 页 | 4.40 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.0隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ? SELECT 子句不支持 * 和内置分 布式主键生成器 无 SELECT MAX(tbl_name.col1) FROM tbl_name 查询列是函数表达式时,查询列 前不能使用表名 使用表 别名 分页 完全支持 MySQL、PostgreSQL 和 Oracle 的分页查询,SQLServer 由于分页查询较为复杂,仅部分支持。 4 cuteSQL/: 表示执行 SQL 异常的日志。 5.1.8 不支持项 DataSource 接口 • 不支持 timeout 相关操作 Connection 接口 • 不支持存储过程,函数,游标的操作 • 不支持执行 native SQL • 不支持 savepoint 相关操作 • 不支持 Schema/Catalog 的操作 • 不支持自定义类型映射 5.1. ShardingSphere-JDBC0 码力 | 406 页 | 4.40 MB | 1 年前3
 Apache ShardingSphere v5.5.0 中文文档。组件之间完全隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ?(SELECT 子 句不支持 * 和内置分布式主键生成器) • SELECT MAX(tbl_name.col1) FROM tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 其他: • 分片规则中配置的真实表、分片列和分布式序列需要和数据库中的列保持大小写一致。 8.2 分布式事务 8.2.1 背景 数据库事务需要满足 commit() 和 rollback() 方法,这是被允许的。 2. 在函数上使用 Jakarta EE 8 的 javax.transaction.Transactional 注解,这是被允许的。 9.1. ShardingSphere-JDBC 130 Apache ShardingSphere document 3. 在函数上使用 Jakarta EE 9/10 的 jakarta.transaction0 码力 | 557 页 | 4.61 MB | 1 年前3 Apache ShardingSphere v5.5.0 中文文档。组件之间完全隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ?(SELECT 子 句不支持 * 和内置分布式主键生成器) • SELECT MAX(tbl_name.col1) FROM tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 其他: • 分片规则中配置的真实表、分片列和分布式序列需要和数据库中的列保持大小写一致。 8.2 分布式事务 8.2.1 背景 数据库事务需要满足 commit() 和 rollback() 方法,这是被允许的。 2. 在函数上使用 Jakarta EE 8 的 javax.transaction.Transactional 注解,这是被允许的。 9.1. ShardingSphere-JDBC 130 Apache ShardingSphere document 3. 在函数上使用 Jakarta EE 9/10 的 jakarta.transaction0 码力 | 557 页 | 4.61 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.2.0隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 1.2. 设计哲学 5 Apache ShardingSphere document, v5.2.0 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL tbl_name WHERE col3 = ?(SELECT 子 句不支持 * 和内置分布式主键生成器) • SELECT MAX(tbl_name.col1) FROM tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 3.2 分布式事务 3.2.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomic conf 和 registry.conf 文件。 4.1.6 不支持项 DataSource 接口 • 不支持 timeout 相关操作。 Connection 接口 • 不支持存储过程,函数,游标的操作; • 不支持执行 native SQL; • 不支持 savepoint 相关操作; • 不支持 Schema/Catalog 的操作; • 不支持自定义类型映射。 Statement0 码力 | 449 页 | 5.85 MB | 1 年前3 Apache ShardingSphere 中文文档 5.2.0隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据库高可用、数据加密、影子库 等。用户自定义功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动 内核代码。 1.2. 设计哲学 5 Apache ShardingSphere document, v5.2.0 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL tbl_name WHERE col3 = ?(SELECT 子 句不支持 * 和内置分布式主键生成器) • SELECT MAX(tbl_name.col1) FROM tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 3.2 分布式事务 3.2.1 背景 数据库事务需要满足 ACID(原子性、一致性、隔离性、持久性)四个特性。 • 原子性(Atomic conf 和 registry.conf 文件。 4.1.6 不支持项 DataSource 接口 • 不支持 timeout 相关操作。 Connection 接口 • 不支持存储过程,函数,游标的操作; • 不支持执行 native SQL; • 不支持 savepoint 相关操作; • 不支持 Schema/Catalog 的操作; • 不支持自定义类型映射。 Statement0 码力 | 449 页 | 5.85 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.4.1。组件之间完全隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ?(SELECT 子 句不支持 * 和内置分布式主键生成器) • SELECT MAX(tbl_name.col1) FROM tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 其他: • 分片规则中配置的真实表、分片列和分布式序列需要和数据库中的列保持大小写一致。 8.2 分布式事务 8.2.1 背景 数据库事务需要满足 进行检索,并安装到 ShardingSphere 中。 9.1.5 不支持项 DataSource 接口 • 不支持 timeout 相关操作。 Connection 接口 • 不支持存储过程,函数,游标的操作; • 不支持执行 native SQL; • 不支持 savepoint 相关操作; • 不支持 Schema/Catalog 的操作; • 不支持自定义类型映射。 Statement0 码力 | 530 页 | 4.49 MB | 1 年前3 Apache ShardingSphere 中文文档 5.4.1。组件之间完全隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL 解析器和存储适配器,分别对应于 Apache Shard‐ ingSphere tbl_name WHERE col3 = ?(SELECT 子 句不支持 * 和内置分布式主键生成器) • SELECT MAX(tbl_name.col1) FROM tbl_name(查询列是函数表达式时,查询列前不能使用表名, 可以使用表别名) 其他: • 分片规则中配置的真实表、分片列和分布式序列需要和数据库中的列保持大小写一致。 8.2 分布式事务 8.2.1 背景 数据库事务需要满足 进行检索,并安装到 ShardingSphere 中。 9.1.5 不支持项 DataSource 接口 • 不支持 timeout 相关操作。 Connection 接口 • 不支持存储过程,函数,游标的操作; • 不支持执行 native SQL; • 不支持 savepoint 相关操作; • 不支持 Schema/Catalog 的操作; • 不支持自定义类型映射。 Statement0 码力 | 530 页 | 4.49 MB | 1 年前3
共 63 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7














