[seekdb][memory] Add main memory module statistics view - #1306
Open
hnwyllmm wants to merge 469 commits into
Open
[seekdb][memory] Add main memory module statistics view#1306hnwyllmm wants to merge 469 commits into
hnwyllmm wants to merge 469 commits into
Conversation
Co-authored-by: footka <footka@users.noreply.github.com>
…ceanbase#924) Delete entirely-dead files only; no logic changes (kept files lose just dangling #include / CMake entries). Each batch verified by release recompile+link; release/debug/sanity share one source-file set. - 41 orphan .cpp absent from every active CMake list - 35 headers with zero #include references - localtime dead cluster (superseded by ob_time_convert) + 8 orphan headers from a 2nd fixpoint pass - 456 dead test files (428 .cpp + 28 .h) built by no target Verified: release relinks each batch; deploy + login + DDL/DML smoke pass. Deleted files are outside the release build graph. Co-authored-by: footka <footka@users.noreply.github.com>
* pl: replace the LLVM ORC-JIT executor with a tree-walking interpreter
Execute PL by walking the resolved ObPLStmt tree (ObPLInterpreter)
instead of JIT-compiling routines with LLVM, and remove the ORC-JIT
code generator and the objit module.
The interpreter dispatches blocks, DECLARE ... DEFAULT, assignment
(including SET @user_var / @@sys_var and obj-access targets such as
a trigger's NEW.col), IF/ELSEIF, CASE, WHILE, LOOP, REPEAT, LEAVE
ITERATE, DO, embedded SQL, RETURN (with deep-copied results), cursors
(DECLARE/OPEN/FETCH/CLOSE), exception handling (DECLARE HANDLER
SIGNAL, completion conditions), PRAGMA INTERFACE routines, and nested
CALL with OUT/INOUT copy-back. Loops poll for KILL and query/transaction
timeout at the same cadence the JIT used. It passes the full PL
mysqltest suite.
* Remove the remaining LLVM-JIT code and fix code affected by removing Oracle mode
* fix(build): re-supply oblib zstd/lz4 objects to liboceanbase.so after removing objit
Removing the LLVM-JIT dropped objit from the shared oceanbase lib's link line.
objit linked oblib(STATIC) -- which is built from oblib_extra_objects -- and was
the only path bringing ObZstdWrapper (and lz4) into liboceanbase.so. Without it the
shared lib has undefined ObZstdWrapper symbols, so every unittest that links it
fails under lld's --no-allow-shlib-undefined.
Add ${oblib_extra_objects} to the shared lib's --whole-archive group to supply them
directly, restoring what objit used to bring in transitively.
---------
Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
Execute PL by walking the resolved ObPLStmt tree (ObPLInterpreter) instead of JIT-compiling routines with LLVM, and remove the ORC-JIT code generator and the objit module. The interpreter dispatches blocks, DECLARE ... DEFAULT, assignment (including SET @user_var / @@sys_var and obj-access targets such as a trigger's NEW.col), IF/ELSEIF, CASE, WHILE, LOOP, REPEAT, LEAVE ITERATE, DO, embedded SQL, RETURN (with deep-copied results), cursors (DECLARE/OPEN/FETCH/CLOSE), exception handling (DECLARE HANDLER SIGNAL, completion conditions), PRAGMA INTERFACE routines, and nested CALL with OUT/INOUT copy-back. Loops poll for KILL and query/transaction timeout at the same cadence the JIT used. It passes the full PL mysqltest suite.
* Avoid periodic snapshot gc scn table updates * WIP: record glibc fragmentation investigation changes * Use mmap for protected stack allocation * Remove temporary memory diagnostics * Revert CSFetcher interval change * Revert checkpoint CS min dep LSN cache * Revert snapshot GC interval change * revert RELOAD_INTERVAL * Revert CoStack mmap allocation * Revert CoStack mmap allocation --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com> Co-authored-by: wangyunlai.wyl <wangyunlai.wyl@oceanbase.com>
* Optimize raw shared object writer buffer lifetime * Refactor shared object writer buffer lifecycle * Remove unused shared object cross block path --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
…ts (oceanbase#930) Remove cross-TU duplicate template instantiation and serial unity stragglers in the vectorized encode/decode hot paths (coverage build) - encoding: move the vector-decode dispatcher/wrapper explicit instantiations out of ob_vector_decode_util.h into extern template + dedicated ALONE definition TUs (locator groups A/B/C). encoding1 unity 455s -> 53s area long-tail 455s -> 168s. - cs_encoding: move the two heavy stream vector decoders to ALONE so they compile in parallel instead of serializing in one unity. 342s -> 190s. - ObHashPartInfrastructureVec: sink the header explicit instantiations into ob_hp_infras_vec_op.cpp (extern template), de-duping across the vec op TUs. Pure compile-time refactor: no generated-code/runtime change, debug and coverage flags untouched. Full clean build links with 0 undefined refs. Co-authored-by: footka <footka@users.noreply.github.com>
…nbase#939) Squash of 572 commits since 1b2db1dd. Dissolve the multi-tenant framework (ObMultiTenant/MTL) into the global module provider share::g_mp; eliminate tenant_id across schema/SQL/storage; make all unittests compile and pass; move campaign tooling out of git. Co-authored-by: footka <footka@users.noreply.github.com>
…on (oceanbase#940) * chore: remove inner table build artifacts and add to .gitignore * feat(build): auto-generate inner table files with CMake --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
… fix tests (oceanbase#946) src: remove GV$/V$ dual-name views, ObMultiTenantOperator, tenant-named inner tables, dead RPC arg structs; inline ObTenantConfigGuard/TENANT_CONF -> GCONF; trim dead multi-tenant schema code. test: fix farm mysqltest failures (memstore/parameter_stat table redirects golden re-records, drop already-deleted cases from psmalltest/config lists) and unittest build (add ob_tenant_base.h include, ObTenantConfigGuard -> GCONF). Co-authored-by: footka <footka@users.noreply.github.com>
* fix pl calling in embed mode * delete some unused macro build_embed_mode --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
Co-authored-by: ep-12221 <ep-12221@users.noreply.github.com>
… fix tests src: remove GV$/V$ dual-name views, ObMultiTenantOperator, tenant-named inner tables, dead RPC arg structs; inline ObTenantConfigGuard/TENANT_CONF -> GCONF; trim dead multi-tenant schema code. test: fix farm mysqltest failures (memstore/parameter_stat table redirects golden re-records, drop already-deleted cases from psmalltest/config lists) and unittest build (add ob_tenant_base.h include, ObTenantConfigGuard -> GCONF).
…ute_plan (oceanbase#947) Move PX admission from open_plan to do_open_plan right before execute_plan (after open-phase pre-execution work like direct-load's create_hidden_table), for all plans. Previously PX was reserved at open_plan and held idle through create_hidden_table's same-table DDL conflict retry, starving the conflicting index build that also needs PX -- a circular hold-and-wait. Admitting right before parallel execution keeps the reservation tight to actual use; the admission_acquired guard keeps the admit idempotent across the txn-set-violation retry loop; release is unchanged. Co-authored-by: footka <footka@users.noreply.github.com>
* [seekdb][lib] fix lbt addr2line for non-PIE executables * [seekdb][lib] simplify lbt offset handling for non-PIE build * fix init deadlock --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
* fix compile in non unity mode * Remove table API remnants * Remove reserved tracepoint placeholders * Remove backup and physical restore remnants * Merge latest origin/master * refresh * Remove restored tenant compatibility leftovers * Merge latest origin/master * delete unused code * revert cached_catalog_meta * fix compile bug * revert parser * Fix unittest and parameter_data_type cleanup fallout --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
Co-authored-by: ep-12221 <ep-12221@users.noreply.github.com>
Consolidate the CI pipeline migration from farm2 into GitLab CI as a single clean commit for MR review. Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
- Drop BOLT entirely: do_bolt_opt, perf-*.fdata, and all ENABLE_BOLT/ OB_ENABLE_BOLT wiring in build.sh, Env.cmake, observer CMakeLists, CLOSE_SOURCES. - Name the observer executable 'seekdb' and link it directly. The old design linked 'observer_without_bolt' then 'mv'-ed it to 'seekdb', deleting the link output every build and forcing a full relink on every incremental make. - Replace multi-MB stale AutoFDO/hotfunc profiles with tiny valid placeholders so perf/package builds still exercise the flags with no real effect. Co-authored-by: footka <footka@users.noreply.github.com>
Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
…e#1285) ## Task Description This change addresses a regression introduced by a previous commit that removed retry logic for transient failures during tablet autoincrement operations. ## Solution Description The regression was introduced by commit b1013d2d ("Trim unsupported seekdb features"), which replaced the RPC sequence-cache fetch with a local service and inadvertently dropped the existing retry loop. This fix restores the retry mechanism for transient failures in the tablet autoincrement process. ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note Fix: Restore retry logic for transient failures during tablet autoincrement operations, addressing a regression introduced by a previous code change. Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description This MR fixes three issues related to seekdb restart and replay failures: 1. Server runtime composite schema uses `OB_CORE_SCHEMA_VERSION`. 2. Old redo logs no longer roll back the transaction context (`tx ctx`) restored by checkpoint. 3. Checkpoint recovery for `checksum base` and `SCN`. ## Solution Description 1. Modified the server runtime composite schema logic to correctly utilize `OB_CORE_SCHEMA_VERSION`. 2. Adjusted the redo log replay mechanism to prevent old redo logs from interfering with transaction contexts restored from a checkpoint. 3. Fixed the checkpoint recovery process to properly handle `checksum base` and `SCN`. ## Passed Regressions - Native Bazel `storage_tests`: - `TestObTxMisc.*` - `TestTxCallbackList.*` - Original PDML data: Successfully performed 5 consecutive full restarts with the ability to listen and execute SQL. ## Upgrade Compatibility ## Other Information Related Dima work item: https://project.alipay.com/workItem?workItemId=2026080800118095756 ## Release Note Fixed seekdb restart replay failures by correcting schema version usage, preventing old redo logs from rolling back checkpoint-restored transaction contexts, and fixing checkpoint recovery for checksum base and SCN. --------- Co-authored-by: footka <footka@users.noreply.github.com>
Use the source LS checkpoint and aligned PALF metadata as the copied SSTable replay baseline. Deriving a global maximum from tablet SSTables can skip logs for tablets with older persisted checkpoints.
## Task Description ##### 1. Restore standby database capability ##### 2. Reference the asymmetric role switching model of PostgreSQL physical standby to simplify implementation complexity - PRIMARY -> STANDBY: First, close writes online and persist the target role, which takes effect after restart. - STANDBY -> PRIMARY: In-process one-way Promotion, no restart required, standby's read-only service is not interrupted. - External orchestration is responsible for node selection, command execution, traffic switching, source configuration, stopping, and restarting. - The kernel is responsible for write isolation, switch boundaries, log catch-up, role persistence, and startup recovery. - In case of switch failure, it is preferable to have no primary temporarily than to allow two writable primaries. ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note --------- Co-authored-by: footka <footka@users.noreply.github.com>
…ceanbase#1288) ## Task Description ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information - Related links: - [DIMA-2026081000118135850](https://project.alipay.com/workItem?workItemId=2026081000118135850) ## Release Note Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description seekdb initializes the logger with `no_redirect_flag=true`. As a result, stdout and stderr are not redirected to `seekdb.log`. In daemon mode, direct writes to these file descriptors go to `/dev/null` and diagnostic output can be lost. ## Solution Description Initialize the server logger with `no_redirect_flag=false`. ObLogger then redirects `STDOUT_FILENO` and `STDERR_FILENO` to `log/seekdb.log` using `dup2`, and preserves the redirection when the log file is reopened or rotated. ## Passed Regressions - Full Release build: `./build.sh release --make -j8` - Started a temporary seekdb instance with `--nodaemon`. - Verified `/proc/<pid>/fd/1`, `/proc/<pid>/fd/2`, and `seekdb.log` had the same device and inode. - Wrote distinct stdout and stderr markers through the process descriptors and verified both markers in `seekdb.log`. ## Upgrade Compatibility No storage format, protocol, configuration, or upgrade compatibility impact. Only the destination of stdout and stderr after logger initialization changes. ## Other Information This MR contains one commit: `54e8ffa3d15`. No unrelated commits or files are included. ## Release Note Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
## Task Description ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note --------- Co-authored-by: footka <footka@users.noreply.github.com>
…#1291) ## Task Description The issue was introduced by commit `8e2b24ff01af`, which stopped the commit retry scheduler from waiting for the final asynchronous callback after an initial commit request was accepted. ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description DBMS_STATS internal SQL can request a Degree of Parallelism (DOP) higher than `parallel_servers_target`. The existing PX admission path would wait unless the complete request could be satisfied or no PX query was running. Under sustained concurrent PX traffic, smaller requests could repeatedly consume released workers and delay the large request until query timeout. ## Solution Description Determine the admitted worker count once before execution from the currently available PX quota. Pass the plan's minimum worker count into the target monitor, admit `min(requested, available)` workers when that count satisfies the minimum, and otherwise keep waiting. Existing DFO assignment proportionally downgrades the query to the admitted count, and the worker count remains fixed for that execution. ## Passed Regressions - `./build.sh release --init` - `ob-make ob_sql` - `git diff --check` ## Upgrade Compatibility No schema, configuration, or external API compatibility impact. The change only adjusts the internal PX admission decision. ## Other Information This MR contains one commit: `076ad53ea7d`. The local untracked file named `2` is unrelated and is not included. ## Release Note --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com> Co-authored-by: wangyunlai.wyl <wangyunlai.wyl@oceanbase.com>
## Task Description 1. Restore standby database capability. 2. Reference the PostgreSQL physical standby model, adopting an asymmetric role switch model to simplify implementation complexity. - PRIMARY -> STANDBY: First, disable writes online and persist the target role; the change takes effect after restart. - STANDBY -> PRIMARY: In-process one-way promotion, no restart required, read-only service on the standby is not interrupted. - External orchestration is responsible for node selection, command execution, traffic switching, source configuration, stopping, and restarting. - The kernel is responsible for write isolation, switch boundaries, log catch-up, role persistence, and startup recovery. - In case of a switch failure, it is preferable to have no primary temporarily rather than allowing two writable primaries. ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note - [DIMA-2026081000118111905](https://project.alipay.com/workItem?workItemId=2026081000118111905) --------- Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description
This change addresses an issue introduced by a previous commit that
removed unsupported distributed features. The fix ensures compatibility
by reverting to the legacy VSAG serialization format for vector data.
## Solution Description
The implementation involves modifying the vector serialization logic to
use the previous (legacy) format for VSAG (Vector Storage and Access
Graph) instead of the new format introduced in the problematic commit.
This rollback restores functionality that was broken by the removal of
unsupported distributed features.
## Passed Regressions
## Upgrade Compatibility
## Other Information
- Issue introduced by commit: f7387fb2520509b3772d57cb0d9d51b47fe2d3f0
("refactor: remove unsupported distributed features")
- Related internal link:
[DIMA-2026081100118155873](https://project.alipay.com/workItem?workItemId=2026081100118155873)
## Release Note
Fix: Restored compatibility by using the legacy VSAG serialization
format for vector data, addressing a regression introduced when removing
unsupported distributed features.
Co-authored-by: footka <footka@users.noreply.github.com>
…#1297) ## Task Description The issue was introduced by commit `8e2b24ff01af`, which stopped the commit retry scheduler from waiting for the final asynchronous callback after an initial commit request was accepted. ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information - Related links: - [DIMA-2026081100118160123](https://project.alipay.com/workItem?workItemId=2026081100118160123) ## Release Note Co-authored-by: footka <footka@users.noreply.github.com>
…nbase#1298) ## Task Description Defer the loading of tablet macro information for truncated metadata to optimize performance. ## Solution Description Modified the storage layer logic to postpone the loading of macro block information associated with truncated tablet metadata until it is actually required, rather than loading it eagerly during initialization or certain operations. ## Passed Regressions ## Upgrade Compatibility ## Other Information - **Related Issue:** [DIMA-2026081200118181890](https://project.alipay.com/workItem?workItemId=2026081200118181890) ## Release Note Performance optimization: Tablet macro information for truncated metadata is now loaded lazily, improving startup and operational performance in scenarios with significant metadata truncation. Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description Transaction log replay could encounter a null-pointer SIGSEGV in T1_ReplaySrv0. The issue was that `MdsFactory::deep_copy_buffer_ctx` compared the recursive tuple index directly with the sparse binding type ID. For MdsCtx, the binding type ID is 0 while its tuple index is 1, causing the function to incorrectly return success without allocating a copied context. ## Solution Description Modified the traversal logic to iterate through every registered BufferCtx tuple entry and match the source context using the `BufferCtxBindingTypeId`. Added a success postcondition that rejects a null copied context. A regression test was also added to cover the MdsCtx binding-ID/tuple-index mismatch scenario. ## Passed Regressions - ob-make test_tablet_create_mds_ctx - test_tablet_create_mds_ctx: 2/2 cases passed - The new regression case reproduced the `copied_ctx == nullptr` condition before the fix and passed after the fix. ## Upgrade Compatibility No serialization format or public API changes. This fix only corrects the runtime BufferCtx type lookup logic and adds a defensive error check. ## Other Information - This MR contains only commit 3c338fcacea. - Core-test G4890001028 is running. - Local untracked files are not included. - Related internal link: DIMA-2026080700118077486 ## Release Note --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
## Task Description SeekDB is preparing the 1.4.0 release, while the project, Bazel package metadata, server/data current version definitions, and package examples still report 1.3.0. ## Solution Description - Upgrade the CMake project version from to . - Upgrade Bazel PACKAGE_STRING and PACKAGE_VERSION to . - Upgrade SERVER_CURRENT_VERSION and DATA_CURRENT_VERSION to . - Update seekdb package command examples from 1.3.0 to 1.4.0. ## Passed Regressions - `git diff --check` - Bazel target `//src/observer:seekdb` built successfully after applying a local workaround for a pre-existing OBLib header inventory dependency issue. - `build_bazel/bin/src/observer/seekdb --version` reports `OceanBase seekdb `. ## Upgrade Compatibility This change updates release and data version metadata to . It does not change the minimum compatible version definitions. ## Other Information - This MR contains exactly one commit: `6863dd66d35 upgrade version to 1.4.0`. - The local uncommitted OBLib header inventory workaround used for Bazel validation is intentionally excluded from this MR because it fixes an unrelated pre-existing build dependency issue. - Related links: DIMA-2026081000118117368 ## Release Note --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
Dima: 2026081300118210983
## Task Description DBMS_STATS internal SQL can request a Degree of Parallelism (DOP) higher than `parallel_servers_target`. The existing PX admission path would wait unless the complete request could be satisfied or no PX query was running. Under sustained concurrent PX traffic, smaller requests could repeatedly consume released workers and delay the large request until query timeout. ## Solution Description Determine the admitted worker count once before execution from the currently available PX quota. Pass the plan's minimum worker count into the target monitor, admit `min(requested, available)` workers when that count satisfies the minimum, and otherwise keep waiting. Existing DFO assignment proportionally downgrades the query to the admitted count, and the worker count remains fixed for that execution. ## Passed Regressions - `./build.sh release --init` - `ob-make ob_sql` - `git diff --check` ## Upgrade Compatibility No schema, configuration, or external API compatibility impact. The change only adjusts the internal PX admission decision. ## Other Information This MR contains one commit: 076ad53ea7d. The local untracked file named `2` is unrelated and is not included. ## Release Note --------- Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com> Co-authored-by: wangyunlai.wyl <wangyunlai.wyl@oceanbase.com>
…nbase#1302) ## Task Description Concurrent DDL such as TRUNCATE can replace a table's tablet after GATHER_SCHEMA_STATS has obtained its schema. The block-count estimation then accesses the stale tablet id and returns OB_TABLET_NOT_EXIST(-4725), which is propagated to the caller and causes ddltest_duomo_lite strict failure. ## Solution Description When prepare_gather_stats returns OB_TABLET_NOT_EXIST before statistics are written, report that the runtime schema needs refreshing. GATHER_SCHEMA_STATS refreshes the schema guard, rebuilds the current table's statistics parameters, and retries the table once. After refresh, the existing OB_TABLE_NOT_EXIST handling continues to skip a table that was actually dropped. The retry is limited to one attempt to avoid an unbounded loop. A debug-sync point and mysqltest reproduce the race deterministically by truncating a table immediately before block-count estimation. ## Passed Regressions - Full Bazel build passed. - ddl.gather_schema_stats_truncate_retry deterministic mysqltest passed. - ddltest_duomo_lite vector and hybrid phases ran for 600 seconds each and both strict summaries passed. All 8 GATHER_SCHEMA_STATS calls succeeded, with no OB_TABLET_NOT_EXIST(-4725). ## Upgrade Compatibility No on-disk format, system-table schema, SQL syntax, or protocol change. ## Other Information This MR contains one commit. The unrelated untracked file named 2 is excluded. ## Release Note Co-authored-by: hnwyllmm <hnwyllmm@users.noreply.github.com>
## Task Description Downgrade expected stability logs from a higher severity level (likely `ERROR` or `INFO`) to `WARN`. ## Solution Description Modified the log level for specific, expected stability-related log messages from a higher severity to `WARN` to reduce log noise and better reflect their non-critical nature. ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note Fixed an issue where expected stability events were logged at an inappropriately high severity level (e.g., ERROR/INFO). These logs are now correctly emitted at the WARN level. Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note Co-authored-by: footka <footka@users.noreply.github.com>
## Task Description Validate the SQLite guard mechanism before performing transaction cleanup to prevent potential issues during the cleanup process. ## Solution Description ## Passed Regressions ## Upgrade Compatibility ## Other Information ## Release Note Co-authored-by: footka <footka@users.noreply.github.com>
Member
Author
|
The mapping Dima issue is to add memory statistics views for each major memory module. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task Description
Existing
__all_virtual_memory_info/V$OB_MEMORYrely on obmalloc label statistics, making it impossible to intuitively display the memory usage and limits of main modules after obmalloc is removed.Solution Description
Adjusted
__all_virtual_memory_infoandV$OB_MEMORYto have four columns: MOD_NAME, HOLD, USED, MEM_LIMIT, fixed to aggregate 12 modules: KV Cache, Plan/PS Cache, MemStore, TX_DATA, MDS, Storage Meta, Schema, Vector, SQL Workarea, DTL, and Tmp File. Added a narrow-scope module getter, preserving the native statistical scope of each module. Modules without a valid limit return NULL, and no default ordering is provided. Migrated existing tests/golden files and cleaned up isolated results and assertions that depended on the old label statistics.Passed Regressions
__all_virtual_ps_statis consistentUpgrade Compatibility
Directly replaces the old obmalloc virtual table contract, deleting old fields like ctx/label/count. Queries dependent on the old fields need to migrate to the new four-column module aggregation interface.
Other Information
This MR only contains commit 03a64f8fa00; 2 untracked files are not within the review scope.
V$OB_MEMORYdoes not guarantee a default row order.Release Note