Apache Gravitino 1.2.1
· 3 min read
We are glad to announce the release of Apache Gravitino 1.2.1! This is a patch release that focuses on stability, correctness, and performance improvements. It includes bug fixes across the core server, authorization, Iceberg REST, Trino connector, Hive, and various catalog implementations.
Improvements
Core & Server
- Performance: Improve the performance of metadata object retrieval. #10459
- Batch operations: Support batch get owner for bundle of metadata objects. #9518
- Owner management: Clean zombie VIEW owner relations when deleting schema or catalog. #10458
Authorization
- Performance: Optimize JCasbin policy lookup for improved authorization performance when roles with large grants. #10907
Iceberg REST Catalog
- Spec compliance: Remove prefix from config endpoint per Iceberg REST spec. #10640
- Schema version: Change default Iceberg JDBC schema version to v1. #10851
- Error handling: Return JSON error body instead of HTML for pre-JAX-RS errors. #10667
Catalogs & Connectors
- Hive: Shrink the package size of Hive Metastore 2 and Hive Metastore 3 catalogs. #10457
- Paimon: Exclude unnecessary tomcat-embed-core transitive dependency from Paimon catalog. #10524
- Lance: Clean up redundant code in
GravitinoLanceTableOperations#createTable. #10496
Helm & Charts
- Launch script: Use
start-gravitino.shinstead ofgravitino.shto launch the service. #10557 - Kubernetes: Add serviceAccountName to pod spec in deployment.yaml. #10573
Build
- Package size: Remove testing jars from release package. #10331
- Module structure: Rename updater module to updaters for consistency. #10452
- Build tooling: Remove release task and centralize JDK 8 compatibility handling. #10262
- GitHub Actions: Update actions/upload-artifact from v4 to v7. #10646
Bug Fixes
Core & Server
- Fix batchSelect queries missing version-info JOIN and field aliases. #10444
- Fix missing partition path in getPartition error messages. #10175
- Fix rollback masking the original post-hook exception. #10217
- Fix missing
@Param("metalakeId")in GroupRoleRelMapper.softDeleteGroupRoleRelByMetalakeId. #10657 - Avoid blocking dropCatalog on imported schemas. #10737
- Default
ifExiststotruewhen deleting a table index. #10380 - Close leaked EntityStore lifecycle to fix test flakiness. #10700
- Harden retention count assertions in TestFunctionMetaService and TestFilesetMetaService. #10700
Trino Connector
- Fix TrinoException when using catalog name with metalake. #10717
Iceberg REST Catalog
- Fix table scan planning failure due to incorrect SQL generation. #10841
- Fix IcebergTableHookDispatcher failure with NoSuchTableException for staged creates. #10766
Hive
- Fix Hive Metastore OOM by closing HiveClientFactory on pool shutdown. #10844
- Fix concurrent keytab symlink creation race condition in Hive Kerberos authentication. #10741
ClickHouse
- Fix ClickHouse alter-table bugs including autoIncrement issues. #10381
Web UI
- Preserve hidden properties when editing a catalog in web-v2. #10837
MCP Server
- Fix path encoding issues in MCP REST client for special characters. #10799
Common
- Lazy-initialize Version to fix TestVersion without jar task. #10762
- Block H2 JDBC URL and driver in catalog datasource creation. #10801
CI & Infrastructure
- Pin localstack docker image version to 4.14.0 to fix CI problem. #10527
- Pin docker/* GitHub Actions to SHA-based references (v4.0.0) to comply with ASF policy. #10504
Documentation
- Clarify verified JDBC compatibility matrix for ClickHouse. #10308
Acknowledgements
Thanks to everyone who contributed to the 1.2.1 work — code, reviews, tests, issue triage, design, and feedback.
babumahesh, bharos, danhuawang, diqiu50, FANNG1, geyanggang, hdygxsj, jerryshao, laserninja, mchades, pandeysambhi, pythaac, roryqi, sachinnn99, yuw1, yuqi1129
Apache, Apache Flink, Apache Hive, Apache Hudi, Apache Iceberg, Apache Ranger, Apache Spark, Apache Paimon and Apache Gravitino are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.