Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 客户端应用通过JDBC或者ODBC访问Trafodion。Trafodion的ODBC驱动采用了优化的wire protocol,高效地同Master Executor进程进行网络交互。上图演示了一个Type 4的JDBC配置。.

 

  • Master Executor是负责执行用户SQL语句的主进程。它内部包含了一份SQL compiler代码的拷贝,因此多数SQL语句可以在Master Executor进程内部进行编译而无需和单独的编译进程进行通信。此外,所有执行计划中的root节点都在Master Executor进程中执行。

...

  • DTM进程负责分布式事务。DTM的职责包括日志管理和事务协调。

...

  • Trafodion支持访问原生HBase表,为此,SQL引擎将读取HBase的元数据。为了提供更好的OLTP访问性能,Trafodion还提供了定制的Trafodion表结构,用HBase Table进行存储。Trafodion表拥有自己的元数据,同样存储在HBase中。

...

数据库连接服务(DCS)允许标准的ODBC/JDBC应用程序访问Trafodion。DCS是一个分布式服务。它利用底层的HBase服务 ZooKeeper 来管理DCS集群。ZooKeeper(一个Apache开源项目)服务能提供配置管理,命名空间管理等功能。利用ZooKeeper,还可以实现分布式环境下的同步,以及集群成员管理。所有的集群节点以及客户端应用都可以访问ZooKeeper。

DCS由多个子系统组成:

 

  • ODBC/JDBC驱动程序:ODBC提供了标准的API来访问数据库管理系统。

...

  • DCS Server进程:Server进程负责启动和管理MXOSRVR进程的运行。集群的每个节点上都运行一个DCS Server进程。

...

  • MXOSRVR Server 进程(在上图中显示为"Master Executor"): 这个进程负责处理ODBC/JDBC客户的数据库访问请求。一个客户端程序对应一个单独的MXOSRVR server进程。MXOSRVR server进程代表客户端执行SQL查询,并将结果返回给客户端应用程序。

...

Trafodion采用多版本并发控制(MVCC)的方法支持分布式ACID事务。具体实现基于开源项目HBase-trx。Trafodion在HBase-trx的基础上做了一些改进: 

  1. 支持HBase 0.98.1版本(CDH 5.1),和0.98.9版本(HDP 2.1)
  2. 采用线程池技术并发地处理事务原语
  3. 支持全局事务
  4. 添加了事务的故障恢复能力

 

Trafodion在每个集群节点上启动一个事务管理进程(在上图中显示为"DTM")。该进程记录了该节点上启动的所有事务,并负责管理它们(在原始的HBase-trx中,事务由客户端应用程序负责管理,当客户端进程异常退出后,系统无法再重新启动in-doubt事务,即被中断的未知结果的事务)

...

在这个小节中,我们将浏览一下Trafodion的源代码结构,并针对每一个源代码模块指出其在Trafodion体系结构中的相应部分。

在Trafodion的core代码库中: 

  • conn: connectivity子系统
    • conn/jdbc: JDBC Type 4 客户端驱动

...