HugeGraph 发布 0.11.2 版本

2022-04-25 00:00:00 功能 支持 属性 修复 顶点

HugeGraph 0.11.2 版本增加/完善功能 80+,修复 bug 30+,该版本在功能、性能、安全性和稳定性方面都有较大提升。值得一提的是,本次发版同时发布了可视化图管理平台HugeGraph-Hubble!


新增功能主要包括:

  • 支持 RESTful API 中基于属性的范围查询顶点/边

  • 支持顶点和边的 TTL 

  • 支持用户认证和细粒度权限控制

  • 支持共同邻居,Jaccard 相似度,全部短路径,带权短路径,单源短路径多点短路径和模板路径等10+ OLTP算法

  • 支持堆外缓存

  • 支持基于 Raft 的分布式一致性协议

  • 支持集群的异步任务调度功能


性能方面提升:

  • 持聚合运算的性能优化

  • 支持插件化查询加速机制 RamTable

  • 为 RocksDB 后端增加 compaction 配置项

  • 使用 disableTableAsync 加速 HBase 后端的数据清除

  • 使用 IntObjectMap 优化元数据缓存效率

  • 在压缩和解压缩异步任务的结果时,使用 LZ4 替代 Gzip


安全方面提升:

  • 支持 HTTPS 协议

  • 支持 HBase 启用 Kerberos 认证


稳定性方面提升:

  • 支持限制查询请求速率的功能

  • 启动 HugeGraphServer 出现异常时快速失败

  • 修复RocksDB 后端执行 g.V().hasLabel().count() 时的 OOM 问题

  • 修复保存执行失败的异步任务时无法取消的问题


HugeGraph 0.11 Release Notes

API & Client

功能更新

  • 支持梭形相似度算法

  • 支持创建 Schema 时,记录创建的时间

  • 支持 RESTful API 中基于属性的范围查询顶点/边

  • 支持顶点和边的 TTL

  • 统一 RESTful API Server 和 Gremlin Server 的日期格式为字符串

  • 支持共同邻居,Jaccard 相似度,全部短路径,带权短路径和单源短路径5种遍历算法

  • 支持用户认证和细粒度权限控制

  • 支持遍历 API 的顶点计数功能

  • 支持 HTTPS 协议

  • 支持创建索引时控制是否重建索引

  • 支持定制的 kout/kneighbor,多点短路径,相似 Jaccard 点和模板路径5种遍历算法

内部修改

  • 启动 HugeGraphServer 出现异常时快速失败

  • 定义 LOADING 模式来加速导入

Core

功能更新

  • 支持多属性顶点/边的分页查询

  • 支持聚合运算的性能优化

  • 支持堆外缓存

  • 支持属性权限管理

  • 支持 MySQL 和 Memory 后端分片,并改进 HBase 分片方法

  • 支持基于 Raft 的分布式一致性协议

  • 支持元数据拷贝功能

  • 支持集群的异步任务调度功能

  • 支持发生 OOM 时打印堆信息功能

  • 支持 Raft 状态机更新缓存

  • 支持 Raft 节点管理功能

  • 支持限制查询请求速率的功能

  • 支持顶点/边的属性默认值功能

  • 支持插件化查询加速机制 RamTable

  • 支持索引重建失败时设置为 INVALID 状态

  • 支持 HBase 启用 Kerberos 认证

BUG修复

  • 修复配置权限时 start-hugegraph.sh 的超时问题

  • 修复在 studio 执行 gremlin 时的 MySQL 连接失败问题

  • 修复 HBase 后端 truncate 时出现的 TableNotFoundException

  • 修复限速配置项值未检查的问题

  • 修复索引(Unique Index)的返回的异常信息不准确问题

  • 修复 RocksDB 后端执行 g.V().hasLabel().count() 时 OOM 问题

  • 修复 traverseByLabel() 分页设置错误问题

  • 修复根据 ID 和 SortKeys 更新边属性时误创建边的问题

  • 修复部分存储后端的覆盖写问题

  • 修复保存执行失败的异步任务时无法取消的问题

  • 修复 MySQL 后端在 SSL 模式下无法打开数据库的问题

  • 修复索引查询时 offset 问题

  • 修复 Gremlin 中路径泄露的安全问题

  • 修复 reconnectIfNeeded() 方法的 NPE 问题

  • 修复 PostgreSQL 的 JDBC_URL 配置没有"/"前缀的问题

  • 修复 RocksDB 内存统计问题

  • 修复环路检测的两点成环无法检测的问题

  • 修复梭形算法计算结束后没有清理计数的问题

  • 修复 gremlin-console 无法工作的问题

  • 修复限制数目的按条件过滤邻接边问题

  • 修复 MySQL 执行 SQL 时的 auto-commit 问题

  • 修复通过两个索引查询时的超过 80w 限制的问题

  • 修复范围索引检查规则错误

  • 修复删除残留索引的错误

  • 修复当前线程为 task-worker 时关闭事务卡住的问题

  • 修复短路径查询出现 NoSuchElementException 的问题

  • 修复异步任务有时提交两次的问题

  • 修复值很小的 date 反序列化的问题

  • 修复遍历算法未检查起点/终点是否存在的问题

  • 修复 bin/start-hugegraph.sh 参数解析错误问题

  • 修复 gremlin-console 运行时的 log4j 错误信息的问题

