观众朋友们:
下午好!
欢迎收看【 Doris 近日要闻】~本次为您带来的是 2021年07月19日 ~ 2021年08月01日 的双周总结。
Doris 社区周报每期会包含 FAQ 环节。我们会在社区论坛、Github ISSUE、Dev邮件组以及微信用户群中挑选一些主要问题并在 FAQ 环节中进行解答。
-
Dev 邮件组:dev@doris.apache.org
-
Github Issue:https://github.com/apache/incubator-doris/issues
-
社区论坛地址:http://ai.baidu.com/forum/topic/list/209/0/167
1. 统计数据
共20位作者提交了33个 Commit 。感谢以下作者的贡献:
jiafeng.zhang, weizuo93, HappenLee, xy720, stdpain, qiye, caiconghui, Xinyi Zou, Mingyu Chen, xinghuayu007, pengxiangyu, luozenglin, huangmengbin, Zhengguo Yang, Xiang Wei, Tobiasz Kędzierski, Henry2SS, GoGoWen, EmmyMiao87, DinoZhang
最近2周,共修改新增代码行 13525 ,删除代码行 1500 。
2. 主要进展
2.1 新增功能
-
https://github.com/apache/incubator-doris/pull/6115
支持为AES_ENCRYPT和AES_DECRYPT函数创建自定义公钥。
-
https://github.com/apache/incubator-doris/pull/6233
支持在 SQL 查询规划阶段,利用BE的函数计算能力计算所有常量表达式。
-
https://github.com/apache/incubator-doris/pull/6223
ODBC外表支持SQLServer。
-
https://github.com/apache/incubator-doris/pull/6245
支持事务性insert操作。
-
https://github.com/apache/incubator-doris/pull/6214
支持通过show load profile查看broker load的导入执行profile。
-
https://github.com/apache/incubator-doris/pull/6230
Unique Key模型支持Update语法。
-
https://github.com/apache/incubator-doris/pull/6333
支持LDAP登陆验证。
2.2 Bug修复
-
https://github.com/apache/incubator-doris/pull/6266
修复Grouping Set和Order By同时使用可能产生的规划错误。
-
https://github.com/apache/incubator-doris/pull/6273
修复日期格式化函数的错误。
-
https://github.com/apache/incubator-doris/pull/6305
修复runtime filter在处理null值的错误问题。
-
https://github.com/apache/incubator-doris/pull/6284
修复Spark Load计算bool类型的hash值错误的问题。
-
https://github.com/apache/incubator-doris/pull/6317
修复memtable写入多个segment时可能导致BE进程宕机的问题。
2.3 功能改进
-
https://github.com/apache/incubator-doris/pull/6200
提升FE处理tablet汇报的性能。
-
https://github.com/apache/incubator-doris/pull/6099
BE端读取数据时,共享schema数据结构以提升效率。
-
https://github.com/apache/incubator-doris/pull/6253
优化lower和upper函数的执行效率。
-
https://github.com/apache/incubator-doris/pull/6274
优化Join算子的代价计算模型。
-
https://github.com/apache/incubator-doris/pull/6207
重构FE端元数据镜像文件的格式,以方便扩展。
-
https://github.com/apache/incubator-doris/pull/6293
优化zonemap的生成逻辑,避免生成过大的zonemap索引条目。
2.4 文档
-
https://github.com/apache/incubator-doris/pull/6231
创建demo文档库,丰富Apache Doris的使用示例说明。
3. FAQ
Q:tablet writer write failed, tablet_id=27306172, txn_id=28573520, err=-235 or -215
A:这个错误通常发生在数据导入操作中。新版错误码为 -235,老版本错误码可能是 -215。这个错误的含义是,对应tablet的数据版本超过了最大限制(默认500),后续写入将被拒绝。比如问题中这个错误,即表示 27306172 这个tablet的数据版本超过了限制。
这个错误通常是因为导入的频率过高,大于后台数据的compaction速度,导致版本堆积并最终超过了限制。此时,我们可以先通过show tablet 27306172 语句,然后执行结果中的 show proc 语句,查看tablet各个副本的情况。结果中的 versionCount即表示版本数量。如果发现某个副本的版本数量过多,则需要降低导入频率或停止导入,并观察版本数是否有下降。如果停止导入后,版本数依然没有下降,则需要去对应的BE节点查看be.INFO日志,搜索tablet id以及 compaction关键词,检查compaction是否正常运行。关于compaction调优相关,可以参阅:Doris 最佳实践-Compaction调优(3)
Q:tablet 110309738 has few replicas: 1, alive backends: [10003]
A:这个错误可能发生在查询或者导入操作中。通常意味着对应tablet的副本出现了异常。
此时,可以先通过 show backends 命令检查BE节点是否有宕机,如 isAlive 字段为false,或者 LastStartTime 是最近的某个时间(表示最近重启过)。如果BE有宕机,则需要去BE对应的节点,查看be.out日志。如果BE是因为异常原因宕机,通常be.out中会打印异常堆栈,帮助排查问题。如果be.out中没有错误堆栈。则可以通过 linux 命令dmesg -T 检查是否是因为OOM导致进程被系统kill掉。
如果没有BE节点宕机,则需要通过show tablet 110309738 语句,然后执行结果中的 show proc 语句,查看tablet各个副本的情况,进一步排查。
Q:disk xxxxx on backend xxx exceed limit usage
A:通常出现在导入、Alter等操作中。这个错误意味着对应BE的对应磁盘的使用量超过了阈值(默认95%)此时可以先通过 show backends 命令,其中MaxDiskUsedPct展示的是对应BE上,使用率最高的那块磁盘的使用率,如果超过95%,则会报这个错误。
此时需要前往对应BE节点,查看数据目录下的使用量情况。其中trash目录和snapshot目录可以手动清理以释放空间。如果是data目录占用较大,则需要考虑删除部分数据以释放空间了。具体可以参阅【磁盘空间管理】:http://doris.incubator.apache.org/master/zh-CN/administrator-guide/operation/disk-capacity.html
-- END --
猜你喜欢: