yuqi1129 opened a new issue, #13594: URL: https://github.com/apache/gravitino/issues/13594
### Describe the proposal Track the performance and reliability issues identified after the OCC and multi-node cache changes, and verify their fixes for Gravitino 2.0.0. This release-specific epic complements the general API performance epic #6560. Prioritize cache deadlocks, nested JDBC pool starvation, and metadata writes caused by unchanged reads. Also track change-log catch-up, connection reuse, and authorization allocation/contention. Keep the seven issues distinct: metadata-store idle retention, catalog idle retention, and catalog validation without a default database have different causes. The latest baseline targets main `8e9ca0009d68dbf9edb5e313d3d51688b9c4cff1`, Java 17, MySQL 8.0.35, authorization enabled, and single/two-node table API workloads. It contains 197 measured phases and 1,052,125 requests; the default-pool ALTER reproduction accounts for all 25 HTTP 500 responses. The earlier three issues use an earlier baseline and different workloads, so their throughput numbers are not directly comparable. Evidence and reproducible scripts are retained in `dev/performance/main-auth-table-20260929/` in the testing workspace; these local artifacts are not yet published in the repository. Each child issue includes reproduction details. The short soak shows no obvious increasing retention, but does not establish long-term or native memory safety. No production SLO or pre-OCC matched baseline has been established. Completion requires: * Resolve each child with a linked fix and meaningful regression coverage; do not close issues solely because a larger pool or another benchmark workaround hides the failure. * Re-run authorization-enabled listTables, loadTable, alterTable and dropTable with ordinary users, matching data/configuration/resources and at least three repeats. Preserve permission-denial, listing cardinality, physical mutation/deletion, durability and two-node visibility checks. * Verify zero metadata version/history/change-log writes for warmed unchanged loads, no nested-borrow starvation with the default pool, stable connection reuse, and backlog catch-up without one full polling delay per batch. * Retain throughput, p50/p95/p99, errors, SQL counts/digests, pool configuration, JFR CPU/wait flame graphs, allocation, GC and post-GC heap/NMT trends. Extend the soak and cardinality coverage; investigate growing retention with heap analysis when observed. * Agree on workload-specific acceptance thresholds before declaring release performance readiness. Publish comparable before/after evidence and explicitly record unresolved limits or regressions. ### Task list - [ ] #13580 — Cache eviction cleanup deadlock with entity-cache segment locks - [ ] #13581 — Change-log backlog drains with a polling delay after each batch - [ ] #13582 — Metadata JDBC idle retention and connection churn - [ ] #13590 — Unchanged loadTable rewrites column metadata - [ ] #13591 — Concurrent MySQL ALTER exhausts the pool through nested borrows - [ ] #13592 — MySQL catalog without a default database fails connection reuse - [ ] #13593 — Per-table list authorization allocation and OGNL contention -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