内部修改

  • 延迟检查非空属性

  • 为存储后端增加查看集群节点信息的功能

  • 为 RocksDB 后端增加 compaction 配置项

  • 增加 vertex.check_adjacent_vertex_exist 配置项

  • 检查主键属性不允许为空

  • 增加图名字的合法性检查

  • 增加对非预期的 SysProp 的查询

  • 使用 disableTableAsync 加速 HBase 后端的数据清除

  • 允许 Gremlin 环境触发系统异步任务

  • 编码字符类型索引中的类型 ID

  • 安全模块允许 Cassandra 在执行 CQL 时按需创建线程

  • 将 GremlinServer 的默认通道设置为 WsAndHttpChannelizer

  • 将 Direction 和遍历算法的类导出到 Gremlin 环境

  • 增加顶点属性缓存限制

  • 优化列表属性的读

  • 增加缓存的 L1 和 L2 配置

  • 优化 EdgeId.asString() 方法

  • 优化当顶点没有属性时跳过后端存储查询

  • 创建名字相同但属性不同的元数据时抛出 ExistedException

  • 查询顶点和边后按需关闭事务

  • 当图关闭时清空缓存

  • 关闭图时加锁避免竞争问题

  • 优化顶点和边的删除效率,当提供 Label+ID 删除时免去查询

  • 使用 IntObjectMap 优化元数据缓存效率

  • 使用单个 Raft 节点管理目前的三个 store

  • 在重建索引时提前释放索引删除的锁

  • 在压缩和解压缩异步任务的结果时,使用 LZ4 替代 Gzip

  • 实现 RocksDB 删除 CF 操作的排他性来避免竞争

  • 修改 CSV reporter 的输出目录,并默认设置为不输出

其它

  • cherry-pick 0.10.4 版本的 bug 修复代码

  • Jackson 升级到 2.10.2 版本

  • Thanks 信息中增加对 Titan 的感谢

  • 适配 TinkerPop 测试

  • 修改允许输出的日志低等级为 TRACE

  • 增加 IDEA 的格式配置文件

  • 修复 Travis CI 太多错误信息的问题

Loader

功能更新

  • 支持读取 Hadoop 配置文件

  • 支持指定 Date 属性的时区

  • 支持从 ORC 压缩文件导入数据

  • 支持单条边插入时设置是否检查顶点

  • 支持从 Snappy-raw 压缩文件导入数据

  • 支持导入映射文件 2.0 版本

  • 增加一个将 utf8-bom 转换为 utf8 的命令行工具

  • 支持导入任务开始前清理元数据信息的功能

  • 支持 id 列作为属性存储

  • 支持导入任务配置 username

  • 支持从 Parquet 文件导入数据

  • 支持指定读取文件的大行数

  • 支持 HTTPS 协议

  • 支持时间戳作为日期格式

BUG修复

  • 修复行的 retainAll() 方法没有修改 names 和 values 数组

  • 修复 JSON 文件重新加载时的 NPE 问题

内部修改

  • 只打印一次插入错误信息以避免过多的错误信息

  • 拆分批量插入和单条插入的线程

  • CSV 的解析器改为 SimpleFlatMapper

  • 编码主键中的数字和日期字段

  • 确保主键列合法或者存在映射

  • 跳过主键属性全部为空的顶点

  • 在导入任务开始前设置为 LOADING 模式,并在导入完成后恢复原来模式

  • 改进停止导入任务的实现

Tools

功能更新

  • 支持 Memory 后端的备份功能

  • 支持 HTTPS 协议

  • 支持 migrate 子命令配置用户名和密码

  • 支持备份顶点和边时指定类型和过滤属性信息

BUG修复

  • 修复 dump 命令的 NPE 问题

内部修改

  • 在 backup/dump 之前清除分片文件

  • 改进 HugeGraph-tools 的报错信息

  • 改进 migrate 子命令,删除掉不支持的子配置


来自:https://mp.weixin.qq.com/s/CsQKpbX_HI2D2JyC2RIlgg


相关文章