版本1.0.1

下载以及安装这个版本的Trafodion,请看安装

1.0.1 新特征

版本1.0.1与版本1.0.0有着相同的特征。但在1.0.1中,功能在表中搜集进程与统计信息 被激活并且待上线。并且Java(SPJs)存储过程的性能也有了提高。有关该版本中新功能的列表信息,请参考1.0.0 新功能

1.0.1 修复的问题

1.0.1 已修复的问题:

1.0.1 临时解决的已知问题

请参考1.0.0 临时解决的已知问题

版本1.0.0

下载以及安装这个版本的Trafodion,请看安装

1.0.0 新功能

这个版本包括下面这些新增及加强的功能

分类功能
高可用性

待上线版:

  • 从Trafodion结构进程错误(交易管理、监控进程)中恢复
  • 从HBase Region服务错误中恢复
  • 从节点错误中恢复
  • 从系统灾难性错误中恢复
性能

待上线版:

  • 自动更新统计信息 (初始化,基础支持)
  • 加强了嵌套连接(join)
  • 加强了索引(index)支持
  • 加强了扫描(scan)性能

技术性预览:

有关自动更新统计信息以及加强索引支持的更多信息,请参考Trafodion_Client_Installation_Guide_1.1.0.pdf

使用性

技术性预览:

数据库迁移与连接

待上线版:

技术性预览:

有关新的UNLOAD语句的详细信息,请参考Trafodion SQL Reference Manual (pdf, 3.9 MB)

管理

待上线版:

技术预览:

有关搜集SQL运行时间的统计以及终止一个正在运行中的查询,请查看Trafodion SQL Reference Manual (pdf, 3.9 MB)

安全

待上线版:

对在这个版本中ANSI schema支持以及权限更新的更多信息,请参考 Trafodion SQL Reference Manual (pdf, 3.9 MB)

可扩展性
  • 修复85处问题

1.0.0 修复的问题

这个版本包括85个问题的修复,其中有25个紧急问题,54个严重问题,以及10个中等及以下问题。这些问题被列在Launchpad

1.0.0 临时解决的已知问题


Bug #1274651: Getting TM error 97 when tables split or get moved.

症状: HBase Region拆分、负载均衡和错误97

起因: 作为 HBase 环境正在进行的操作的一部分 (和基于 HBase 环境配置的策略),HBase region既能被拆分(成为两个子region)或者迁移到别的region服务器上。(请参考博客:http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/ 。)如果这样,当 Trafodion 事务处于活动状态 (并且对正在被拆分或负载均衡的region中的行进行操作),那么该应用程序对后续事务的递交操作可能会遇到错误 97。请注意在这种情况下,Trafodion 事务管理器将中止该事务,以维护数据库的完整性。

解决方案: 为了减轻上述危害,我们建议你使用如下一个或多个方法:

  1. 当一个提交操作返回错误97时,你可以通过增强你JDBC的应用逻辑来重试这个提交操作。
  2. 更新 HBase 配置,以减少这种危害发生的次数。它涉及到对 hbase site.xml(或通过你Hadoop 发行的管理性接口)进行一些属性的更新。
    1. 设置HBase Region中文件大小上限为100GB。例如:将属性hbase.hregion.max.filesize的值设置为107374182400。
    2. 设置HBase region拆分策略为'ConstantSizeRegionSplitPolicy'。例如:将属性hbase.regionserver.region.split.policy的值设置为org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy. 
      注: 在Trafodion的安装脚本中,拆分策略已经被设置成为'ConstantSizeRegionSplitPolicy'。 参阅Installer Modifications to HBase。 

      总结: 

      属性
      hbase.hregion.max.filesize107374182400
      hbase.regionserver.region.split.policyorg.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy

      (请参考博客: http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/ )

  3. 禁用HBase Region负载均衡。通过HBase shell命令balance_switch false来取消对某个region从一个服务器到另一个服务器的迁移。

    例:
    # hbase shell
    hbase(main):002:0> balance_switch false
    true  <-- 该结果是balance_switch最后设置的值
    0 row(s) in 0.0080 seconds
  4. 在新建表的时候,预先通过子句‘SALT USING <n> PARTITIONS’ 来将表拆分成多个region。你指定的分区数可以是目前HBase集群region数的一个功能。下面是一个简单的例子,关于表‘INVENTORY’ 在新建的时候如何被预先拆分成4个region:
    CREATE TABLE INVENTORY
      (
        ITEM_ID       INT UNSIGNED NO DEFAULT NOT NULL
      , ITEM_TYPE     INT UNSIGNED NO DEFAULT NOT NULL
      , ITEM_COUNT    INT UNSIGNED NO DEFAULT NOT NULL
      , PRIMARY KEY (ITEM_ID ASC)
      )  SALT USING 4 PARTITIONS
      ;


Bug #1274962: EXECUTE.BATCH update creates core-file

症状: EXECUTE.BATCH在更新时,系统长时间未响应,并产生了core文件。

起因: 待定。

解决方案: Batch更新以及ODBC行部署不能工作。

Bug #1391271: Random update statistics failures with HBase OutOfOrderScannerNextException

症状: 在执行update statistics命令时,遇见HBase OutOfOrderScannerNextException的错误。

起因: 当给定一张表时,默认的hbase.rpc.timeout以及hbase.client.scanner.timeout.period的值可能太小了。更新统计信息的采样是使用 HBase 随机 RowFilter 来实现的。对于几个亿行这样非常大的表,用100万行作为样本,其采样率是非常小的。这可能会导致HBase 客户端连接超时错误,因为可能在一个长时间里,RegionServer 没有行返回。

解决方案: 提高hbase.rpc.timeouthbase.client.scanner.timeout.period的值。我们发现,将这两个值增加到600秒(10分钟),有时会阻止许多与超时有关的错误。更多信息,请参考HBase配置与调优推荐

如果提高hbase.rpc.timeouthbase.client.scanner.timeout.period 的值并不能起效,那试试增加选取样本的大小。对大表采用高于默认100万行的样本。例如,假设表 T 有 10 亿行,下面的UPDATE STATISTICS语句将用100万行,也就是大约总体的千分之一作为样本:

update statistics for table T on every column sample;

如果想用所有行的百分之一作为样本,而不管表的具体大小,你必须如下明确取样率:

update statistics for table T on every column sample random 1 percent;

Bug #1409937: Following update statistics, stats do not take effect immediately.

症状:统计信息刚更新好的时候,生成的查询计划不反映该统计信息。例如,在一个会话中,你创建一张表,并插入值,然后在表上运行更新统计信息(update statistics),再prepare一条查询语句,最后退出。这时系统生成了一个执行计划,并得到了预估基数100。如果打开一个新的连接(session),你prepare一条相同的语句,这时也会有一条平行的执行计划生成,这时预估基数就能反应统计信息。

起因: 这是一个day-one的问题。

解决方案: 两分钟之后重试该查询语句。设置CQD HIST_NO_STATS_REFRESH_INTERVAL为'0'并执行UPDATE STATISTICS语句。在不同的连接(session)中执行DML操作。

  • No labels