Skip to content

Optimize binary file size #815

Description

@hnwyllmm

Description

The current stripped release binary for seekdb is approximately 380 MB, which is excessively large. Since the binary file is loaded into memory at runtime, this also impacts memory usage.

Proposed Optimization Areas

The following table outlines potential areas for code removal or optimization to reduce binary size:

Optimization Point Action / Details Notes / Considerations
General
Remove Oracle mode code Delete
Remove shared storage code Delete
Remove redundant virtual tables Delete tables like GV$, CDB_*
Charset Keep only utf8mb4 and related collations No requirement for AP/AI scenarios; needs evaluation for TP scenarios.
Backup/Restore/Archive/CDC Move to close_module CDC functionality must be retained.
RPC Code
  • Convert to local calls if only synchronous invocation is used.
  • Delete serialization/deserialization code for objects only used in synchronous calls.
Note: Some DDL RPCs may be invoked from thread pools.
gcc_except_table Remove most exception tables and stack info (~28 MB). SEEKDB does not use exceptions for error handling (except for objit). Some exception handling may need to be retained.
GIS Code Optimization ~33.9 MB. Contains many template cross-redundant codes (e.g., class Comparison<A,B> and class Comparison<B, A>).
TABLE API Delete
Vector Engine Optimization
  • Remove Oracle-related code.
  • Optimize comparison functions, etc.: remove infrequently used types and convert them to slow-path calls. Clean up redundant templates like func(a,b) and func(b,a). Convert non-performance-critical type support (e.g., JSON) to slow path (requires specific analysis).
Direct Load Non-core functionality; evaluate for deletion.
PX/PDML/DTL Delete code related to remote nodes.
Unit Manager Delete
Multi-tenancy

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions