blob: 1e2ebe2e98b48dd1f8b278ea23f9e54636da09bf [file] [log] [blame]
<!doctype html>
<html lang="cn" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="generator" content="Hugo 0.95.0" />
<link rel="canonical" type="text/html" href="/cn/docs/changelog/">
<link rel="alternate" type="application/rss&#43;xml" href="/cn/docs/changelog/index.xml">
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="/favicons/favicon.ico" >
<link rel="apple-touch-icon" href="/favicons/apple-touch-icon-180x180.png" sizes="180x180">
<link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16">
<link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="/favicons/android-36x36.png" sizes="36x36">
<link rel="icon" type="image/png" href="/favicons/android-48x48.png" sizes="48x48">
<link rel="icon" type="image/png" href="/favicons/android-72x72.png" sizes="72x72">
<link rel="icon" type="image/png" href="/favicons/android-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="/favicons/android-144x144.png" sizes="144x144">
<link rel="icon" type="image/png" href="/favicons/android-192x192.png" sizes="192x192">
<title>CHANGELOGS | HugeGraph</title>
<meta name="description" content="">
<meta property="og:title" content="CHANGELOGS" />
<meta property="og:description" content="Apache HugeGraph 官网" />
<meta property="og:type" content="website" />
<meta property="og:url" content="/cn/docs/changelog/" /><meta property="og:site_name" content="HugeGraph" />
<meta itemprop="name" content="CHANGELOGS">
<meta itemprop="description" content="Apache HugeGraph 官网"><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="CHANGELOGS"/>
<meta name="twitter:description" content="Apache HugeGraph 官网"/>
<link rel="preload" href="/scss/main.min.0dc89c707c94a8edbf7722b8ffab87c78b14c4c3e2532e1f45bd6d12c3ccf83b.css" as="style">
<link href="/scss/main.min.0dc89c707c94a8edbf7722b8ffab87c78b14c4c3e2532e1f45bd6d12c3ccf83b.css" rel="stylesheet" integrity="">
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<link rel="stylesheet" href="/css/prism.css"/>
<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-00000000-0', 'auto');
ga('send', 'pageview');
}
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
</head>
<body class="td-section">
<header>
<nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar">
<a class="navbar-brand" href="/cn/">
<span class="navbar-logo"><svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 16 16"><defs><style>.cls-1{fill:none;stroke:#fff;stroke-miterlimit:10;stroke-width:.5px;opacity:.3}.cls-2{fill:#229efa}.cls-3{fill:#9948f7}.cls-4{fill:#33bc7a}.cls-5{fill:url(#未命名的渐变_3)}.cls-6{fill:url(#未命名的渐变_13)}.cls-7{fill:url(#未命名的渐变_11)}</style><linearGradient id="未命名的渐变_3" x1="6.16" y1="14.63" x2="6.16" y2="6.01" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2e3192"/><stop offset="0" stop-color="#229efa"/><stop offset=".44" stop-color="#239cf8"/><stop offset=".6" stop-color="#2795f2"/><stop offset=".71" stop-color="#2d8ae8"/><stop offset=".81" stop-color="#3679d9"/><stop offset=".89" stop-color="#4263c6"/><stop offset=".95" stop-color="#5048af"/><stop offset="1" stop-color="#5c319b"/></linearGradient><linearGradient id="未命名的渐变_13" x1="10.75" y1="8.2" x2="4.49" y2="1.94" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#991146"/><stop offset="0" stop-color="#326b4e"/><stop offset=".02" stop-color="#3a685c"/><stop offset=".07" stop-color="#506180"/><stop offset=".13" stop-color="#645aa0"/><stop offset=".19" stop-color="#7554bc"/><stop offset=".26" stop-color="#8250d2"/><stop offset=".35" stop-color="#8d4ce3"/><stop offset=".45" stop-color="#944aee"/><stop offset=".6" stop-color="#9848f5"/><stop offset="1" stop-color="#9948f7"/></linearGradient><linearGradient id="未命名的渐变_11" x1="15.34" y1="6.67" x2="7.88" y2="10.98" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#33bc7a"/><stop offset=".45" stop-color="#32ba7a"/><stop offset=".61" stop-color="#2fb37c"/><stop offset=".73" stop-color="#29a87e"/><stop offset=".82" stop-color="#219782"/><stop offset=".9" stop-color="#168186"/><stop offset=".97" stop-color="#09668b"/><stop offset="1" stop-color="#03598e"/></linearGradient></defs><title>logo</title><rect class="cls-1" x="-143.14" y="-373.46" width="597.8" height="424.44"/><circle class="cls-2" cx="12.02" cy="1.83" r="1.33"/><circle class="cls-3" cx="12.02" cy="14.17" r="1.33"/><circle class="cls-4" cx="1.33" cy="8" r="1.33"/><path class="cls-5" d="M7.91 10h0a2.65 2.65.0 01-.23-3.74A1.75 1.75.0 017.91 6h0A2.66 2.66.0 014.4 6h0a1.81 1.81.0 01.24.24A2.65 2.65.0 014.4 10h0a2.62 2.62.0 00-.89 2 2.65 2.65.0 104.4-2z"/><path class="cls-6" d="M12.19 5.49a2.78 2.78.0 01-.5.11A2.64 2.64.0 018.76 3.5h0a2.65 2.65.0 10-2.6 3.17A2.6 2.6.0 007 6.53H7a2.65 2.65.0 013.44 2 2.94 2.94.0 010-.51 2.65 2.65.0 011.75-2.53z"/><path class="cls-7" d="M13 5.35a2.64 2.64.0 00-2.59 2.12h0a3 3 0 01-.08.32A2.65 2.65.0 017.54 9.58a2.86 2.86.0 00.37.41h0a2.63 2.63.0 01.9 2 2.84 2.84.0 01-.05.51 2.64 2.64.0 013.12-2.06l.32.08h0a2.6 2.6.0 00.84.14 2.65 2.65.0 100-5.3z"/></svg></span><span class="font-weight-bold">HugeGraph</span>
</a>
<div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar">
<ul class="navbar-nav mt-2 mt-lg-0">
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/cn/docs/" ><i class='fas fa-book pr-2'></i><span>Documentation</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="https://github.com/apache/incubator-hugegraph" target="_blank" ><i class='fab fa-github pr-2'></i><span>GitHub</span></a>
</li>
<li class="nav-item mr-4 mb-2 mb-lg-0">
<a class="nav-link" href="/cn/community/" ><span>Community</span></a>
</li>
<li class="nav-item dropdown mr-4 d-none d-lg-block">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
中文
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="/docs/changelog/">English</a>
</div>
</li>
</ul>
</div>
<div class="navbar-nav d-none d-lg-block"></div>
</nav>
</header>
<div class="container-fluid td-outer">
<div class="td-main">
<div class="row flex-xl-nowrap">
<main class="col-12 col-md-9 col-xl-8 pl-md-5" role="main">
<div class="td-content">
<div class="pageinfo pageinfo-primary d-print-none">
<p>
This is the multi-page printable view of this section.
<a href="#" onclick="print();return false;">Click here to print</a>.
</p><p>
<a href="/cn/docs/changelog/">Return to the regular view of this page</a>.
</p>
</div>
<h1 class="title">CHANGELOGS</h1>
<ul>
<li>1: <a href="#pg-6b37a0af49c5e6b45aeac03f2a71eab6">HugeGraph 0.12 Release Notes</a></li>
<li>2: <a href="#pg-8ae4f43f2b0af1988d9f0a8cb3b1c073">HugeGraph 0.11 Release Notes</a></li>
<li>3: <a href="#pg-55638b919c2ec7668f5d3de2de0842d7">HugeGraph 0.10 Release Notes</a></li>
<li>4: <a href="#pg-5d75039168e433749fe461b9e0194290">HugeGraph 0.9 Release Notes</a></li>
<li>5: <a href="#pg-f98fd193653a4b93fb4b460f9f1333f8">HugeGraph 0.8 Release Notes</a></li>
<li>6: <a href="#pg-d2f7c78812d582db588f4a926a665a30">HugeGraph 0.7 Release Notes</a></li>
<li>7: <a href="#pg-a40680f3cb756d27c8ad790330229be2">HugeGraph 0.6 Release Notes</a></li>
<li>8: <a href="#pg-04bf2aaf34cd0b77f14833dec809fab4">HugeGraph 0.5 Release Notes</a></li>
<li>9: <a href="#pg-f3de79fd20e587ee8e2ed9c14e6b546e">HugeGraph 0.4.4 Release Notes</a></li>
<li>10: <a href="#pg-ac8684ea0cd7198b6b256e2e5df6b75f">HugeGraph 0.3.3 Release Notes</a></li>
<li>11: <a href="#pg-3eb16892048936d4f8440f9216d11b41">HugeGraph 0.2 Release Notes</a></li>
<li>12: <a href="#pg-add34161ef49858de8d3ba17c475406f">HugeGraph 0.2.4 Release Notes</a></li>
</ul>
<div class="content">
</div>
</div>
<div class="td-content" style="">
<h1 id="pg-6b37a0af49c5e6b45aeac03f2a71eab6">1 - HugeGraph 0.12 Release Notes</h1>
<h3 id="api--client">API &amp; Client</h3>
<h4 id="接口更新">接口更新</h4>
<ul>
<li>支持 https + auth 模式连接图服务 (hugegraph-client #109 #110)</li>
<li>统一 kout/kneighbor 等 OLTP 接口的参数命名及默认值(hugegraph-client #122 #123)</li>
<li>支持 RESTful 接口利用 P.textcontains() 进行属性全文检索(hugegraph #1312)</li>
<li>增加 graph_read_mode API 接口,以切换 OLTP、OLAP 读模式(hugegraph #1332)</li>
<li>支持 list/set 类型的聚合属性 aggregate property(hugegraph #1332)</li>
<li>权限接口增加 METRICS 资源类型(hugegraph #1355、hugegraph-client #114)</li>
<li>权限接口增加 SCHEMA 资源类型(hugegraph #1362、hugegraph-client #117)</li>
<li>增加手动 compact API 接口,支持 rocksdb/cassandra/hbase 后端(hugegraph #1378)</li>
<li>权限接口增加 login/logout API,支持颁发或回收 Token(hugegraph #1500、hugegraph-client #125)</li>
<li>权限接口增加 project API(hugegraph #1504、hugegraph-client #127)</li>
<li>增加 OLAP 回写接口,支持 cassandra/rocksdb 后端(hugegraph #1506、hugegraph-client #129)</li>
<li>增加返回一个图的所有 Schema 的 API 接口(hugegraph #1567、hugegraph-client #134)</li>
<li>变更 property key 创建与更新 API 的 HTTP 返回码为 202(hugegraph #1584)</li>
<li>增强 Text.contains() 支持3种格式:&ldquo;word&rdquo;、&quot;(word)&quot;、&quot;(word1|word2|word3)&quot;(hugegraph #1652)</li>
<li>统一了属性中特殊字符的行为(hugegraph #1670 #1684)</li>
<li>支持动态创建图实例、克隆图实例、删除图实例(hugegraph-client #135)</li>
</ul>
<h4 id="其它修改">其它修改</h4>
<ul>
<li>修复在恢复 index label 时 IndexLabelV56 id 丢失的问题(hugegraph-client #118)</li>
<li>为 Edge 类增加 name() 方法(hugegraph-client #121)</li>
</ul>
<h3 id="core--server">Core &amp; Server</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>支持动态创建图实例(hugegraph #1065)</li>
<li>支持通过 Gremlin 调用 OLTP 算法(hugegraph #1289)</li>
<li>支持多集群使用同一个图权限服务,以共享权限信息(hugegraph #1350)</li>
<li>支持跨多节点的 Cache 缓存同步(hugegraph #1357)</li>
<li>支持 OLTP 算法使用原生集合以降低 GC 压力提升性能(hugegraph #1409)</li>
<li>支持对新增的 Raft 节点打快照或恢复快照(hugegraph #1439)</li>
<li>支持对集合属性建立二级索引 Secondary Index(hugegraph #1474)</li>
<li>支持审计日志,及其压缩、限速等功能(hugegraph #1492 #1493)</li>
<li>支持 OLTP 算法使用高性能并行无锁原生集合以提升性能(hugegraph #1552)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>修复带权最短路径算法(weighted shortest path)NPE问题 (hugegraph #1250)</li>
<li>增加 Raft 相关的安全操作白名单(hugegraph #1257)</li>
<li>修复 RocksDB 实例未正确关闭的问题(hugegraph #1264)</li>
<li>在清空数据 truncate 操作之后,显示的发起写快照 Raft Snapshot(hugegraph #1275)</li>
<li>修复 Raft Leader 在收到 Follower 转发请求时未更新缓存的问题(hugegraph #1279)</li>
<li>修复带权最短路径算法(weighted shortest path)结果不稳定的问题(hugegraph #1280)</li>
<li>修复 rays 算法 limit 参数不生效问题(hugegraph #1284)</li>
<li>修复 neighborrank 算法 capacity 参数未检查的问题(hugegraph #1290)</li>
<li>修复 PostgreSQL 因为不存在与用户同名的数据库而初始化失败的问题(hugegraph #1293)</li>
<li>修复 HBase 后端当启用 Kerberos 时初始化失败的问题(hugegraph #1294)</li>
<li>修复 HBase/RocksDB 后端 shard 结束判断错误问题(hugegraph #1306)</li>
<li>修复带权最短路径算法(weighted shortest path)未检查目标顶点存在的问题(hugegraph #1307)</li>
<li>修复 personalrank/neighborrank 算法中非 String 类型 id 的问题(hugegraph #1310)</li>
<li>检查必须是 master 节点才允许调度 gremlin job(hugegraph #1314)</li>
<li>修复 g.V().hasLabel().limit(n) 因为索引覆盖导致的部分结果不准确问题(hugegraph #1316)</li>
<li>修复 jaccardsimilarity 算法当并集为空时报 NaN 错误的问题(hugegraph #1324)</li>
<li>修复 Raft Follower 节点操作 Schema 多节点之间数据不同步问题(hugegraph #1325)</li>
<li>修复因为 tx 未关闭导致的 TTL 不生效问题(hugegraph #1330)</li>
<li>修复 gremlin job 的执行结果大于 Cassandra 限制但小于任务限制时的异常处理(hugegraph #1334)</li>
<li>检查权限接口 auth-delete 和 role-get API 操作时图必须存在(hugegraph #1338)</li>
<li>修复异步任务结果中包含 path/tree 时系列化不正常的问题(hugegraph #1351)</li>
<li>修复初始化 admin 用户时的 NPE 问题(hugegraph #1360)</li>
<li>修复异步任务原子性操作问题,确保 update/get fields 及 re-schedule 的原子性(hugegraph #1361)</li>
<li>修复权限 NONE 资源类型的问题(hugegraph #1362)</li>
<li>修复启用权限后,truncate 操作报错 SecurityException 及管理员信息丢失问题(hugegraph #1365)</li>
<li>修复启用权限后,解析数据忽略了权限异常的问题(hugegraph #1380)</li>
<li>修复 AuthManager 在初始化时会尝试连接其它节点的问题(hugegraph #1381)</li>
<li>修复特定的 shard 信息导致 base64 解码错误的问题(hugegraph #1383)</li>
<li>修复启用权限后,使用 consistent-hash LB 在校验权限时,creator 为空的问题(hugegraph #1385)</li>
<li>改进权限中 VAR 资源不再依赖于 VERTEX 资源(hugegraph #1386)</li>
<li>规范启用权限后,Schema 操作仅依赖具体的资源(hugegraph #1387)</li>
<li>规范启用权限后,部分操作由依赖 STATUS 资源改为依赖 ANY 资源(hugegraph #1391)</li>
<li>规范启用权限后,禁止初始化管理员密码为空(hugegraph #1400)</li>
<li>检查创建用户时 username/password 不允许为空(hugegraph #1402)</li>
<li>修复更新 Label 时,PrimaryKey 或 SortKey 被设置为可空属性的问题(hugegraph #1406)</li>
<li>修复 ScyllaDB 丢失分页结果问题(hugegraph #1407)</li>
<li>修复带权最短路径算法(weighted shortest path)权重属性强制转换为 double 的问题(hugegraph #1432)</li>
<li>统一 OLTP 算法中的 degree 参数命名(hugegraph #1433)</li>
<li>修复 fusiformsimilarity 算法当 similars 为空的时候返回所有的顶点问题(hugegraph #1434)</li>
<li>改进 paths 算法,当起始点与目标点相同时应该返回空路径(hugegraph #1435)</li>
<li>修改 kout/kneighbor 的 limit 参数默认值 10 为 10000000(hugegraph #1436)</li>
<li>修复分页信息中的 &lsquo;+&rsquo; 被 URL 编码为空格的问题(hugegraph #1437)</li>
<li>改进边更新接口的错误提示信息(hugegraph #1443)</li>
<li>修复 kout 算法 degree 未在所有 label 范围生效的问题(hugegraph #1459)</li>
<li>改进 kneighbor/kout 算法,起始点不允许出现在结果集中(hugegraph #1459 #1463)</li>
<li>统一 kout/kneighbor 的 Get 和 Post 版本行为(hugegraph #1470)</li>
<li>改进创建边时顶点类型不匹配的错误提示信息(hugegraph #1477)</li>
<li>修复 Range Index 的残留索引问题(hugegraph #1498)</li>
<li>修复权限操作未失效缓存的问题(hugegraph #1528)</li>
<li>修复 sameneighbor 的 limit 参数默认值 10 为 10000000(hugegraph #1530)</li>
<li>修复 clear API 不应该所有后端都调用 create snapshot 的问题(hugegraph #1532)</li>
<li>修复当 loading 模式时创建 Index Label 阻塞问题(hugegraph #1548)</li>
<li>修复增加图到 project 或从 project 移除图的问题(hugegraph #1562)</li>
<li>改进权限操作的一些错误提示信息(hugegraph #1563)</li>
<li>支持浮点属性设置为 Infinity/NaN 的值(hugegraph #1578)</li>
<li>修复 Raft 启用 safe_read 时的 quorum read 问题(hugegraph #1618)</li>
<li>修复 token 过期时间配置的单位问题(hugegraph #1625)</li>
<li>修复 MySQL Statement 资源泄露问题(hugegraph #1627)</li>
<li>修复竞争条件下 Schema.getIndexLabel 获取不到数据的问题(hugegraph #1629)</li>
<li>修复 HugeVertex4Insert 无法系列化问题(hugegraph #1630)</li>
<li>修复 MySQL count Statement 未关闭问题(hugegraph #1640)</li>
<li>修复当删除 Index Label 异常时,导致状态不同步问题(hugegraph #1642)</li>
<li>修复 MySQL 执行 gremlin timeout 导致的 statement 未关闭问题(hugegraph #1643)</li>
<li>改进 Search Index 以兼容特殊 Unicode 字符:\u0000 to \u0003(hugegraph #1659)</li>
<li>修复 #1659 引入的 Char 未转化为 String 的问题(hugegraph #1664)</li>
<li>修复 has() + within() 查询时结果异常问题(hugegraph #1680)</li>
<li>升级 Log4j 版本到 2.17 以修复安全漏洞(hugegraph #1686 #1698 #1702)</li>
<li>修复 HBase 后端 shard scan 中 startkey 包含空串时 NPE 问题(hugegraph #1691)</li>
<li>修复 paths 算法在深层环路遍历时性能下降问题 (hugegraph #1694)</li>
<li>改进 personalrank 算法的参数默认值及错误检查(hugegraph #1695)</li>
<li>修复 RESTful 接口 P.within 条件不生效问题(hugegraph #1704)</li>
<li>修复启用权限时无法动态创建图的问题(hugegraph #1708)</li>
</ul>
<h4 id="配置项修改">配置项修改:</h4>
<ul>
<li>共享 SSL 相关配置项命名(hugegraph #1260)</li>
<li>支持 RocksDB 配置项 rocksdb.level_compaction_dynamic_level_bytes(hugegraph #1262)</li>
<li>去除 RESFful Server 服务协议配置项 restserver.protocol,自动提取 URL 中的 Schema(hugegraph #1272)</li>
<li>增加 PostgreSQL 配置项 jdbc.postgresql.connect_database(hugegraph #1293)</li>
<li>增加针对顶点主键是否编码的配置项 vertex.encode_primary_key_number(hugegraph #1323)</li>
<li>增加针对聚合查询是否启用索引优化的配置项 query.optimize_aggregate_by_index(hugegraph #1549)</li>
<li>修改 cache_type 的默认值 l1 为 l2(hugegraph #1681)</li>
<li>增加 JDBC 强制重连配置项 jdbc.forced_auto_reconnect(hugegraph #1710)</li>
</ul>
<h4 id="其它修改-1">其它修改</h4>
<ul>
<li>增加默认的 SSL Certificate 文件(hugegraph #1254)</li>
<li>OLTP 并行请求共享线程池,而非每个请求使用单独的线程池(hugegraph #1258)</li>
<li>修复 Example 的问题(hugegraph #1308)</li>
<li>使用 jraft 版本 1.3.5(hugegraph #1313)</li>
<li>如果启用了 Raft 模式时,关闭 RocksDB 的 WAL(hugegraph #1318)</li>
<li>使用 TarLz4Util 来提升快照 Snapshot 压缩的性能(hugegraph #1336)</li>
<li>升级存储的版本号(store version),因为 property key 增加了 read frequency(hugegraph #1341)</li>
<li>顶点/边 vertex/edge 的 Get API 使用 queryVertex/queryEdge 方法来替代 iterator 方法(hugegraph #1345)</li>
<li>支持 BFS 优化的多度查询(hugegraph #1359)</li>
<li>改进 RocksDB deleteRange() 带来的查询性能问题(hugegraph #1375)</li>
<li>修复 travis-ci cannot find symbol Namifiable 问题(hugegraph #1376)</li>
<li>确保 RocksDB 快照的磁盘与 data path 指定的一致(hugegraph #1392)</li>
<li>修复 MacOS 空闲内存 free_memory 计算不准确问题(hugegraph #1396)</li>
<li>增加 Raft onBusy 回调来配合限速(hugegraph #1401)</li>
<li>升级 netty-all 版本 4.1.13.Final 到 4.1.42.Final(hugegraph #1403)</li>
<li>支持 TaskScheduler 暂停当设置为 loading 模式时(hugegraph #1414)</li>
<li>修复 raft-tools 脚本的问题(hugegraph #1416)</li>
<li>修复 license params 问题(hugegraph #1420)</li>
<li>提升写权限日志的性能,通过 batch flush &amp; async write 方式改进(hugegraph #1448)</li>
<li>增加 MySQL 连接 URL 的日志记录(hugegraph #1451)</li>
<li>提升用户信息校验性能(hugegraph# 1460)</li>
<li>修复 TTL 因为起始时间问题导致的错误(hugegraph #1478)</li>
<li>支持日志配置的热加载及对审计日志的压缩(hugegraph #1492)</li>
<li>支持针对用户级别的审计日志的限速(hugegraph #1493)</li>
<li>缓存 RamCache 支持用户自定义的过期时间(hugegraph #1494)</li>
<li>在 auth client 端缓存 login role 以避免重复的 RPC 调用(hugegraph #1507)</li>
<li>修复 IdSet.contains() 未复写 AbstractCollection.contains() 问题(hugegraph #1511)</li>
<li>修复当 commitPartOfEdgeDeletions() 失败时,未回滚 rollback 的问题(hugegraph #1513)</li>
<li>提升 Cache metrics 性能(hugegraph #1515)</li>
<li>当发生 license 操作错误时,增加打印异常日志(hugegraph #1522)</li>
<li>改进 SimilarsMap 实现(hugegraph #1523)</li>
<li>使用 tokenless 方式来更新 coverage(hugegraph #1529)</li>
<li>改进 project update 接口的代码(hugegraph #1537)</li>
<li>允许从 option() 访问 GRAPH_STORE(hugegraph #1546)</li>
<li>优化 kout/kneighbor 的 count 查询以避免拷贝集合(hugegraph #1550)</li>
<li>优化 shortestpath 遍历方式,以数据量少的一端优先遍历(hugegraph #1569)</li>
<li>完善 rocksdb.data_disks 配置项的 allowed keys 提示信息(hugegraph #1585)</li>
<li>为 number id 优化 OLTP 遍历中的 id2code 方法性能(hugegraph #1623)</li>
<li>优化 HugeElement.getProperties() 返回 Collection&lt;Property&gt;(hugegraph #1624)</li>
<li>增加 APACHE PROPOSAL 文件(hugegraph #1644)</li>
<li>改进 close tx 的流程(hugegraph #1655)</li>
<li>当 reset() 时为 MySQL close 捕获所有类型异常(hugegraph #1661)</li>
<li>改进 OLAP property 模块代码(hugegraph #1675)</li>
<li>改进查询模块的执行性能(hugegraph #1711)</li>
</ul>
<h3 id="loader">Loader</h3>
<ul>
<li>支持导入 Parquet 格式文件(hugegraph-loader #174)</li>
<li>支持 HDFS Kerberos 权限验证(hugegraph-loader #176)</li>
<li>支持 HTTPS 协议连接到服务端导入数据(hugegraph-loader #183)</li>
<li>修复 trust store file 路径问题(hugegraph-loader #186)</li>
<li>处理 loading mode 重置的异常(hugegraph-loader #187)</li>
<li>增加在插入数据时对非空属性的检查(hugegraph-loader #190)</li>
<li>修复客户端与服务端时区不同导致的时间判断问题(hugegraph-loader #192)</li>
<li>优化数据解析性能(hugegraph-loader #194)</li>
<li>当用户指定了文件头时,检查其必须不为空(hugegraph-loader #195)</li>
<li>修复示例程序中 MySQL struct.json 格式问题(hugegraph-loader #198)</li>
<li>修复顶点边导入速度不精确的问题(hugegraph-loader #200 #205)</li>
<li>当导入启用 check-vertex 时,确保先导入顶点再导入边(hugegraph-loader #206)</li>
<li>修复边 Json 数据导入格式不统一时数组溢出的问题(hugegraph-loader #211)</li>
<li>修复因边 mapping 文件不存在导致的 NPE 问题(hugegraph-loader #213)</li>
<li>修复读取时间可能出现负数的问题(hugegraph-loader #215)</li>
<li>改进目录文件的日志打印(hugegraph-loader #223)</li>
<li>改进 loader 的的 Schema 处理流程(hugegraph-loader #230)</li>
</ul>
<h3 id="tools">Tools</h3>
<ul>
<li>支持 HTTPS 协议(hugegraph-tools #71)</li>
<li>移除 &ndash;protocol 参数,直接从URL中自动提取(hugegraph-tools #72)</li>
<li>支持将数据 dump 到 HDFS 文件系统(hugegraph-tools #73)</li>
<li>修复 trust store file 路径问题(hugegraph-tools #75)</li>
<li>支持权限信息的备份恢复(hugegraph-tools #76)</li>
<li>支持无参数的 Printer 打印(hugegraph-tools #79)</li>
<li>修复 MacOS free_memory 计算问题(hugegraph-tools #82)</li>
<li>支持备份恢复时指定线程数hugegraph-tools #83)</li>
<li>支持动态创建图、克隆图、删除图等命令(hugegraph-tools #95)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-8ae4f43f2b0af1988d9f0a8cb3b1c073">2 - HugeGraph 0.11 Release Notes</h1>
<h3 id="api--client">API &amp; Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>支持梭形相似度算法(hugegraph #671,hugegraph-client #62)</li>
<li>支持创建 Schema 时,记录创建的时间(hugegraph #746,hugegraph-client #69)</li>
<li>支持 RESTful API 中基于属性的范围查询顶点/边(hugegraph #782,hugegraph-client #73)</li>
<li>支持顶点和边的 TTL (hugegraph #794,hugegraph-client #83)</li>
<li>统一 RESTful API Server 和 Gremlin Server 的日期格式为字符串(hugegraph #1014,hugegraph-client #82)</li>
<li>支持共同邻居,Jaccard 相似度,全部最短路径,带权最短路径和单源最短路径5种遍历算法(hugegraph #936,hugegraph-client #80)</li>
<li>支持用户认证和细粒度权限控制(hugegraph #749,hugegraph #985,hugegraph-client #81)</li>
<li>支持遍历 API 的顶点计数功能(hugegraph #995,hugegraph-client #84)</li>
<li>支持 HTTPS 协议(hugegrap #1036,hugegraph-client #85)</li>
<li>支持创建索引时控制是否重建索引(hugegraph #1106,hugegraph-client #91)</li>
<li>支持定制的 kout/kneighbor,多点最短路径,最相似 Jaccard 点和模板路径5种遍历算法(hugegraph #1174,hugegraph-client #100,hugegraph-client #106)</li>
</ul>
<h4 id="内部修改">内部修改</h4>
<ul>
<li>启动 HugeGraphServer 出现异常时快速失败(hugegraph #748)</li>
<li>定义 LOADING 模式来加速导入(hugegraph-client #101)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>支持多属性顶点/边的分页查询(hugegraph #759)</li>
<li>支持聚合运算的性能优化(hugegraph #813)</li>
<li>支持堆外缓存(hugegraph #846)</li>
<li>支持属性权限管理(hugegraph #971)</li>
<li>支持 MySQL 和 Memory 后端分片,并改进 HBase 分片方法(hugegraph #974)</li>
<li>支持基于 Raft 的分布式一致性协议(hugegraph #1020)</li>
<li>支持元数据拷贝功能(hugegraph #1024)</li>
<li>支持集群的异步任务调度功能(hugegraph #1030)</li>
<li>支持发生 OOM 时打印堆信息功能(hugegraph #1093)</li>
<li>支持 Raft 状态机更新缓存(hugegraph #1119)</li>
<li>支持 Raft 节点管理功能(hugegraph #1137)</li>
<li>支持限制查询请求速率的功能(hugegraph #1158)</li>
<li>支持顶点/边的属性默认值功能(hugegraph #1182)</li>
<li>支持插件化查询加速机制 RamTable(hugegraph #1183)</li>
<li>支持索引重建失败时设置为 INVALID 状态(hugegraph #1226)</li>
<li>支持 HBase 启用 Kerberos 认证(hugegraph #1234)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>修复配置权限时 start-hugegraph.sh 的超时问题(hugegraph #761)</li>
<li>修复在 studio 执行 gremlin 时的 MySQL 连接失败问题(hugegraph #765)</li>
<li>修复 HBase 后端 truncate 时出现的 TableNotFoundException(hugegraph #771)</li>
<li>修复限速配置项值未检查的问题(hugegraph #773)</li>
<li>修复唯一索引(Unique Index)的返回的异常信息不准确问题(hugegraph #797)</li>
<li>修复 RocksDB 后端执行 g.V().hasLabel().count() 时 OOM 问题 (hugegraph-798)</li>
<li>修复 traverseByLabel() 分页设置错误问题(hugegraph #805)</li>
<li>修复根据 ID 和 SortKeys 更新边属性时误创建边的问题(hugegraph #819)</li>
<li>修复部分存储后端的覆盖写问题(hugegraph #820)</li>
<li>修复保存执行失败的异步任务时无法取消的问题(hugegraph #827)</li>
<li>修复 MySQL 后端在 SSL 模式下无法打开数据库的问题(hugegraph #842)</li>
<li>修复索引查询时 offset 无效问题(hugegraph #866)</li>
<li>修复 Gremlin 中绝对路径泄露的安全问题(hugegraph #871)</li>
<li>修复 reconnectIfNeeded() 方法的 NPE 问题(hugegraph #874)</li>
<li>修复 PostgreSQL 的 JDBC_URL 配置没有&quot;/&ldquo;前缀的问题(hugegraph #891)</li>
<li>修复 RocksDB 内存统计问题(hugegraph #937)</li>
<li>修复环路检测的两点成环无法检测的问题(hugegraph #939)</li>
<li>修复梭形算法计算结束后没有清理计数的问题(hugegraph #947)</li>
<li>修复 gremlin-console 无法工作的问题(hugegraph #1027)</li>
<li>修复限制数目的按条件过滤邻接边问题(hugegraph #1057)</li>
<li>修复 MySQL 执行 SQL 时的 auto-commit 问题(hugegraph #1064)</li>
<li>修复通过两个索引查询时发生超时 80w 限制的问题(hugegraph #1088)</li>
<li>修复范围索引检查规则错误(hugegraph #1090)</li>
<li>修复删除残留索引的错误(hugegraph #1101)</li>
<li>修复当前线程为 task-worker 时关闭事务卡住的问题(hugegraph #1111)</li>
<li>修复最短路径查询出现 NoSuchElementException 的问题(hugegraph #1116)</li>
<li>修复异步任务有时提交两次的问题(hugegraph #1130)</li>
<li>修复值很小的 date 反序列化的问题(hugegraph #1152)</li>
<li>修复遍历算法未检查起点或者终点是否存在的问题(hugegraph #1156)</li>
<li>修复 bin/start-hugegraph.sh 参数解析错误的问题(hugegraph #1178)</li>
<li>修复 gremlin-console 运行时的 log4j 错误信息的问题(hugegraph #1229)</li>
</ul>
<h4 id="内部修改-1">内部修改</h4>
<ul>
<li>延迟检查非空属性(hugegraph #756)</li>
<li>为存储后端增加查看集群节点信息的功能 (hugegraph #821)</li>
<li>为 RocksDB 后端增加 compaction 高级配置项(hugegraph #825)</li>
<li>增加 vertex.check_adjacent_vertex_exist 配置项(hugegraph #837)</li>
<li>检查主键属性不允许为空(hugegraph #847)</li>
<li>增加图名字的合法性检查(hugegraph #854)</li>
<li>增加对非预期的 SysProp 的查询(hugegraph #862)</li>
<li>使用 disableTableAsync 加速 HBase 后端的数据清除(hugegraph #868)</li>
<li>允许 Gremlin 环境触发系统异步任务(hugegraph #892)</li>
<li>编码字符类型索引中的类型 ID(hugegraph #894)</li>
<li>安全模块允许 Cassandra 在执行 CQL 时按需创建线程(hugegraph #896)</li>
<li>将 GremlinServer 的默认通道设置为 WsAndHttpChannelizer(hugegraph #903)</li>
<li>将 Direction 和遍历算法的类导出到 Gremlin 环境(hugegraph #904)</li>
<li>增加顶点属性缓存限制(hugegraph #941,hugegraph #942)</li>
<li>优化列表属性的读(hugegraph #943)</li>
<li>增加缓存的 L1 和 L2 配置(hugegraph #945)</li>
<li>优化 EdgeId.asString() 方法(hugegraph #946)</li>
<li>优化当顶点没有属性时跳过后端存储查询(hugegraph #951)</li>
<li>创建名字相同但属性不同的元数据时抛出 ExistedException(hugegraph #1009)</li>
<li>查询顶点和边后按需关闭事务(hugegraph #1039)</li>
<li>当图关闭时清空缓存(hugegraph #1078)</li>
<li>关闭图时加锁避免竞争问题(hugegraph #1104)</li>
<li>优化顶点和边的删除效率,当提供 Label+ID 删除时免去查询(hugegraph #1150)</li>
<li>使用 IntObjectMap 优化元数据缓存效率(hugegraph #1185)</li>
<li>使用单个 Raft 节点管理目前的三个 store(hugegraph #1187)</li>
<li>在重建索引时提前释放索引删除的锁(hugegraph #1193)</li>
<li>在压缩和解压缩异步任务的结果时,使用 LZ4 替代 Gzip(hugegraph #1198)</li>
<li>实现 RocksDB 删除 CF 操作的排他性来避免竞争(hugegraph #1202)</li>
<li>修改 CSV reporter 的输出目录,并默认设置为不输出(hugegraph #1233)</li>
</ul>
<h4 id="其它">其它</h4>
<ul>
<li>cherry-pick 0.10.4 版本的 bug 修复代码(hugegraph #785,hugegraph #1047)</li>
<li>Jackson 升级到 2.10.2 版本(hugegraph #859)</li>
<li>Thanks 信息中增加对 Titan 的感谢(hugegraph #906)</li>
<li>适配 TinkerPop 测试(hugegraph #1048)</li>
<li>修改允许输出的日志最低等级为 TRACE(hugegraph #1050)</li>
<li>增加 IDEA 的格式配置文件(hugegraph #1060)</li>
<li>修复 Travis CI 太多错误信息的问题(hugegraph #1098)</li>
</ul>
<h3 id="loader">Loader</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>支持读取 Hadoop 配置文件(hugegraph-loader #105)</li>
<li>支持指定 Date 属性的时区(hugegraph-loader #107)</li>
<li>支持从 ORC 压缩文件导入数据(hugegraph-loader #113)</li>
<li>支持单条边插入时设置是否检查顶点(hugegraph-loader #117)</li>
<li>支持从 Snappy-raw 压缩文件导入数据(hugegraph-loader #119)</li>
<li>支持导入映射文件 2.0 版本(hugegraph-loader #121)</li>
<li>增加一个将 utf8-bom 转换为 utf8 的命令行工具(hugegraph-loader #128)</li>
<li>支持导入任务开始前清理元数据信息的功能(hugegraph-loader #140)</li>
<li>支持 id 列作为属性存储(hugegraph-loader #143)</li>
<li>支持导入任务配置 username(hugegraph-loader #146)</li>
<li>支持从 Parquet 文件导入数据(hugegraph-loader #153)</li>
<li>支持指定读取文件的最大行数(hugegraph-loader #159)</li>
<li>支持 HTTPS 协议(hugegraph-loader #161)</li>
<li>支持时间戳作为日期格式(hugegraph-loader #164)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>修复行的 retainAll() 方法没有修改 names 和 values 数组(hugegraph-loader #110)</li>
<li>修复 JSON 文件重新加载时的 NPE 问题(hugegraph-loader #112)</li>
</ul>
<h4 id="内部修改-2">内部修改</h4>
<ul>
<li>只打印一次插入错误信息,以避免过多的错误信息(hugegraph-loader #118)</li>
<li>拆分批量插入和单条插入的线程(hugegraph-loader #120)</li>
<li>CSV 的解析器改为 SimpleFlatMapper(hugegraph-loader #124)</li>
<li>编码主键中的数字和日期字段(hugegraph-loader #136)</li>
<li>确保主键列合法或者存在映射(hugegraph-loader #141)</li>
<li>跳过主键属性全部为空的顶点(hugegraph-loader #166)</li>
<li>在导入任务开始前设置为 LOADING 模式,并在导入完成后恢复原来模式(hugegraph-loader #169)</li>
<li>改进停止导入任务的实现(hugegraph-loader #170)</li>
</ul>
<h3 id="tools">Tools</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>支持 Memory 后端的备份功能 (hugegraph-tools #53)</li>
<li>支持 HTTPS 协议(hugegraph-tools #58)</li>
<li>支持 migrate 子命令配置用户名和密码(hugegraph-tools #61)</li>
<li>支持备份顶点和边时指定类型和过滤属性信息(hugegraph-tools #63)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<ul>
<li>修复 dump 命令的 NPE 问题(hugegraph-tools #49)</li>
</ul>
<h4 id="内部修改-3">内部修改</h4>
<ul>
<li>在 backup/dump 之前清除分片文件(hugegraph-tools #53)</li>
<li>改进 HugeGraph-tools 的报错信息(hugegraph-tools #67)</li>
<li>改进 migrate 子命令,删除掉不支持的子配置(hugegraph-tools #68)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-55638b919c2ec7668f5d3de2de0842d7">3 - HugeGraph 0.10 Release Notes</h1>
<h3 id="api--client">API &amp; Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>支持 HugeGraphServer 服务端内存紧张时返回错误拒绝请求 (hugegraph #476)</li>
<li>支持 API 白名单和 HugeGraphServer GC 频率控制功能 (hugegraph #522)</li>
<li>支持 Rings API 的 source_in_ring 参数 (hugegraph #528,hugegraph-client #48)</li>
<li>支持批量按策略更新属性接口 (hugegraph #493,hugegraph-client #46)</li>
<li>支持 Shard Index 前缀与范围检索索引 (hugegraph #574,hugegraph-client #56)</li>
<li>支持顶点的 UUID ID 类型 (hugegraph #618,hugegraph-client #59)</li>
<li>支持唯一性约束索引(Unique Index) (hugegraph #636,hugegraph-client #60)</li>
<li>支持 API 请求超时功能 (hugegraph #674)</li>
<li>支持根据名称列表查询 schema (hugegraph #686,hugegraph-client #63)</li>
<li>支持按分页方式获取异步任务 (hugegraph #720)</li>
</ul>
<h4 id="内部修改">内部修改</h4>
<ul>
<li>保持 traverser 的参数与 server 端一致 (hugegraph-client #44)</li>
<li>支持在 Shard 内使用分页方式遍历顶点或者边的方法 (hugegraph-client #47)</li>
<li>支持 Gremlin 查询结果持有 GraphManager (hugegraph-client #49)</li>
<li>改进 RestClient 的连接参数 (hugegraph-client #52)</li>
<li>增加 Date 类型属性的测试 (hugegraph-client #55)</li>
<li>适配 HugeGremlinException 异常 (hugegraph-client #57)</li>
<li>增加新功能的版本匹配检查 (hugegraph-client #66)</li>
<li>适配 UUID 的序列化 (hugegraph-client #67)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>支持 PostgreSQL 和 CockroachDB 存储后端 (hugegraph #484)</li>
<li>支持负数索引 (hugegraph #513)</li>
<li>支持边的 Vertex + SortKeys 的前缀范围查询 (hugegraph #574)</li>
<li>支持顶点的邻接边按分页方式查询 (hugegraph #659)</li>
<li>禁止通过 Gremlin 进行敏感操作 (hugegraph #176)</li>
<li>支持 Lic 校验功能 (hugegraph #645)</li>
<li>支持 Search Index 查询结果按匹配度排序的功能 (hugegraph #653)</li>
<li>升级 tinkerpop 至版本 3.4.3 (hugegraph #648)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>修复按分页方式查询边时剩余数目(remaining count)错误 (hugegraph #515)</li>
<li>修复清空后端时边缓存未清空的问题 (hugegraph #488)</li>
<li>修复无法插入 List<Date> 类型的属性问题 (hugegraph #534)</li>
<li>修复 PostgreSQL 后端的 existDatabase(), clearBackend() 和 rollback()功能 (hugegraph #531)</li>
<li>修复程序关闭时 HugeGraphServer 和 GremlinServer 残留问题 (hugegraph #554)</li>
<li>修复在 LockTable 中重复抓锁的问题 (hugegraph #566)</li>
<li>修复从 Edge 中获取的 Vertex 没有属性的问题 (hugegraph #604)</li>
<li>修复交叉关闭 RocksDB 的连接池问题 (hugegraph #598)</li>
<li>修复在超级点查询时 limit 失效问题 (hugegraph #607)</li>
<li>修复使用 Equal 条件和分页的情况下查询 Range Index 只返回第一页的问题 (hugegraph #614)</li>
<li>修复查询 limit 在删除部分数据后失效的问题 (hugegraph #610)</li>
<li>修复 Example1 的查询错误 (hugegraph #638)</li>
<li>修复 HBase 的批量提交部分错误问题 (hugegraph #634)</li>
<li>修复索引搜索时 compareNumber() 方法的空指针问题 (hugegraph #629)</li>
<li>修复更新属性值为已经删除的顶点或边的属性时失败问题 (hugegraph #679)</li>
<li>修复 system 类型残留索引无法清除问题 (hugegraph #675)</li>
<li>修复 HBase 在 Metrics 信息中的单位问题 (hugegraph #713)</li>
<li>修复存储后端未初始化问题 (hugegraph #708)</li>
<li>修复按 Label 删除边时导致的 IN 边残留问题 (hugegraph #727)</li>
<li>修复 init-store 会生成多份 backend_info 问题 (hugegraph #723)</li>
</ul>
<h4 id="内部修改-1">内部修改</h4>
<ul>
<li>抑制因 PostgreSQL 后端 database 不存在时的报警信息 (hugegraph #527)</li>
<li>删除 PostgreSQL 后端的无用配置项 (hugegraph #533)</li>
<li>改进错误信息中的 HugeType 为易读字符串 (hugegraph #546)</li>
<li>增加 jdbc.storage_engine 配置项指定存储引擎 (hugegraph #555)</li>
<li>增加使用后端链接时按需重连功能 (hugegraph #562)</li>
<li>避免打印空的查询条件 (hugegraph #583)</li>
<li>缩减 Variable 的字符串长度 (hugegraph #581)</li>
<li>增加 RocksDB 后端的 cache 配置项 (hugegraph #567)</li>
<li>改进异步任务的异常信息 (hugegraph #596)</li>
<li>将 Range Index 拆分成 INT,LONG,FLOAT,DOUBLE 四个表存储 (hugegraph #574)</li>
<li>改进顶点和边 API 的 Metrics 名字 (hugegraph #631)</li>
<li>增加 G1GC 和 GC Log 的配置项 (hugegraph #616)</li>
<li>拆分顶点和边的 Label Index 表 (hugegraph #635)</li>
<li>减少顶点和边的属性存储空间 (hugegraph #650)</li>
<li>支持对 Secondary Index 和 Primary Key 中的数字进行编码 (hugegraph #676)</li>
<li>减少顶点和边的 ID 存储空间 (hugegraph #661)</li>
<li>支持 Cassandra 后端存储的二进制序列化存储 (hugegraph #680)</li>
<li>放松对最小内存的限制 (hugegraph #689)</li>
<li>修复 RocksDB 后端批量写时的 Invalid column family 问题 (hugegraph #701)</li>
<li>更新异步任务状态时删除残留索引 (hugegraph #719)</li>
<li>删除 ScyllaDB 的 Label Index 表 (hugegraph #717)</li>
<li>启动时使用多线程方式打开 RocksDB 后端存储多个数据目录 (hugegraph #721)</li>
<li>RocksDB 版本从 v5.17.2 升级至 v6.3.6 (hugegraph #722)</li>
</ul>
<h4 id="其它">其它</h4>
<ul>
<li>增加 API tests 到 codecov 统计中 (hugegraph #711)</li>
<li>改进配置文件的默认配置项 (hugegraph #575)</li>
<li>改进 README 中的致谢信息 (hugegraph #548)</li>
</ul>
<h3 id="loader">Loader</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>支持 JSON 数据源的 selected 字段 (hugegraph-loader #62)</li>
<li>支持定制化 List 元素之间的分隔符 (hugegraph-loader #66)</li>
<li>支持值映射 (hugegraph-loader #67)</li>
<li>支持通过文件后缀过滤文件 (hugegraph-loader #82)</li>
<li>支持对导入进度进行记录和断点续传 (hugegraph-loader #70,hugegraph-loader #87)</li>
<li>支持从不同的关系型数据库中读取 Header 信息 (hugegraph-loader #79)</li>
<li>支持属性为 Unsigned Long 类型值 (hugegraph-loader #91)</li>
<li>支持顶点的 UUID ID 类型 (hugegraph-loader #98)</li>
<li>支持按照策略批量更新属性 (hugegraph-loader #97)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>修复 nullable key 在 mapping field 不工作的问题 (hugegraph-loader #64)</li>
<li>修复 Parse Exception 无法捕获的问题 (hugegraph-loader #74)</li>
<li>修复在等待异步任务完成时获取信号量数目错误的问题 (hugegraph-loader #86)</li>
<li>修复空表时 hasNext() 返回 true 的问题 (hugegraph-loader #90)</li>
<li>修复布尔值解析错误问题 (hugegraph-loader #92)</li>
</ul>
<h4 id="内部修改-2">内部修改</h4>
<ul>
<li>增加 HTTP 连接参数 (hugegraph-loader #81)</li>
<li>改进导入完成的总结信息 (hugegraph-loader #80)</li>
<li>改进一行数据缺少列或者有多余列的处理逻辑 (hugegraph-loader #93)</li>
</ul>
<h3 id="tools">Tools</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>支持 0.8 版本 server 备份的数据恢复至 0.9 版本的 server 中 (hugegraph-tools #34)</li>
<li>增加 timeout 全局参数 (hugegraph-tools #44)</li>
<li>增加 migrate 子命令支持迁移图 (hugegraph-tools #45)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<ul>
<li>修复 dump 命令不支持 split size 参数的问题 (hugegraph-tools #32)</li>
</ul>
<h4 id="内部修改-3">内部修改</h4>
<ul>
<li>删除 Hadoop 对 Jersey 1.19的依赖 (hugegraph-tools #31)</li>
<li>优化子命令在 help 信息中的排序 (hugegraph-tools #37)</li>
<li>使用 log4j2 清除 log4j 的警告信息 (hugegraph-tools #39)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-5d75039168e433749fe461b9e0194290">4 - HugeGraph 0.9 Release Notes</h1>
<h3 id="api--client">API &amp; Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>增加 personal rank API 和 neighbor rank API (hugegraph #274)</li>
<li>Shortest path API 增加 skip_degree 参数跳过超级点(hugegraph #433,hugegraph-client #42)</li>
<li>vertex/edge 的 scan API 支持分页机制 (hugegraph #428,hugegraph-client #35)</li>
<li>VertexAPI 使用简化的属性序列化器 (hugegraph #332,hugegraph-client #37)</li>
<li>增加 customized paths API 和 customized crosspoints API (hugegraph #306,hugegraph-client #40)</li>
<li>在 server 端所有线程忙时返回503错误 (hugegraph #343)</li>
<li>保持 API 的 depth 和 degree 参数一致 (hugegraph #252,hugegraph-client #30)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>增加属性的时候验证 Date 而非 Timestamp 的值 (hugegraph-client #26)</li>
</ul>
<h4 id="内部修改">内部修改</h4>
<ul>
<li>RestClient 支持重用连接 (hugegraph-client #33)</li>
<li>使用 JsonUtil 替换冗余的 ObjectMapper (hugegraph-client #41)</li>
<li>Edge 直接引用 Vertex 使得批量插入更友好 (hugegraph-client #29)</li>
<li>使用 JaCoCo 替换 Cobertura 统计代码覆盖率 (hugegraph-client #39)</li>
<li>改进 Shard 反序列化机制 (hugegraph-client #34)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>支持 Cassandra 的 NetworkTopologyStrategy (hugegraph #448)</li>
<li>元数据删除和索引重建使用分页机制 (hugegraph #417)</li>
<li>支持将 HugeGraphServer 作为系统服务 (hugegraph #170)</li>
<li>单一索引查询支持分页机制 (hugegraph #328)</li>
<li>在初始化图库时支持定制化插件 (hugegraph #364)</li>
<li>为HBase后端增加 hbase.zookeeper.znode.parent 配置项 (hugegraph #333)</li>
<li>支持异步 Gremlin 任务的进度更新 (hugegraph #325)</li>
<li>使用异步任务的方式删除残留索引 (hugegraph #285)</li>
<li>支持按 sortKeys 范围查找功能 (hugegraph #271)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>修复二级索引删除时 Cassandra 后端的 batch 超过65535限制的问题 (hugegraph #386)</li>
<li>修复 RocksDB 磁盘利用率的 metrics 不正确问题 (hugegraph #326)</li>
<li>修复异步索引删除错误修复 (hugegraph #336)</li>
<li>修复 BackendSessionPool.close() 的竞争条件问题 (hugegraph #330)</li>
<li>修复保留的系统 ID 不工作问题 (hugegraph #315)</li>
<li>修复 cache 的 metrics 信息丢失问题 (hugegraph #321)</li>
<li>修复使用 hasId() 按 id 查询顶点时不支持数字 id 问题 (hugegraph #302)</li>
<li>修复重建索引时的 80w 限制问题和 Cassandra 后端的 batch 65535问题 (hugegraph #292)</li>
<li>修复残留索引删除无法处理未展开(none-flatten)查询的问题 (hugegraph #281)</li>
</ul>
<h4 id="内部修改-1">内部修改</h4>
<ul>
<li>迭代器变量统一命名为 &lsquo;iter&rsquo;(hugegraph #438)</li>
<li>增加 PageState.page() 方法统一获取分页信息接口 (hugegraph #429)</li>
<li>为基于 mapdb 的内存版后端调整代码结构,增加测试用例 (hugegraph #357)</li>
<li>支持代码覆盖率统计 (hugegraph #376)</li>
<li>设置 tx capacity 的下限为 COMMIT_BATCH(默认为500) (hugegraph #379)</li>
<li>增加 shutdown hook 来自动关闭线程池 (hugegraph #355)</li>
<li>PerfExample 的统计时间排除环境初始化时间 (hugegraph #329)</li>
<li>改进 BinarySerializer 中的 schema 序列化 (hugegraph #316)</li>
<li>避免对 primary key 的属性创建多余的索引 (hugegraph #317)</li>
<li>限制 Gremlin 异步任务的名字小于256字节 (hugegraph #313)</li>
<li>使用 multi-get 优化 HBase 后端的按 id 查询 (hugegraph #279)</li>
<li>支持更多的日期数据类型 (hugegraph #274)</li>
<li>修改 Cassandra 和 HBase 的 port 范围为(1,65535) (hugegraph #263)</li>
</ul>
<h4 id="其它">其它</h4>
<ul>
<li>增加 travis API 测试 (hugegraph #299)</li>
<li>删除 rest-server.properties 中的 GremlinServer 相关的默认配置项 (hugegraph #290)</li>
</ul>
<h3 id="loader">Loader</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>支持从 HDFS 和 关系型数据库导入数据 (hugegraph-loader #14)</li>
<li>支持传递权限 token 参数(hugegraph-loader #46)</li>
<li>支持通过 regex 指定要跳过的行 (hugegraph-loader #43)</li>
<li>支持导入 TEXT 文件时的 List/Set 属性(hugegraph-loader #38)</li>
<li>支持自定义的日期格式 (hugegraph-loader #28)</li>
<li>支持从指定目录导入数据 (hugegraph-loader #33)</li>
<li>支持忽略最后多余的列或者 null 值的列 (hugegraph-loader #23)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<ul>
<li>修复 Example 问题(hugegraph-loader #57)</li>
<li>修复当 vertex 是 customized ID 策略时边解析问题(hugegraph-loader #24)</li>
</ul>
<h4 id="内部修改-2">内部修改</h4>
<ul>
<li>URL regex 改进 (hugegraph-loader #47)</li>
</ul>
<h3 id="tools">Tools</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>支持海量数据备份和恢复到本地和 HDFS,并支持压缩 (hugegraph-tools #21)</li>
<li>支持异步任务取消和清理功能 (hugegraph-tools #20)</li>
<li>改进 graph-clear 命令的提示信息 (hugegraph-tools #23)</li>
</ul>
<h4 id="bug修复-3">BUG修复</h4>
<ul>
<li>修复 restore 命令总是使用 &lsquo;hugegraph&rsquo; 作为目标图的问题,支持指定图 (hugegraph-tools #26)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-f98fd193653a4b93fb4b460f9f1333f8">5 - HugeGraph 0.8 Release Notes</h1>
<h3 id="api--client">API &amp; Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>服务端增加 rays 和 rings 的 RESTful API(hugegraph #45)</li>
<li>使创建 IndexLabel 返回异步任务(hugegraph #95,hugegraph-client #9)</li>
<li>客户端增加恢复模式相关的 API(hugegraph-client #10)</li>
<li>让 task-list API 不返回 task_input 和 task_result(hugegraph #143)</li>
<li>增加取消异步任务的API(hugegraph #167,hugegraph-client #15)</li>
<li>增加获取后端 metrics 的 API(hugegraph #155)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>分页获取时最后一页的 page 应该为 null 而非 &ldquo;null&rdquo;(hugegraph #168)</li>
<li>分页迭代获取服务端已经没有下一页了应该停止获取(hugegraph-client #16)</li>
<li>添加顶点使用自定义 Number Id 时报类型无法转换(hugegraph-client #21)</li>
</ul>
<h4 id="内部修改">内部修改</h4>
<ul>
<li>增加持续集成测试(hugegraph-client #19)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>取消异步任务通过 label 查询时 80w 的限制(hugegraph #93)</li>
<li>允许 cardinality 为 set 时传入 Json List 形式的属性值(hugegraph #109)</li>
<li>支持在恢复模式和合并模式来恢复图(hugegraph #114)</li>
<li>RocksDB 后端支持多个图指定为同一个存储目录(hugegraph #123)</li>
<li>支持用户自定义权限认证器(hugegraph-loader #133)</li>
<li>当服务重启后重新开始未完成的任务(hugegraph #188)</li>
<li>当顶点的 Id 策略为自定义时,检查是否已存在相同 Id 的顶点(hugegraph #189)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>增加对 HasContainer 的 predicate 不为 null 的检查(hugegraph #16)</li>
<li>RocksDB 后端由于数据目录和日志目录错误导致 init-store 失败(hugegraph #25)</li>
<li>启动 hugegraph 时由于 logs 目录不存在导致提示超时但实际可访问(hugegraph #38)</li>
<li>ScyllaDB 后端遗漏注册顶点表(hugegraph #47)</li>
<li>使用 hasLabel 查询传入多个 label 时失败(hugegraph #50)</li>
<li>Memory 后端未初始化 task 相关的 schema(hugegraph #100)</li>
<li>当使用 hasLabel 查询时,如果元素数量超过 80w,即使加上 limit 也会报错(hugegraph #104)</li>
<li>任务的在运行之后没有保存过状态(hugegraph #113)</li>
<li>检查后端版本信息时直接强转 HugeGraphAuthProxy 为 HugeGraph(hugegraph #127)</li>
<li>配置项 batch.max_vertices_per_batch 未生效(hugegraph #130)</li>
<li>配置文件 rest-server.properties 有错误时 HugeGraphServer 启动不报错,但是无法访问(hugegraph #131)</li>
<li>MySQL 后端某个线程的提交对其他线程不可见(hugegraph #163)</li>
<li>使用 union(branch) + has(date) 查询时提示 String 无法转换为 Date(hugegraph #181)</li>
<li>使用 RocksDB 后端带 limit 查询顶点时会返回不完整的结果(hugegraph #197)</li>
<li>提示其他线程无法操作 tx(hugegraph #204)</li>
</ul>
<h4 id="内部修改-1">内部修改</h4>
<ul>
<li>拆分 graph.cache_xx 配置项为 vertex.cache_xx 和 edge.cache_xx 两类(hugegraph #56)</li>
<li>去除 hugegraph-dist 对 hugegraph-api 的依赖(hugegraph #61)</li>
<li>优化集合取交集和取差集的操作(hugegraph #85)</li>
<li>优化 transaction 的缓存处理和索引及 Id 查询(hugegraph #105)</li>
<li>给各线程池的线程命名(hugegraph #124)</li>
<li>增加并优化了一些 metrics 统计(hugegraph #138)</li>
<li>增加了对未完成任务的 metrics 记录(hugegraph #141)</li>
<li>让索引更新以分批方式提交,而不是全量提交(hugegraph #150)</li>
<li>在添加顶点/边时一直持有 schema 的读锁,直到提交/回滚完成(hugegraph #180)</li>
<li>加速 Tinkerpop 测试(hugegraph #19)</li>
<li>修复 Tinkerpop 测试在 resource 目录下找不到 filter 文件的 BUG(hugegraph #26)</li>
<li>开启 Tinkerpop 测试中 supportCustomIds 特性(hugegraph #69)</li>
<li>持续集成中添加 HBase 后端的测试(hugegraph #41)</li>
<li>避免持续集成的 deploy 脚本运行多次(hugegraph #170)</li>
<li>修复 cache 单元测试跑不过的问题(hugegraph #177)</li>
<li>持续集成中修改部分后端的存储为 tmpfs 以加快测试速度(hugegraph #206)</li>
</ul>
<h4 id="其它">其它</h4>
<ul>
<li>增加 issue 模版(hugegraph #42)</li>
<li>增加 CONTRIBUTING 文件(hugegraph #59)</li>
</ul>
<h3 id="loader">Loader</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>支持忽略源文件某些特定列(hugegraph-loader #2)</li>
<li>支持导入 cardinality 为 Set 的属性数据(hugegraph-loader #10)</li>
<li>单条插入也使用多个线程执行,解决了错误多时最后单条导入慢的问题(hugegraph-loader #12)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<ul>
<li>导入过程可能统计出错(hugegraph-loader #4)</li>
<li>顶点使用自定义 Number Id 导入出错(hugegraph-loader #6)</li>
<li>顶点使用联合主键时导入出错(hugegraph-loader #18)</li>
</ul>
<h4 id="内部修改-2">内部修改</h4>
<ul>
<li>增加持续集成测试(hugegraph-loader #8)</li>
<li>优化检测到文件不存在时的提示信息(hugegraph-loader #16)</li>
</ul>
<h3 id="tools">Tools</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>增加 KgDumper (hugegraph-tools #6)</li>
<li>支持在恢复模式和合并模式中恢复图(hugegraph-tools #9)</li>
</ul>
<h4 id="bug修复-3">BUG修复</h4>
<ul>
<li>脚本中的工具函数 get_ip 在系统未安装 ifconfig 时报错(hugegraph-tools #13)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-d2f7c78812d582db588f4a926a665a30">6 - HugeGraph 0.7 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>支持异步删除元数据和重建索引(HugeGraph-889)</li>
<li>加入监控API,并与Gremlin的监控框架集成(HugeGraph-1273)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>EdgeAPI更新属性时会将属性值也置为属性键(HugeGraph-81)</li>
<li>当删除顶点或边时,如果id非法应该返回400错误而非404(HugeGraph-1337)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>支持HBase后端存储(HugeGraph-1280)</li>
<li>增加异步API框架,耗时操作可通过调用异步API实现(HugeGraph-387)</li>
<li>支持对长属性列建立二级索引,取消目前索引列长度256字节的限制(HugeGraph-1314)</li>
<li>支持顶点属性的“创建或更新”操作(HugeGraph-1303)</li>
<li>支持全文检索功能(HugeGraph-1322)</li>
<li>支持数据库表的版本号检查(HugeGraph-1328)</li>
<li>删除顶点时,如果遇到超级点的时候报错&quot;Batch too large&quot;或“Batch 65535 statements”(HugeGraph-1354)</li>
<li>支持异步删除元数据和重建索引(HugeGraph-889)</li>
<li>支持异步长时间执行Gremlin任务(HugeGraph-889)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>防止超级点访问时查询过多下一层顶点而阻塞服务(HugeGraph-1302)</li>
<li>HBase初始化时报错连接已经关闭(HugeGraph-1318)</li>
<li>按照date属性过滤顶点报错String无法转为Date(HugeGraph-1319)</li>
<li>残留索引删除,对range索引的判断存在错误(HugeGraph-1291)</li>
<li>支持组合索引后,残留索引清理没有考虑索引组合的情况(HugeGraph-1311)</li>
<li>根据otherV的条件来删除边时,可能会因为边的顶点不存在导致错误(HugeGraph-1347)</li>
<li>label索引对offset和limit结果错误(HugeGraph-1329)</li>
<li>vertex label或者edge label没有开启label index,删除label会导致数据无法删除(HugeGraph-1355)</li>
</ul>
<h4 id="内部修改">内部修改</h4>
<ul>
<li>hbase后端代码引入较新版本的Jackson-databind包,导致HugeGraphServer启动异常(HugeGraph-1306)</li>
<li>Core和Client都自己持有一个shard类,而不是依赖于common模块(HugeGraph-1316)</li>
<li>去掉rebuild index和删除vertex label和edge label时的80w的capacity限制(HugeGraph-1297)</li>
<li>所有schema操作需要考虑同步问题(HugeGraph-1279)</li>
<li>拆分Cassandra的索引表,把element id每条一行,避免聚合高时,导入速度非常慢甚至卡住(HugeGraph-1304)</li>
<li>将hugegraph-test中关于common的测试用例移动到hugegraph-common中(HugeGraph-1297)</li>
<li>异步任务支持保存任务参数,以支持任务恢复(HugeGraph-1344)</li>
<li>支持通过脚本部署文档到GitHub(HugeGraph-1351)</li>
<li>RocksDB和Hbase后端索引删除实现(HugeGraph-1317)</li>
</ul>
<h3 id="loader">Loader</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>HugeLoader支持用户手动创建schema,以文件的方式传入(HugeGraph-1295)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<ul>
<li>HugeLoader导数据时未区分输入文件的编码,导致可能产生乱码(HugeGraph-1288)</li>
<li>HugeLoader打包的example目录的三个子目录下没有文件(HugeGraph-1288)</li>
<li>导入的CSV文件中如果数据列本身包含逗号会解析出错(HugeGraph-1320)</li>
<li>批量插入避免单条失败导致整个batch都无法插入(HugeGraph-1336)</li>
<li>异常信息作为模板打印异常(HugeGraph-1345)</li>
<li>导入边数据,当列数不对时导致程序退出(HugeGraph-1346)</li>
<li>HugeLoader的自动创建schema失败(HugeGraph-1363)</li>
<li>ID长度检查应该检查字节长度而非字符串长度(HugeGraph-1374)</li>
</ul>
<h4 id="内部修改-1">内部修改</h4>
<ul>
<li>添加测试用例(HugeGraph-1361)</li>
</ul>
<h3 id="tools">Tools</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>backup/restore使用多线程加速,并增加retry机制(HugeGraph-1307)</li>
<li>一键部署支持传入路径以存放包(HugeGraph-1325)</li>
<li>实现dump图功能(内存构建顶点及关联边)(HugeGraph-1339)</li>
<li>增加backup-scheduler功能,支持定时备份且保留一定数目最新备份(HugeGraph-1326)</li>
<li>增加异步任务查询和异步执行Gremlin的功能(HugeGraph-1357)</li>
</ul>
<h4 id="bug修复-3">BUG修复</h4>
<ul>
<li>hugegraph-tools的backup和restore编码为UTF-8(HugeGraph-1321)</li>
<li>hugegraph-tools设置默认JVM堆大小和发布版本号(HugeGraph-1340)</li>
</ul>
<h3 id="studio">Studio</h3>
<h4 id="bug修复-4">BUG修复</h4>
<ul>
<li>HugeStudio中顶点id包含换行符时g.V()会导致groovy解析出错(HugeGraph-1292)</li>
<li>限制返回的顶点及边的数量(HugeGraph-1333)</li>
<li>加载note出现消失或者卡住情况(HugeGraph-1353)</li>
<li>HugeStudio打包时,编译失败但没有报错,导致发布包无法启动(HugeGraph-1368)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-a40680f3cb756d27c8ad790330229be2">7 - HugeGraph 0.6 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>增加RESTFul API paths和crosspoints,找出source到target顶点间多条路径或包含交叉点的路径(HugeGraph-1210)</li>
<li>在API层添加批量插入并发数的控制,避免出现全部的线程都用于写而无法查询的情况(HugeGraph-1228)</li>
<li>增加scan-API,允许客户端并发地获取顶点和边(HugeGraph-1197)</li>
<li>Client支持传入用户名密码访问带权限控制的HugeGraph(HugeGraph-1256)</li>
<li>为顶点及边的list API添加offset参数(HugeGraph-1261)</li>
<li>RESTful API的顶点/边的list不允许同时传入page 和 [label,属性](HugeGraph-1262)</li>
<li>k-out、K-neighbor、paths、shortestpath等API增加degree、capacity和limit(HugeGraph-1176)</li>
<li>增加restore status的set/get/clear接口(HugeGraph-1272)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>使 RestClient的basic auth使用Preemptive模式(HugeGraph-1257)</li>
<li>HugeGraph-Client中由ResultSet获取多次迭代器,除第一次外其他的无法迭代(HugeGraph-1278)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>RocksDB实现scan特性(HugeGraph-1198)</li>
<li>Schema userdata 提供删除 key 功能(HugeGraph-1195)</li>
<li>支持date类型属性的范围查询(HugeGraph-1208)</li>
<li>limit下沉到backend,尽可能不进行多余的索引读取(HugeGraph-1234)</li>
<li>增加 API 权限与访问控制(HugeGraph-1162)</li>
<li>禁止多个后端配置store为相同的值(HugeGraph-1269)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>RocksDB的Range查询时如果只指定上界或下界会查出其他IndexLabel的记录(HugeGraph-1211)</li>
<li>RocksDB带limit查询时,graphTransaction查询返回的结果多一个(HugeGraph-1234)</li>
<li>init-store在CentOS上依赖通用的io.netty有时会卡住,改为使用netty-transport-native-epoll(HugeGraph-1255)</li>
<li>Cassandra后端in语句(按id查询)元素个数最大65535(HugeGraph-1239)</li>
<li>主键加索引(或普通属性)作为查询条件时报错(HugeGraph-1276)</li>
<li>init-store.sh在Centos平台上初始化失败或者卡住(HugeGraph-1255)</li>
</ul>
<h3 id="测试">测试</h3>
<p></p>
<h3 id="内部修改">内部修改</h3>
<ul>
<li>将compareNumber方法搬移至common模块(HugeGraph-1208)</li>
<li>修复HugeGraphServer无法在Ubuntu机器上启动的Bug(HugeGraph-1154)</li>
<li>修复init-store.sh无法在bin目录下执行的BUG(HugeGraph-1223)</li>
<li>修复HugeGraphServer启动过程中无法通过CTRL+C终止的BUG(HugeGraph-1223)</li>
<li>HugeGraphServer启动前检查端口是否被占用(HugeGraph-1223)</li>
<li>HugeGraphServer启动前检查系统JDK是否安装以及版本是否为1.8(HugeGraph-1223)</li>
<li>给HugeConfig类增加getMap()方法(HugeGraph-1236)</li>
<li>修改默认配置项,后端使用RocksDB,注释重要的配置项(HugeGraph-1240)</li>
<li>重命名userData为userdata(HugeGraph-1249)</li>
<li>centos 4.3系统HugeGraphServer进程使用jps命令查不到</li>
<li>增加配置项ALLOW_TRACE,允许设置是否返回exception stack trace(HugeGraph-81)</li>
</ul>
<h3 id="tools">Tools</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>增加自动化部署工具以安装所有组件(HugeGraph-1267)</li>
<li>增加clear的脚本,并拆分deploy和start-all(HugeGraph-1274)</li>
<li>对hugegraph服务进行监控以提高可用性(HugeGraph-1266)</li>
<li>增加backup/restore功能和命令(HugeGraph-1272)</li>
<li>增加graphs API对应的命令(HugeGraph-1272)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<h3 id="loader">Loader</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>默认添加csv及json的示例(HugeGraph-1259)</li>
</ul>
<h4 id="bug修复-3">BUG修复</h4>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-04bf2aaf34cd0b77f14833dec809fab4">8 - HugeGraph 0.5 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>VertexLabel与EdgeLabel增加bool参数enable_label_index表述是否构建label索引(HugeGraph-1085)</li>
<li>增加RESTful API来支持高效shortest path,K-out和K-neighbor查询(HugeGraph-944)</li>
<li>增加RESTful API支持按id列表批量查询顶点(HugeGraph-1153)</li>
<li>支持迭代获取全部的顶点和边,使用分页实现(HugeGraph-1166)</li>
<li>顶点id中包含 / % 等 URL 保留字符时通过 VertexAPI 查不出来(HugeGraph-1127)</li>
<li>批量插入边时是否检查vertex的RESTful API参数从checkVertex改为check_vertex (HugeGraph-81)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>hasId()无法正确匹配LongId(HugeGraph-1083)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>RocksDB支持常用配置项(HugeGraph-1068)</li>
<li>支持插入、删除、更新等操作的限速(HugeGraph-1071)</li>
<li>支持RocksDB导入sst文件方案(HugeGraph-1077)</li>
<li>增加MySQL后端存储(HugeGraph-1091)</li>
<li>增加Palo后端存储(HugeGraph-1092)</li>
<li>增加开关:支持是否构建顶点/边的label index(HugeGraph-1085)</li>
<li>支持API分页获取数据(HugeGraph-1105)</li>
<li>RocksDB配置的数据存放目录如果不存在则自动创建(HugeGraph-1135)</li>
<li>增加高级遍历函数shortest path、K-neighbor,K-out和按id列表批量查询顶点(HugeGraph-944)</li>
<li>init-store.sh增加超时重试机制(HugeGraph-1150)</li>
<li>将边表拆分两个表:OUT表、IN表(HugeGraph-1002)</li>
<li>限制顶点ID最大长度为128字节(HugeGraph-1168)</li>
<li>Cassandra通过压缩数据(可配置snappy、lz4)进行优化(HugeGraph-428)</li>
<li>支持IN和OR操作(HugeGraph-137)</li>
<li>支持RocksDB并行写多个磁盘(HugeGraph-1177)</li>
<li>MySQL通过批量插入进行性能优化(HugeGraph-1188)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>Kryo系列化多线程时异常(HugeGraph-1066)</li>
<li>RocksDB索引内容中重复写了两次elem-id(HugeGraph-1094)</li>
<li>SnowflakeIdGenerator.instance在多线程环境下可能会初始化多个实例(HugeGraph-1095)</li>
<li>如果查询边的顶点但顶点不存在时,异常信息不够明确(HugeGraph-1101)</li>
<li>RocksDB配置了多个图时,init-store失败(HugeGraph-1151)</li>
<li>无法支持 Date 类型的属性值(HugeGraph-1165)</li>
<li>创建了系统内部索引,但无法根据其进行搜索(HugeGraph-1167)</li>
<li>拆表后根据label删除边时,edge-in表中的记录未被删除成功(HugeGraph-1182)</li>
</ul>
<h3 id="测试">测试</h3>
<ul>
<li>增加配置项:vertex.force_id_string,跑 tinkerpop 测试时打开(HugeGraph-1069)</li>
</ul>
<h3 id="内部修改">内部修改</h3>
<ul>
<li>common库OptionChecker增加allowValues()函数用于枚举值(HugeGraph-1075)</li>
<li>清理无用、版本老旧的依赖包,减少打包的压缩包的大小(HugeGraph-1078)</li>
<li>HugeConfig通过文件路径构造时,无法检查多次配置的配置项的值(HugeGraph-1079)</li>
<li>Server启动时可以支持智能分配最大内存(HugeGraph-1154)</li>
<li>修复Mac OS因为不支持free命令导致无法启动server的问题(HugeGraph-1154)</li>
<li>修改配置项的注册方式为字符串式,避免直接依赖Backend包(HugeGraph-1171)</li>
<li>增加StoreDumper工具以查看后端存储的数据内容(HugeGraph-1172)</li>
<li>Jenkins把所有与内部服务器有关的构建机器信息都参数化传入(HugeGraph-1179)</li>
<li>将RestClient移到common模块,令server和client都依赖common(HugeGraph-1183)</li>
<li>增加配置项dump工具ConfDumper(HugeGraph-1193)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-f3de79fd20e587ee8e2ed9c14e6b546e">9 - HugeGraph 0.4.4 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>HugeGraph-Server支持WebSocket,能用Gremlin-Console连接使用;并支持直接编写groovy脚本调用Core的代码(HugeGraph-977)</li>
<li>适配Schema-id(HugeGraph-1038)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>hugegraph-0.3.3:删除vertex的属性,body中properties=null,返回500,空指针(HugeGraph-950)</li>
<li>hugegraph-0.3.3: graph.schema().getVertexLabel() 空指针(HugeGraph-955)</li>
<li>HugeGraph-Client 中顶点和边的属性集合不是线程安全的(HugeGraph-1013)</li>
<li>批量操作的异常信息无法打印(HugeGraph-1013)</li>
<li>异常message提示可读性太差,都是用propertyKey的id显示,对于用户来说无法立即识别(HugeGraph-1055)</li>
<li>批量新增vertex实体,有一个body体为null,返回500,空指针(HugeGraph-1056)</li>
<li>追加属性body体中只包含properties,功能出现回退,抛出异常The label of vertex can&rsquo;t be null(HugeGraph-1057)</li>
<li>HugeGraph-Client适配:PropertyKey的DateType中Timestamp替换成Date(HugeGraph-1059)</li>
<li>创建IndexLabel时baseValue为空会报出500错误(HugeGraph-1061)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>实现上层独立事务管理,并兼容tinkerpop事务规范(HugeGraph-918、HugeGraph-941)</li>
<li>完善memory backend,可以通过API正确访问,且适配了tinkerpop事务(HugeGraph-41)</li>
<li>增加RocksDB后端存储驱动框架(HugeGraph-929)</li>
<li>RocksDB数字索引range-query实现(HugeGraph-963)</li>
<li>为所有的schema增加了id,并将各表原依赖name的列也换成id(HugeGraph-589)</li>
<li>填充query key-value条件时,value的类型如果不匹配key定义的类型时需要转换为该类型(HugeGraph-964)</li>
<li>统一各后端的offset、limit实现(HugeGraph-995)</li>
<li>查询顶点、边时,Core支持迭代方式返回结果,而非一次性载入内存(HugeGraph-203)</li>
<li>memory backend支持range query(HugeGraph-967)</li>
<li>memory backend的secondary的支持方式从遍历改为IdQuery(HugeGraph-996)</li>
<li>联合索引支持复杂的(只要逻辑上可以查都支持)多种索引组合查询(HugeGraph-903)</li>
<li>Schema中增加存储用户数据的域(map)(HugeGraph-902)</li>
<li>统一ID的解析及系列化(包括API及Backend)(HugeGraph-965)</li>
<li>RocksDB没有keyspace概念,需要完善对多图实例的支持(HugeGraph-973)</li>
<li>支持Cassandra设置连接用户名密码(HugeGraph-999)</li>
<li>Schema缓存支持缓存所有元数据(get-all-schema)(HugeGraph-1037)</li>
<li>目前依然保持schema对外暴露name,暂不直接使用schema id(HugeGraph-1032)</li>
<li>用户传入ID的策略的修改为支持String和Number(HugeGraph-956)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>删除旧的前缀indexLabel时数据库中的schemaLabel对象还有残留(HugeGraph-969)</li>
<li>HugeConfig解析时共用了公共的Option,导致不同graph的配置项有覆盖(HugeGraph-984)</li>
<li>数据库数据不兼容时,提示更加友好的异常信息(HugeGraph-998)</li>
<li>支持Cassandra设置连接用户名密码(HugeGraph-999)</li>
<li>RocksDB deleteRange end溢出后触发RocksDB assert错误(HugeGraph-971)</li>
<li>允许根据null值id进行查询顶点/边,返回结果为空集合(HugeGraph-1045)</li>
<li>内存中存在部分更新数据未提交时,搜索结果不对(HugeGraph-1046)</li>
<li>g.V().hasLabel(XX)传入不存在的label时报错: Internal Server Error and Undefined property key: &lsquo;~label&rsquo;(HugeGraph-1048)</li>
<li>gremlin获取的的schema只剩下名称字符串(HugeGraph-1049)</li>
<li>大量数据情况下无法进行count操作(HugeGraph-1051)</li>
<li>RocksDB持续插入6~8千万条边时卡住(HugeGraph-1053)</li>
<li>整理属性类型的支持,并在BinarySerializer中使用二进制格式系列化属性值(HugeGraph-1062)</li>
</ul>
<h3 id="测试">测试</h3>
<ul>
<li>增加tinkerpop的performance测试(HugeGraph-987)</li>
</ul>
<h3 id="内部修改">内部修改</h3>
<ul>
<li>HugeFactory打开同一个图(name相同者)时,共用HugeGraph对象即可(HugeGraph-983)</li>
<li>规范索引类型命名secondary、range、search(HugeGraph-991)</li>
<li>数据库数据不兼容时,提示更加友好的异常信息(HugeGraph-998)</li>
<li>IO部分的 gryo 和 graphson 的module分开(HugeGraph-1041)</li>
<li>增加query性能测试到PerfExample中(HugeGraph-1044)</li>
<li>关闭gremlin-server的metric日志(HugeGraph-1050)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-ac8684ea0cd7198b6b256e2e5df6b75f">10 - HugeGraph 0.3.3 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<ul>
<li>为vertex-label和edge-label增加可空属性集合,允许在create和append时指定(HugeGraph-245)</li>
<li>配合core的功能为用户提供tinkerpop variables RESTful API(HugeGraph-396)</li>
<li>支持顶点/边属性的更新和删除(HugeGraph-894)</li>
<li>支持顶点/边的条件查询(HugeGraph-919)</li>
</ul>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>HugeGraph-API接收的RequestBody为null或&quot;&ldquo;时抛出空指针异常(HugeGraph-795)</li>
<li>为HugeGraph-API添加输入参数检查,避免抛出空指针异常(HugeGraph-796 ~ HugeGraph-798,HugeGraph-802,HugeGraph-808 ~ HugeGraph-814,HugeGraph-817,HugeGraph-823,HugeGraph-860)</li>
<li>创建缺失outV-label 或者 inV-label的实体边,依然能够被创建成功,不符合需求(HugeGraph-835)</li>
<li>创建vertex-label和edge-label时可以任意传入index-names(HugeGraph-837)</li>
<li>创建index,base-type=“VERTEX”等值(期望VL、EL),返回500(HugeGraph-846)</li>
<li>创建index,base-type和base-value不匹配,提示不友好(HugeGraph-848)</li>
<li>删除已经不存在的两个实体之间的关系,schema返回204,顶点和边类型的则返回404(期望统一为404)(HugeGraph-853,HugeGraph-854)</li>
<li>给vertex-label追加属性,缺失id-strategy,返回信息有误(HugeGraph-861)</li>
<li>给edge-label追加属性,name缺失,提示信息有误(HugeGraph-862)</li>
<li>给edge-label追加属性,source-label为“null”,提示信息有误(HugeGraph-863)</li>
<li>查询时的StringId如果为空字符串应该抛出异常(HugeGraph-868)</li>
<li>通Rest API创建两个顶点之间的边,在studio中通过g.V()则刚新创建的边则不显示,g.E()则能够显示新创建的边(HugeGraph-869)</li>
<li>HugeGraph-Server的内部错误500,不应该将stack trace返回给Client(HugeGraph-879)</li>
<li>addEdge传入空的id字符串时会抛出非法参数异常(HugeGraph-885)</li>
<li>HugeGraph-Client 的 Gremlin 查询结果在解析 Path 时,如果不包含Vertex/Edge会反序列化异常(HugeGraph-891)</li>
<li>枚举HugeKeys的字符串变成小写字母加下划线,导致API序列化时字段名与类中变量名不一致,进而序列化失败(HugeGraph-896)</li>
<li>增加边到不存在的顶点时返回404(期望400)(HugeGraph-922)</li>
</ul>
<h3 id="core">Core</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>支持对顶点/边属性(包括索引列)的更新操作(HugeGraph-369)</li>
<li>索引field为空或者空字符串的支持(hugegraph-553和hugegraph-288)</li>
<li>vertex/edge的属性一致性保证推迟到实际要访问属性时(hugegraph-763)</li>
<li>增加ScyllaDB后端驱动(HugeGraph-772)</li>
<li>支持tinkerpop的hasKey、hasValue查询(HugeGraph-826)</li>
<li>支持tinkerpop的variables功能(HugeGraph-396)</li>
<li>以“~”为开头的为系统隐藏属性,用户不可以创建(HugeGraph-842)</li>
<li>增加Backend Features以兼容不同后端的特性(HugeGraph-844)</li>
<li>对mutation的update可能出现的操作不直接抛错,进行细化处理(HugeGraph-887)</li>
<li>对append到vertex-label/edge-label的property检查,必须是nullable的(HugeGraph-890)</li>
<li>对于按照id查询,当有的id不存在时,返回其余存在的对象,而非直接抛异常(HugeGraph-900)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>Vertex.edges(Direction.BOTH,&hellip;) assert error(HugeGraph-661)</li>
<li>无法支持在addVertex函数中对同一property(single)多次赋值(HugeGraph-662)</li>
<li>更新属性时不涉及更新的索引列会丢失(HugeGraph-801)</li>
<li>GraphTransaction中的ConditionQuery需要索引查询时,没有触发commit,导致查询失败(HugeGraph-805)</li>
<li>Cassandra不支持query offset,查询时limit=offset+limit取回所有记录后过滤(HugeGraph-851)</li>
<li>多个插入操作加上一个删除操作,插入操作会覆盖删除操作(HugeGraph-857)</li>
<li>查询时的StringId如果为空字符串应该抛出异常(HugeGraph-868)</li>
<li>元数据schema方法只返回 hidden 信息(HugeGraph-912)</li>
</ul>
<h3 id="测试">测试</h3>
<ul>
<li>tinkerpop的structure和process测试使用不同的keyspace(HugeGraph-763)</li>
<li>将tinkerpop测试和unit测试添加到流水线release-after-merge中(HugeGraph-763)</li>
<li>jenkins脚本分离各阶段子脚本,修改项目中的子脚本即可生效构建(HugeGraph-800)</li>
<li>增加clear backends功能,在tinkerpop suite运行完成后清除后端(HugeGraph-852)</li>
<li>增加BackendMutation的测试(HugeGraph-801)</li>
<li>多线程操作图时可能抛出NoHostAvailableException异常(HugeGraph-883)</li>
</ul>
<h3 id="内部修改">内部修改</h3>
<ul>
<li>调整HugeGraphServer和HugeGremlinServer启动时JVM的堆内存初始为256M,最大为2048M(HugeGraph-218)</li>
<li>创建Cassandra Table时,使用schemaBuilder代替字符串拼接(hugegraph-773)</li>
<li>运行测试用例时如果初始化图失败(比如数据库连接不上),clear()报错(HugeGraph-910)</li>
<li>Example抛异常 Need to specify a readable config file rather than&hellip;(HugeGraph-921)</li>
<li>HugeGraphServer和HugeGreminServer的缓存保持同步(HugeGraph-569)</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-3eb16892048936d4f8440f9216d11b41">11 - HugeGraph 0.2 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<p>0.2版实现了图数据库基本功能,提供如下功能:</p>
<h3 id="元数据schema">元数据(Schema)</h3>
<h4 id="顶点类型vertex-label">顶点类型(Vertex Label)</h4>
<ul>
<li>创建顶点类型</li>
<li>删除顶点类型</li>
<li>查询顶点类型</li>
<li>增加顶点类型的属性</li>
</ul>
<h4 id="边类型edge-label">边类型(Edge Label)</h4>
<ul>
<li>创建边类型</li>
<li>删除边类型</li>
<li>查询边类型</li>
<li>增加边类型的属性</li>
</ul>
<h4 id="属性property-key">属性(Property Key)</h4>
<ul>
<li>创建属性</li>
<li>删除属性</li>
<li>查询属性</li>
</ul>
<h4 id="索引index-label">索引(Index Label)</h4>
<ul>
<li>创建索引</li>
<li>删除索引</li>
<li>查询索引</li>
</ul>
<h4 id="元数据检查">元数据检查</h4>
<ul>
<li>元数据依赖的其它元数据检查(如Vertex Label依赖Property Key)</li>
<li>数据依赖的元数据检查(如Vertex依赖Vertex Label)</li>
</ul>
<h3 id="图数据">图数据</h3>
<h4 id="顶点vertex">顶点(Vertex)</h4>
<ul>
<li>
<p>增加顶点</p>
</li>
<li>
<p>删除顶点</p>
</li>
<li>
<p>增加顶点属性</p>
</li>
<li>
<p>删除顶点属性(必须为非索引列)</p>
</li>
<li>
<p>批量插入顶点</p>
</li>
<li>
<p>查询</p>
</li>
<li>
<p>批量查询</p>
</li>
<li>
<p>顶点ID策略</p>
<ul>
<li>用户指定ID(字符串)</li>
<li>用户指定某些属性组合作为ID(拼接为可见字符串)</li>
<li>自动生成ID</li>
</ul>
</li>
</ul>
<h4 id="边edge">边(Edge)</h4>
<ul>
<li>增加边</li>
<li>增加多条同类型边到指定的两个节点(SortKey)</li>
<li>删除边</li>
<li>增加边属性</li>
<li>删除边属性(必须为非索引列)</li>
<li>批量插入边</li>
<li>查询</li>
<li>批量查询</li>
</ul>
<h4 id="顶点边属性">顶点/边属性</h4>
<ul>
<li>
<p>属性类型支持</p>
<ul>
<li>text</li>
<li>boolean</li>
<li>byte、blob</li>
<li>int、long</li>
<li>float、double</li>
<li>timestamp</li>
<li>uuid</li>
</ul>
</li>
<li>
<p>支持单值属性</p>
</li>
<li>
<p>支持多值属性:List、Set(<em>注意:非嵌套属性</em></p>
</li>
</ul>
<h3 id="事务">事务</h3>
<ul>
<li>原子性级别保证(<em>依赖后端</em></li>
<li>自动提交事务</li>
<li>手动提交事务</li>
<li>并行事务</li>
</ul>
<h3 id="索引">索引</h3>
<h4 id="索引类型">索引类型</h4>
<ul>
<li>二级索引</li>
<li>范围索引(数字类型)</li>
</ul>
<h4 id="索引操作">索引操作</h4>
<ul>
<li>为指定类型的顶点/边创建单列索引(不支持List或Set列创建索引)</li>
<li>为指定类型的顶点/边创建复合索引(不支持List或Set列创建索引,复合索引为前缀索引)</li>
<li>删除指定类型顶点/边的索引(部分或全部索引均可)</li>
<li>重建指定类型顶点/边的索引(部分或全部索引均可)</li>
</ul>
<h3 id="查询遍历">查询/遍历</h3>
<ul>
<li>
<p>列出所有元数据、图数据(支持Limit,不支持分页)</p>
</li>
<li>
<p>根据ID查询元数据、图数据</p>
</li>
<li>
<p>根据指定属性的值查询图数据</p>
</li>
<li>
<p>根据指定属性的值范围查询图数据(属性必须为数字类型)</p>
</li>
<li>
<p>根据指定顶点/边类型、指定属性的值查询顶点/边</p>
</li>
<li>
<p>根据指定顶点/边类型、指定属性的值范围查询顶点(属性必须为数字类型)</p>
</li>
<li>
<p>根据顶点类型(Vertex Label)查询顶点</p>
</li>
<li>
<p>根据边类型(Edge Label)查询边</p>
</li>
<li>
<p>根据顶点查询边</p>
<ul>
<li>查询顶点的所有边</li>
<li>查询顶点的指定方向边(出边、入边)</li>
<li>查询顶点的指定方向、指定类型边</li>
<li>查询两个顶点的同类型边中的某条边(SortKey)</li>
</ul>
</li>
<li>
<p>标准Gremlin遍历</p>
</li>
</ul>
<h3 id="缓存">缓存</h3>
<h4 id="可缓存内容">可缓存内容</h4>
<ul>
<li>元数据缓存</li>
<li>顶点缓存</li>
</ul>
<h4 id="缓存特性">缓存特性</h4>
<ul>
<li>LRU策略</li>
<li>高性能并发访问</li>
<li>支持超时过期机制</li>
</ul>
<h3 id="接口restful-api">接口(RESTful API)</h3>
<ul>
<li>版本号接口</li>
<li>图实例接口</li>
<li>元数据接口</li>
<li>图数据接口</li>
<li>Gremlin接口</li>
</ul>
<p>更多细节详见<a href="/clients/hugegraph-api.html">API文档</a></p>
<h3 id="后端支持">后端支持</h3>
<h4 id="支持cassandra后端">支持Cassandra后端</h4>
<ul>
<li>持久化</li>
<li>CQL3</li>
<li>集群</li>
</ul>
<h4 id="支持memory后端仅用于测试">支持Memory后端(仅用于测试)</h4>
<ul>
<li>非持久化</li>
<li>部分特性无法支持(如:更新边属性、根据边类型查询边)</li>
</ul>
<h3 id="其它">其它</h3>
<h4 id="支持配置项">支持配置项</h4>
<ul>
<li>后端存储类型</li>
<li>序列化方式</li>
<li>缓存参数</li>
</ul>
<h4 id="支持多图实例">支持多图实例</h4>
<ul>
<li>静态方式(<em>增加多个图配置文件</em></li>
</ul>
<h4 id="版本检查">版本检查</h4>
<ul>
<li>内部依赖包匹配版本检查</li>
<li>API匹配版本检查</li>
</ul>
</div>
<div class="td-content" style="page-break-before: always">
<h1 id="pg-add34161ef49858de8d3ba17c475406f">12 - HugeGraph 0.2.4 Release Notes</h1>
<h3 id="api--java-client">API &amp; Java Client</h3>
<h4 id="功能更新">功能更新</h4>
<h3 id="元数据schema相关">元数据(Schema)相关</h3>
<h4 id="bug修复">BUG修复</h4>
<ul>
<li>Vertex Label为非primary-key id策略应该允许属性为空(HugeGraph-651)</li>
<li>Gremlin-Server 序列化的 EdgeLabel 仅有一个directed 属性,应该打印完整的schema描述(HugeGraph-680)</li>
<li>创建IndexLabel时使用不存在的属性抛出空指针异常,应该抛非法参数异常(HugeGraph-682)</li>
<li>创建schema如果已经存在并指定了ifNotExist时,结果应该返回原来的对象(HugeGraph-694)</li>
<li>由于EdgeLabel的Frequency默认为null以及不允许修改特性,导致Append操作传递null值在API层反序列化失败(HugeGraph-729)</li>
<li>增加对schema名称的正则检查配置项,默认不允许为全空白字符(HugeGraph-727)</li>
<li>中文名的schema在前端显示为乱码(HugeGraph-711)</li>
</ul>
<h3 id="图数据vertexedge相关">图数据(Vertex、Edge)相关</h3>
<h4 id="功能更新-1">功能更新</h4>
<ul>
<li>DataType支持Array,并且List类型除了一个一个添加object,也需要支持直接赋值List对象(HugeGraph-719)</li>
<li>自动生成的顶点id由十进制改为十六进制(字符串存储时)(HugeGraph-785)</li>
</ul>
<h4 id="bug修复-1">BUG修复</h4>
<ul>
<li>HugeGraph-API的VertexLabel/EdgeLabel API未提供eliminate接口(HugeGraph-614)</li>
<li>增加非primary-key id策略的顶点时,如果属性为空无法插入到数据库中(HugeGraph-652)</li>
<li>使用HugeGraph-Client的gremlin发送无返回值groovy请求时,由于gremlin-server将无返回值序列化为null,导致前端迭代结果集时出现空指针异常(HugeGraph-664)</li>
<li>RESTful API在没有找到对应id的vertex/edge时返回500(HugeGraph-734)</li>
<li>HugeElement/HugeProperty的equals()与tinkerpop不兼容(HugeGraph-653)</li>
<li>HugeEdgeProperty的property的equals函数与tinkerpop兼容 (HugeGraph-740)</li>
<li>HugeElement/HugeVertexProperty的hashcode函数与tinkerpop不兼容(HugeGraph-728)</li>
<li>HugeVertex/HugeEdge的toString函数与tinkerpop不兼容(HugeGraph-665)</li>
<li>与tinkerpop的异常不兼容,包括IllegalArgumentsException和UnsupportedOperationException(HugeGraph-667)</li>
<li>通过id无法找到element时,抛出的异常类型与tinkerpop不兼容(HugeGraph-689)</li>
<li>vertex.addEdge没有检查properties的数目是否为2的倍数(HugeGraph-716)</li>
<li>vertex.addEdge()时,assignId调用时机太晚,导致vertex的Set<Edge>中有重复的edge(HugeGraph-666)</li>
<li>查询时包含大于等于三层逻辑嵌套时,会抛出ClassCastException,现改成抛出非法参数异常(HugeGraph-481)</li>
<li>边查询如果同时包含source-vertex/direction和property作为条件,查询结果错误(HugeGraph-749)</li>
<li>HugeGraph-Server 在运行时如果 cassandra 宕掉,插入或查询操作时会抛出DataStax的异常以及详细的调用栈(HugeGraph-771)</li>
<li>删除不存在的 indexLabel 时会抛出异常,而删除其他三种元数据(不存在的)则不会(HugeGraph-782)</li>
<li>当传给EdgeApi的源顶点或目标顶点的id非法时,会因为查询不到该顶点向客户端返回404状态码(HugeGraph-784)</li>
<li>提供内部使用获取元数据的接口,使SchemaManager仅为外部使用,当获取不存在的schema时抛出NotFoundException异常(HugeGraph-743)</li>
<li>HugeGraph-Client 创建/添加/移除 元数据都应该返回来自服务端的结果(HugeGraph-760)</li>
<li>创建HugeGraph-Client时如果输入了错误的主机会导致进程阻塞,无法响应(HugeGraph-718)</li>
</ul>
<h3 id="查询索引缓存相关">查询、索引、缓存相关</h3>
<h4 id="功能更新-2">功能更新</h4>
<ul>
<li>缓存更新更加高效的锁方案(HugeGraph-555)</li>
<li>索引查询增加支持只有一个元素的IN语句(原来仅支持EQ)(HugeGraph-739)</li>
</ul>
<h4 id="bug修复-2">BUG修复</h4>
<ul>
<li>防止请求数据量过大时服务本身hang住(HugeGraph-777)</li>
</ul>
<h3 id="其它">其它</h3>
<h4 id="功能更新-3">功能更新</h4>
<ul>
<li>使Init-Store仅用于初始化数据库,清空后端由独立脚本实现(HugeGraph-650)</li>
</ul>
<h4 id="bug修复-3">BUG修复</h4>
<ul>
<li>单元测试跑完后在测试机上遗留了临时的keyspace(HugeGraph-611)</li>
<li>Cassandra的info日志信息过多,将大部分修改为debug级别(HugeGraph-722)</li>
<li>EventHub.containsListener(String event)判断逻辑有遗漏(HugeGraph-732)</li>
<li>EventHub.listeners/unlisten(String event)当没有对应event的listener时会抛空指针异常(HugeGraph-733)</li>
</ul>
<h3 id="测试">测试</h3>
<h4 id="tinkerpop合规测试">Tinkerpop合规测试</h4>
<ul>
<li>增加自定义ignore机制,规避掉暂时不需要加入持续集成的测试用例(HugeGraph-647)</li>
<li>为TestGraph注册GraphSon和Kryo序列化器,实现 IdGenerator$StringId 的 graphson-v1、graphson-v2 和 Kryo的序列化与反序列化(HugeGraph-660)</li>
<li>增加了可配置的测试用例过滤器,使得tinkerpop测试可以用在开发分支和发布分支的回归测试中</li>
<li>将tinkerpop测试通过配置文件,加入到回归测试中</li>
</ul>
<h4 id="单元测试">单元测试</h4>
<ul>
<li>增加Cache及Event的单元测试(HugeGraph-659)</li>
<li>HugeGraph-Client 增加API的测试(99个)</li>
<li>HugeGraph-Client 增加单元测试,包括RestResult反序列化的单测(12个)</li>
</ul>
<h3 id="内部修改">内部修改</h3>
<ul>
<li>改进LOG变量方面代码(HugeGraph-623/HugeGraph-631)</li>
<li>License格式调整(HugeGraph-625)</li>
<li>将序列化器中持有的graph抽离,要用到graph的函数通过传参数实现 (HugeGraph-750)</li>
</ul>
</div>
</main>
</div>
</div>
<footer class="bg-dark py-3 row d-print-none">
<div class="footer-container">
<div class="row">
<div class="col-1"></div>
<div class="col-4 text-center container-center">
<div class="footer-row">
<a href="https://www.apache.org">
<div class="footer-apache-logo">
<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 7127.6 2890" enable-background="new 0 0 7127.6 2890"><path fill="#6d6e71" d="M7104.7 847.8c15.3 15.3 22.9 33.7 22.9 55.2s-7.6 39.9-22.9 55.4c-15.3 15.4-33.8 23.1-55.6 23.1s-40.2-7.6-55.4-22.9c-15.1-15.3-22.7-33.7-22.7-55.2s7.6-39.9 22.9-55.4c15.3-15.4 33.7-23.1 55.4-23.1C7070.9 824.9 7089.4 832.5 7104.7 847.8zM7098.1 951.9c13.3-13.6 20-29.8 20-48.7s-6.6-35-19.8-48.5c-13.2-13.4-29.4-20.1-48.6-20.1-19.2.0-35.4 6.7-48.7 20.2s-19.9 29.7-19.9 48.7 6.6 35.2 19.7 48.6c13.1 13.4 29.3 20.1 48.5 20.1S7084.7 965.4 7098.1 951.9zm-11-63.8c0 14-6.1 22.8-18.4 26.4l22.5 30.5H7073l-20.3-28.3h-18.6V945h-14.7v-84.6h31.8c12.8.0 22 2.2 27.6 6.6C7084.4 871.4 7087.1 878.4 7087.1 888.1zM7068.2 9e2c3-2.4 4.4-6.5 4.4-12s-1.5-9.4-4.5-11.6-8.4-3.2-16-3.2h-18v30.5h17.5C7059.7 903.6 7065.3 902.4 7068.2 9e2z"/><path fill="#6d6e71" d="M1803.6 499.8v155.4h-20V499.8h-56.8v-19.2h133.9v19.2H1803.6z"/><path fill="#6d6e71" d="M2082.2 655.2v-76.9H1977v76.9h-20V480.5h20v78.9h105.2v-78.9h20v174.7h-20z"/><path fill="#6d6e71" d="M2241.4 499.8v57.4h88.1v19.2h-88.1v59.8h101.8v19h-121.8V480.5H2340v19.2H2241.4z"/><path fill="#d22128" d="M1574.5 1852.4l417.3-997.6h80.1l417.3 997.6h-105.4l-129.3-311.9h-448.2l-127.9 311.9H1574.5zM2032.6 970l-205.1 493.2h404.7L2032.6 970z"/><path fill="#d22128" d="M2596.9 1852.4V854.8H3010c171.4.0 295.1 158.8 295.1 313.3.0 163-115.2 316.1-286.6 316.1h-324.6v368.1h-97zm97-455.3h318.9c118 0 193.9-108.2 193.9-229 0-125.1-92.7-226.2-202.3-226.2h-310.5v455.2z"/><path fill="#d22128" d="M3250.5 1852.4l417.3-997.6h80.1l417.3 997.6h-105.4l-129.3-311.9h-448.2l-127.9 311.9H3250.5zM3708.6 970l-205.1 493.2h404.7L3708.6 970z"/><path fill="#d22128" d="M4637.3 849.1c177 0 306.3 89.9 368.1 217.8l-78.7 47.8c-63.2-132.1-186.9-177-295.1-177-238.9.0-369.5 213.6-369.5 414.5.0 220.6 161.6 420.1 373.7 420.1 112.4.0 244.5-56.2 307.7-185.5l81.5 42.1c-64.6 148.9-241.7 231.8-394.8 231.8-274 0-466.5-261.3-466.5-514.2C4163.8 1106.3 4336.6 849.1 4637.3 849.1z"/><path fill="#d22128" d="M5949.1 854.8v997.6h-98.4v-466.5h-591.5v466.5h-96.9V854.8h96.9v444h591.5v-444H5949.1z"/><path fill="#d22128" d="M6844.6 1765.2v87.1h-670.2V854.8H6832v87.1h-560.6v359.7h489v82.9h-489v380.8H6844.6z"/><path fill="#6d6e71" d="M1667.6 2063.6c11.8 3.5 22.2 8.3 31 14.2l-10.3 22.6c-9-6-18.6-10.4-28.9-13.4-10.2-2.9-20-4.4-29.2-4.4-13.6.0-24.5 2.4-32.6 7.3s-12.2 11.8-12.2 20.7c0 7.6 2.3 14 6.8 19s10.2 8.9 17 11.7c6.8 2.8 16.1 6 28 9.6 14.4 4.6 26 8.9 34.7 12.9 8.8 4 16.3 9.9 22.5 17.8 6.2 7.8 9.3 18.2 9.3 31 0 11.7-3.2 21.8-9.5 30.6-6.3 8.7-15.3 15.5-26.8 20.3-11.6 4.8-24.9 7.2-40 7.2s-29.7-2.9-43.9-8.7c-14.2-5.8-26.4-13.6-36.6-23.4l10.7-21.6c9.6 9.4 20.7 16.7 33.3 21.9 12.6 5.2 24.8 7.8 36.8 7.8 15.3.0 27.3-3 36.1-8.9s13.2-13.9 13.2-23.9c0-7.8-2.3-14.3-6.9-19.4-4.6-5.1-10.3-9-17.1-11.9-6.8-2.8-16.1-6-28-9.6-14.2-4.2-25.7-8.3-34.6-12.2-8.9-3.9-16.4-9.7-22.5-17.5-6.1-7.7-9.2-17.9-9.2-30.6.0-10.9 3-20.4 9-28.6s14.6-14.6 25.6-19.1c11.1-4.5 23.8-6.8 38.2-6.8C1643.8 2058.3 1655.7 2060.1 1667.6 2063.6z"/><path fill="#6d6e71" d="M1980.1 2072.8c16.8 9.4 30.2 22.3 40 38.4 9.8 16.2 14.8 33.9 14.8 53.3.0 19.5-4.9 37.4-14.8 53.6-9.8 16.3-23.2 29.1-40 38.6s-35.3 14.3-55.2 14.3c-20.3.0-38.8-4.7-55.7-14.3-16.8-9.5-30.2-22.4-40-38.6-9.8-16.3-14.8-34.1-14.8-53.6s4.9-37.3 14.8-53.5c9.8-16.2 23.2-29 40-38.3 16.8-9.4 35.4-14 55.7-14C1944.8 2058.6 1963.2 2063.3 1980.1 2072.8zM1881.9 2092.7c-13.1 7.4-23.6 17.5-31.4 30.1-7.8 12.6-11.8 26.5-11.8 41.7.0 15.3 3.9 29.3 11.8 42 7.8 12.7 18.3 22.8 31.4 30.2 13.1 7.4 27.4 11.1 42.9 11.1s29.7-3.7 42.7-11.1 23.3-17.4 31.1-30.2c7.7-12.7 11.6-26.7 11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30s-27.2-11.2-42.6-11.2C1909.4 2081.5 1895.1 2085.2 1881.9 2092.7z"/><path fill="#6d6e71" d="M2186.5 2082.4v74h98.4v23.2h-98.4v90.2h-24.1v-210.6h133.8v23.2H2186.5z"/><path fill="#6d6e71" d="M2491.6 2082.4v187.4h-24.1v-187.4h-68.4v-23.2h161.4v23.2H2491.6z"/><path fill="#6d6e71" d="M2871.8 2269.8l-56.8-177.4-57.6 177.4h-24.5l-70.5-210.6h25.9l57.9 182.7 57.1-182.4 24.1-.3 57.7 182.7 57.1-182.7h25l-70.6 210.6H2871.8z"/><path fill="#6d6e71" d="M3087.3 2216.6l-23.5 53.2h-25.6l94.4-210.6h25l94.1 210.6h-26.1l-23.5-53.2H3087.3zM3144.5 2086.6l-46.9 106.8h94.4l-47.5-106.8z"/><path fill="#6d6e71" d="M3461.1 2202.7c-6 .4-10.7.6-14.1.6h-56v66.5h-24v-210.6h80c26.2.0 46.6 6.2 61.2 18.5 14.5 12.3 21.8 29.8 21.8 52.3.0 17.2-4.1 31.7-12.2 43.3-8.1 11.6-19.8 20-35 25l49.2 71.5h-27.3L3461.1 2202.7zM3491.3 2167.6c10.3-8.4 15.5-20.8 15.5-37 0-15.9-5.2-27.9-15.5-36s-25.1-12.2-44.3-12.2h-56v97.8h56C3466.2 2180.2 3481 2176 3491.3 2167.6z"/><path fill="#6d6e71" d="M3688.3 2082.4v69.2h106.2v23.2h-106.2v72.1h122.8v22.9h-146.9v-210.6h142.9v23.2H3688.3z"/><path fill="#6d6e71" d="M4147 2082.4v74h98.4v23.2H4147v90.2h-24.1v-210.6h133.8v23.2H4147z"/><path fill="#6d6e71" d="M4523.3 2072.8c16.8 9.4 30.2 22.3 40 38.4 9.8 16.2 14.8 33.9 14.8 53.3.0 19.5-4.9 37.4-14.8 53.6-9.8 16.3-23.2 29.1-40 38.6s-35.3 14.3-55.2 14.3c-20.3.0-38.8-4.7-55.7-14.3-16.8-9.5-30.2-22.4-40-38.6-9.8-16.3-14.8-34.1-14.8-53.6s4.9-37.3 14.8-53.5c9.8-16.2 23.2-29 40-38.3 16.8-9.4 35.4-14 55.7-14C4488.1 2058.6 4506.5 2063.3 4523.3 2072.8zM4425.2 2092.7c-13.1 7.4-23.6 17.5-31.4 30.1-7.8 12.6-11.8 26.5-11.8 41.7.0 15.3 3.9 29.3 11.8 42 7.8 12.7 18.3 22.8 31.4 30.2 13.1 7.4 27.4 11.1 42.9 11.1s29.7-3.7 42.7-11.1 23.3-17.4 31.1-30.2c7.7-12.7 11.6-26.7 11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30s-27.2-11.2-42.6-11.2C4452.6 2081.5 4438.3 2085.2 4425.2 2092.7z"/><path fill="#6d6e71" d="M4854.7 2247.7c-15.7 15.5-37.3 23.3-64.8 23.3-27.7.0-49.4-7.8-65.1-23.3-15.7-15.5-23.6-37-23.6-64.6v-124h24.1v124c0 20.3 5.8 36.1 17.3 47.5 11.6 11.4 27.3 17.1 47.3 17.1 20.1.0 35.8-5.7 47.1-17 11.4-11.3 17-27.2 17-47.7v-124h24.1v124C4878.2 2210.7 4870.4 2232.2 4854.7 2247.7z"/><path fill="#6d6e71" d="M5169.5 2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3 169.3v-169.3h23.8v210.6H5169.5z"/><path fill="#6d6e71" d="M5478.4 2073.1c16.4 9.3 29.4 21.9 38.9 37.9 9.6 16 14.3 33.9 14.3 53.5s-4.8 37.6-14.3 53.6c-9.5 16.1-22.6 28.7-39.3 37.9-16.6 9.2-35.2 13.8-55.5 13.8h-84.3v-210.6h85.2C5443.7 2059.2 5462 2063.8 5478.4 2073.1zM5362.3 2246.9h61.4c15.5.0 29.6-3.5 42.3-10.6s22.8-16.9 30.2-29.5c7.4-12.5 11.1-26.5 11.1-42s-3.8-29.4-11.3-41.9-17.7-22.3-30.6-29.6c-12.8-7.2-27-10.9-42.6-10.9h-60.5v164.5z"/><path fill="#6d6e71" d="M5668.6 2216.6l-23.5 53.2h-25.6l94.4-210.6h25l94.1 210.6h-26l-23.5-53.2H5668.6zM5725.8 2086.6l-46.9 106.8h94.4l-47.5-106.8z"/><path fill="#6d6e71" d="M5991 2082.4v187.4h-24v-187.4h-68.4v-23.2H6060v23.2h-69z"/><path fill="#6d6e71" d="M6175.9 2269.8v-210.6h24.1v210.6H6175.9z"/><path fill="#6d6e71" d="M6493.7 2072.8c16.8 9.4 30.2 22.3 40 38.4 9.8 16.2 14.8 33.9 14.8 53.3.0 19.5-4.9 37.4-14.8 53.6-9.8 16.3-23.2 29.1-40 38.6s-35.3 14.3-55.2 14.3c-20.3.0-38.8-4.7-55.7-14.3-16.8-9.5-30.2-22.4-40-38.6-9.8-16.3-14.8-34.1-14.8-53.6s4.9-37.3 14.8-53.5c9.8-16.2 23.2-29 40-38.3 16.8-9.4 35.4-14 55.7-14C6458.5 2058.6 6476.9 2063.3 6493.7 2072.8zM6395.6 2092.7c-13.1 7.4-23.6 17.5-31.4 30.1-7.8 12.6-11.8 26.5-11.8 41.7.0 15.3 3.9 29.3 11.8 42 7.8 12.7 18.3 22.8 31.4 30.2 13.1 7.4 27.4 11.1 42.9 11.1s29.7-3.7 42.7-11.1 23.3-17.4 31.1-30.2c7.7-12.7 11.6-26.7 11.6-42s-3.9-29.2-11.6-41.8c-7.7-12.6-18.1-22.6-31.1-30s-27.2-11.2-42.6-11.2C6423 2081.5 6408.8 2085.2 6395.6 2092.7z"/><path fill="#6d6e71" d="M6826.5 2269.8l-126.3-169.1v169.1h-24.1v-210.6h25l126.3 169.3v-169.3h23.8v210.6H6826.5z"/><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="-4516.6152" y1="-2338.7222" x2="-4108.4111" y2="-1861.3982" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset="0" style="stop-color:#F69923"/><stop offset=".3123" style="stop-color:#F79A23"/><stop offset=".8383" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_1_)" d="M1230.1 13.7c-45.3 26.8-120.6 102.5-210.5 212.3l82.6 155.9c58-82.9 116.9-157.5 176.3-221.2 4.6-5.1 7-7.5 7-7.5-2.3 2.5-4.6 5-7 7.5-19.2 21.2-77.5 89.2-165.5 224.4 84.7-4.2 214.9-21.6 321.1-39.7 31.6-177-31-258-31-258S1323.4-41.4 1230.1 13.7z"/><path fill="none" d="M1090.2 903.1c.6-.1 1.2-.2 1.8-.3l-11.9 1.3c-.7.3-1.4.7-2.1 1C1082.1 904.4 1086.2 903.7 1090.2 903.1z"/><path fill="none" d="M1005.9 1182.3c-6.7 1.5-13.7 2.7-20.7 3.7C992.3 1185 999.2 1183.8 1005.9 1182.3z"/><path fill="none" d="M432.9 1808.8c.9-2.3 1.8-4.7 2.6-7 18.2-48 36.2-94.7 54-140.1 20-51 39.8-100.4 59.3-148.3 20.6-50.4 40.9-99.2 60.9-146.3 21-49.4 41.7-97 62-142.8 16.5-37.3 32.8-73.4 48.9-108.3 5.4-11.7 10.7-23.2 16-34.6 10.5-22.7 21-44.8 31.3-66.5 9.5-20 19-39.6 28.3-58.8 3.1-6.4 6.2-12.8 9.3-19.1.5-1 1-2 1.5-3.1l-10.2 1.1-8-15.9c-.8 1.6-1.6 3.1-2.4 4.6-14.5 28.8-28.9 57.9-43.1 87.2-8.2 16.9-16.4 34-24.6 51-22.6 47.4-44.8 95.2-66.6 143.3-22.1 48.6-43.7 97.5-64.9 146.5-20.8 48.1-41.3 96.2-61.2 144.2-20 48-39.5 95.7-58.5 143.2-19.9 49.5-39.2 98.7-58 147.2-4.2 10.9-8.5 21.9-12.7 32.8-15 39.2-29.7 77.8-44 116l12.7 25.1 11.4-1.2c.4-1.1.8-2.3 1.3-3.4C396.7 1905.4 414.9 1856.4 432.9 1808.8z"/><path fill="none" d="M980 1186.8c.1.0.1.0.1-.1C980.1 1186.8 980.1 1186.8 980 1186.8z"/><path fill="#be202e" d="M952.6 1323c-10.6 1.9-21.4 3.8-32.5 5.7-.1.0-.1.1-.2.1 5.6-.8 11.2-1.7 16.6-2.6C942 1325.2 947.3 1324.1 952.6 1323z"/><path opacity=".35" fill="#be202e" d="M952.6 1323c-10.6 1.9-21.4 3.8-32.5 5.7-.1.0-.1.1-.2.1 5.6-.8 11.2-1.7 16.6-2.6C942 1325.2 947.3 1324.1 952.6 1323z"/><path fill="#be202e" d="M980.3 1186.7C980.2 1186.7 980.2 1186.7 980.3 1186.7c-.1.1-.2.1-.2.1 1.8-.2 3.5-.5 5.2-.8 7-1 13.9-2.2 20.7-3.7C997.5 1183.8 989 1185.2 980.3 1186.7z"/><path opacity=".35" fill="#be202e" d="M980.3 1186.7C980.2 1186.7 980.2 1186.7 980.3 1186.7c-.1.1-.2.1-.2.1 1.8-.2 3.5-.5 5.2-.8 7-1 13.9-2.2 20.7-3.7C997.5 1183.8 989 1185.2 980.3 1186.7z"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="-7537.7339" y1="-2391.4075" x2="-4625.4141" y2="-2391.4075" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_2_)" d="M858.6 784.7c25.1-46.9 50.5-92.8 76.2-137.4 26.7-46.4 53.7-91.3 80.9-134.7 1.6-2.6 3.2-5.2 4.8-7.7 27-42.7 54.2-83.7 81.6-122.9L1019.5 226c-6.2 7.6-12.5 15.3-18.8 23.2-23.8 29.7-48.6 61.6-73.9 95.5-28.6 38.2-58 78.9-87.8 121.7-27.6 39.5-55.5 80.9-83.5 123.7-23.8 36.5-47.7 74-71.4 112.5-.9 1.4-1.8 2.9-2.6 4.3L789 919.2C811.8 873.6 835.1 828.7 858.6 784.7z"/><linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="-7186.1777" y1="-2099.3059" x2="-5450.7183" y2="-2099.3059" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset="0" style="stop-color:#282662"/><stop offset=".0954839" style="stop-color:#662E8D"/><stop offset=".7882" style="stop-color:#9F2064"/><stop offset=".9487" style="stop-color:#CD2032"/></linearGradient><path fill="url(#SVGID_3_)" d="M369 1981c-14.2 39.1-28.5 78.9-42.9 119.6-.2.6-.4 1.2-.6 1.8-2 5.7-4.1 11.5-6.1 17.2-9.7 27.4-18 52.1-37.3 108.2 31.7 14.5 57.1 52.5 81.1 95.6-2.6-44.7-21-86.6-56.2-119.1 156.1 7 290.6-32.4 360.1-146.6 6.2-10.2 11.9-20.9 17-32.2-31.6 40.1-70.8 57.1-144.5 53-.2.1-.3.1-.5.2.2-.1.3-.1.5-.2 108.6-48.6 163.1-95.3 211.2-172.6 11.4-18.3 22.5-38.4 33.8-60.6-94.9 97.5-205 125.3-320.9 104.2l-86.9 9.5C374.4 1966.3 371.7 1973.6 369 1981z"/><linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2418.5454" x2="-4461.8428" y2="-2418.5454" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_4_)" d="M409.6 1786.3c18.8-48.5 38.1-97.7 58-147.2 19-47.4 38.5-95.2 58.5-143.2s40.4-96.1 61.2-144.2c21.2-49 42.9-97.8 64.9-146.5 21.8-48.1 44-95.9 66.6-143.3 8.1-17.1 16.3-34.1 24.6-51 14.2-29.3 28.6-58.4 43.1-87.2.8-1.6 1.6-3.1 2.4-4.6L681.4 706.8c-1.8 2.9-3.5 5.8-5.3 8.6-25.1 40.9-50 82.7-74.4 125.4-24.7 43.1-49 87.1-72.7 131.7-20 37.6-39.6 75.6-58.6 113.9-3.8 7.8-7.6 15.5-11.3 23.2-23.4 48.2-44.6 94.8-63.7 139.5-21.7 50.7-40.7 99.2-57.5 145.1-11 30.2-21 59.4-30.1 87.4-7.5 24-14.7 47.9-21.5 71.8-16 56.3-29.9 112.4-41.2 168.3L353 1935.1c14.3-38.1 28.9-76.8 44-116C401.1 1808.2 405.4 1797.3 409.6 1786.3z"/><linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="-7161.7642" y1="-2379.1431" x2="-5631.2524" y2="-2379.1431" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset="0" style="stop-color:#282662"/><stop offset=".0954839" style="stop-color:#662E8D"/><stop offset=".7882" style="stop-color:#9F2064"/><stop offset=".9487" style="stop-color:#CD2032"/></linearGradient><path fill="url(#SVGID_5_)" d="M243.5 1729.4c-13.6 68.2-23.2 136.2-28 203.8-.2 2.4-.4 4.7-.5 7.1-33.7-54-124-106.8-123.8-106.2 64.6 93.7 113.7 186.7 120.9 278-34.6 7.1-82-3.2-136.8-23.3 57.1 52.5 1e2 67 116.7 70.9-52.5 3.3-107.1 39.3-162.1 80.8 80.5-32.8 145.5-45.8 192.1-35.3C148.1 2414.2 74.1 2645 0 2890c22.7-6.7 36.2-21.9 43.9-42.6 13.2-44.4 100.8-335.6 238-718.2 3.9-10.9 7.8-21.8 11.8-32.9 1.1-3 2.2-6.1 3.3-9.2 14.5-40.1 29.5-81.1 45.1-122.9 3.5-9.5 7.1-19 10.7-28.6.1-.2.1-.4.2-.6l-107.9-213.2C244.6 1724.4 244 1726.9 243.5 1729.4z"/><linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2117.1309" x2="-4461.8428" y2="-2117.1309" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_6_)" d="M805.6 937c-3.1 6.3-6.2 12.7-9.3 19.1-9.3 19.2-18.8 38.8-28.3 58.8-10.3 21.7-20.7 43.9-31.3 66.5-5.3 11.4-10.6 22.9-16 34.6-16.1 35-32.4 71.1-48.9 108.3-20.3 45.8-41 93.4-62 142.8-20 47.1-40.3 95.9-60.9 146.3-19.5 47.9-39.3 97.3-59.3 148.3-17.8 45.4-35.9 92.1-54 140.1-.9 2.3-1.8 4.7-2.6 7-18 47.6-36.2 96.6-54.6 146.8-.4 1.1-.8 2.3-1.3 3.4l86.9-9.5c-1.7-.3-3.5-.5-5.2-.9 103.9-13 242.1-90.6 331.4-186.5 41.1-44.2 78.5-96.3 113-157.3 25.7-45.4 49.8-95.8 72.8-151.5 20.1-48.7 39.4-101.4 58-158.6-23.9 12.6-51.2 21.8-81.4 28.2-5.3 1.1-10.7 2.2-16.1 3.1-5.5 1-11 1.8-16.6 2.6.1.0.1-.1.2-.1 96.9-37.3 158-109.2 202.4-197.4-25.5 17.4-66.9 40.1-116.6 51.1-6.7 1.5-13.7 2.7-20.7 3.7-1.7.3-3.5.6-5.2.8.1.0.1.0.1-.1h.1c33.6-14.1 62-29.8 86.6-48.4 5.3-4 10.4-8.1 15.3-12.3 7.5-6.5 14.7-13.3 21.5-20.5 4.4-4.6 8.6-9.3 12.7-14.2 9.6-11.5 18.7-23.9 27.1-37.3 2.6-4.1 5.1-8.3 7.6-12.6 3.2-6.2 6.3-12.3 9.3-18.3 13.5-27.2 24.4-51.5 33-72.8 4.3-10.6 8.1-20.5 11.3-29.7 1.3-3.7 2.5-7.2 3.7-10.6 3.4-10.2 6.2-19.3 8.4-27.3 3.3-12 5.3-21.5 6.4-28.4-3.3 2.6-7.1 5.2-11.3 7.7-29.3 17.5-79.5 33.4-119.9 40.8l79.8-8.8-79.8 8.8c-.6.1-1.2.2-1.8.3-4 .7-8.1 1.3-12.2 2 .7-.3 1.4-.7 2.1-1l-273 29.9C806.6 935 806.1 936 805.6 937z"/><linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="-7554.8232" y1="-2132.0981" x2="-4642.5034" y2="-2132.0981" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_7_)" d="M1112.9 385.1c-24.3 37.3-50.8 79.6-79.4 127.5-1.5 2.5-3 5.1-4.5 7.6-24.6 41.5-50.8 87.1-78.3 137-23.8 43.1-48.5 89.3-74.3 139C854 839.5 830.8 885.4 807 934l273-29.9c79.5-36.6 115.1-69.7 149.6-117.6 9.2-13.2 18.4-27 27.5-41.3 28-43.8 55.6-92 80.1-139.9 23.7-46.3 44.7-92.2 60.7-133.5 10.2-26.3 18.4-50.8 24.1-72.3 5-19 8.9-36.9 11.9-54.1C1327.9 363.5 1197.6 380.9 1112.9 385.1z"/><path fill="#be202e" d="M936.5 1326.1c-5.5 1-11 1.8-16.6 2.6C925.5 1328 931 1327.1 936.5 1326.1z"/><path opacity=".35" fill="#be202e" d="M936.5 1326.1c-5.5 1-11 1.8-16.6 2.6C925.5 1328 931 1327.1 936.5 1326.1z"/><linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2027.484" x2="-4461.8433" y2="-2027.484" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_8_)" d="M936.5 1326.1c-5.5 1-11 1.8-16.6 2.6C925.5 1328 931 1327.1 936.5 1326.1z"/><path fill="#be202e" d="M980 1186.8c1.8-.2 3.5-.5 5.2-.8C983.5 1186.3 981.8 1186.6 980 1186.8z"/><path opacity=".35" fill="#be202e" d="M980 1186.8c1.8-.2 3.5-.5 5.2-.8C983.5 1186.3 981.8 1186.6 980 1186.8z"/><linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="-7374.1626" y1="-2037.7417" x2="-4461.8433" y2="-2037.7417" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_9_)" d="M980 1186.8c1.8-.2 3.5-.5 5.2-.8C983.5 1186.3 981.8 1186.6 980 1186.8z"/><path fill="#be202e" d="M980.2 1186.7z"/><path opacity=".35" fill="#be202e" d="M980.2 1186.7z"/><linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="-5738.0635" y1="-2039.799" x2="-5094.3457" y2="-2039.799" gradientTransform="matrix(0.4226 -0.9063 0.9063 0.4226 5117.8774 -2859.9343)"><stop offset=".3233" style="stop-color:#9E2064"/><stop offset=".6302" style="stop-color:#C92037"/><stop offset=".7514" style="stop-color:#CD2335"/><stop offset="1" style="stop-color:#E97826"/></linearGradient><path fill="url(#SVGID_10_)" d="M980.2 1186.7z"/></svg>
</div>
</a>
<ul class="footer-link">
<li><a class="white" href="http://www.apache.org">Foundation</a></li>
<li><a class="white" href="http://www.apache.org/licenses/">License</a></li>
<li><a class="white" href="https://www.apache.org/security/">Security</a></li>
<li><a class="white" href="http://www.apache.org/events/current-event">Events</a></li>
<li><a class="white" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
<li><a class="white" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</div>
</div>
<div class="col-6 text-white text-center container-center">
<p>Copyright &copy; 2022 The Apache Software Foundation, Licensed under the <a class="white" href="https://www.apache.org/licenses/LICENSE-2.0">Apache License Version 2.0</a></p>
<p>Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
</div>
<div class="col-1"></div>
</div>
</div>
</footer>
</div>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"
integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN"
crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js"
integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA=="
crossorigin="anonymous"></script>
<script src='/js/tabpane-persist.js'></script>
<script src="/js/main.min.1a2e43037d7eeb7eb548659ffab8adc920ddeef68063a09913f04392dd3c1f19.js" integrity="sha256-Gi5DA31&#43;6361SGWf&#43;ritySDd7vaAY6CZE/BDkt08Hxk=" crossorigin="anonymous"></script>
<script src='/js/prism.js'></script>
</body>
</html>