Skip to content

Remove CDC-specific Data Dictionary #1044

Description

@footka

Description

OceanBase Lite/seekdb no longer provides external CDC/obcdc capability. The current CDC-specific Data Dictionary was used to periodically persist tenant schema and log stream metadata to SYS_LS for offline log parsing by obcdc. This capability is no longer functional in seekdb lite mode: ObDataDictService does not start, ObDataDictStorage::prepare_buf_ consistently returns OB_STATE_NOT_MATCH, and DDL transactions no longer serialize full incremental schema.

The existing related code, configurations, system tables, and tests are primarily for upstream compatibility or are historical legacy. They should be completely cleaned up to reduce maintenance and compilation costs.

Proposed Solution

  1. Delete CDC-specific data dictionary generation, serialization, persistence, query, and parsing logic under src/logservice/data_dictionary, along with corresponding build dependencies.
  2. Delete the registration, initialization, interfaces, and member dependencies of ObDataDictService.
  3. Clean up the dump_data_dictionary_to_log_interval configuration item.
  4. Clean up internal tables and views that only serve CDC, such as __all_data_dictionary_in_log and DBA_OB_DATA_DICTIONARY_IN_LOG. If there are upgrade or compatibility constraints, handle them with deprecated placeholder methods and provide explanations.
  5. Clean up tests and public includes under datadict and libobcdc directories that only validate this capability.
  6. Clean up debug sync points, LS get mod, logs, and auxiliary code that have no consumers.

Scope and Boundaries

  1. Do not delete the general database Schema data dictionary, information_schema, or other system table capabilities.
  2. Retain the DDL_TRANS MDS marker required for seekdb's internal Change Stream to perceive DDL; it serves internal capabilities like asynchronous indexing and is not part of the CDC Data Dictionary.
  3. If there are historical log compatibility requirements for DATA_DICT_LOG_BASE_TYPE = 20, it should be retained as a deprecated/reserved number and must not be reused.
  4. Before deletion, confirm that backup/restore, log replay, upgrades, and internal Change Stream do not depend on the Data Dictionary payload.

Acceptance Criteria

  1. The lite/seekdb target can compile and start normally, and no longer initializes or schedules the Data Dictionary service.
  2. During runtime, DATA_DICT logs are no longer generated for SYS_LS, and data dictionary location records are no longer written.
  3. DDL_TRANS marking and related functions for internal Change Stream and asynchronous indexing operate normally.
  4. Related unit tests, mysqltest/obtest, and basic regression tests pass.
  5. No invalid configurations, system views, module interfaces, or compilation source files remain; any compatibility placeholders that must be retained have clear comments.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    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