-
Notifications
You must be signed in to change notification settings - Fork 114
[da-vinci] Remove deprecated Ingestion Isolation feature #2475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[da-vinci] Remove deprecated Ingestion Isolation feature #2475
Conversation
Remove the Ingestion Isolation feature which enabled running ingestion in a separate forked JVM process communicating via HTTP/Netty IPC. This feature is no longer needed, and removing it reduces codebase complexity and maintenance burden. - Delete ~30 production and test files: IsolatedIngestionBackend, IsolatedIngestionServer, MainIngestionMonitorService, and related classes in ingestion/isolated/, ingestion/main/, and utils/ - Delete IngestionMode and IngestionAction enums - Remove all SERVER_INGESTION_ISOLATION_* config keys from ConfigKeys - Simplify DaVinciBackend to always use DefaultIngestionBackend and StorageEngineMetadataService - Remove isIsolatedIngestion parameter from StoreIngestionTask, KafkaStoreIngestionService, BlobTransferUtils, and VeniceMetadataRepositoryBuilder - Remove ingestion isolation guards from DefaultIngestionBackend, AvroGenericDaVinciClient, and VersionBackend - Remove 6 ingestion isolation Avro protocol definitions and their avsc schemas (IngestionTaskCommand, IngestionTaskReport, IngestionMetricsReport, IngestionStorageMetadata, ProcessShutdownCommand, LoadedStoreUserPartitionMapping) - Remove unused StorageService methods (getStoreVersionStateSyncer, closeStorePartition) that were only used by ingestion isolation - Clean up SpotBugs exclusions, server properties, and build configs - Update integration tests to remove isolation-specific parameterization Co-Authored-By: Claude Opus 4.6 <[email protected]>
fecf7f2 to
b3e9d66
Compare
KaiSernLim
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think if it builds and all the tests pass, then it should be good. i took a look through all the files and it lgtm
Code reviewNo blocking issues found. Two low-confidence observations noted below:
Lines 201 to 206 in b3e9d66
Lines 97 to 105 in b3e9d66
Checked for bugs, git history context, previous PR comments, code comment compliance, and CLAUDE.md compliance (none found in repo). 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
Problem Statement
The Ingestion Isolation feature allowed running ingestion in a separate forked JVM process, communicating via HTTP/Netty IPC. This feature is no longer needed and adds significant complexity and maintenance burden to the codebase (~6,300 lines of code across ~30 files).
Solution
Remove all Ingestion Isolation related code, including:
Deleted files (~30 production + test files):
IsolatedIngestionBackend,IsolatedIngestionServer,IsolatedIngestionServerHandler, and related classes iningestion/isolated/MainIngestionMonitorService,MainIngestionRequestClient,MainIngestionStorageMetadataService, and related classes iningestion/main/IsolatedIngestionUtils,HttpClientTransport,RelayNotifierIsolatedIngestionProcessStats,IsolatedIngestionProcessHeartbeatStats,MetadataUpdateStatsIngestionModeandIngestionActionenumsSimplified production code:
SERVER_INGESTION_ISOLATION_*config keys fromConfigKeysDaVinciBackendto always useDefaultIngestionBackendandStorageEngineMetadataServiceisIsolatedIngestionparameter fromStoreIngestionTask,KafkaStoreIngestionService,BlobTransferUtils,VeniceMetadataRepositoryBuilder, and related classesDefaultIngestionBackend,AvroGenericDaVinciClient, andVersionBackendNote: Avro schemas and
AvroProtocolDefinitionenum entries are retained for backward compatibility.DaVinciConfig.isIsolated()(client subscription isolation) is a different feature and is NOT removed.Code changes
SERVER_INGESTION_MODEandSERVER_INGESTION_ISOLATION_*configs.Concurrency-Specific Checks
Both reviewer and PR author to verify
synchronized,RWLock) are used where needed.ConcurrentHashMap,CopyOnWriteArrayList).No concurrency-related changes; this is strictly code removal and simplification.
How was this PR tested?
Modified or extended existing tests.
Verified backward compatibility (if applicable).
All production code compiles successfully
All
da-vinci-clientunit tests passAll integration test code compiles successfully
Grep verification confirms no stale references to removed code remain
Does this PR introduce any user-facing or breaking changes?
Users who had
SERVER_INGESTION_MODE=ISOLATEDconfigured will no longer have ingestion isolation enabled. TheSERVER_INGESTION_MODEand allSERVER_INGESTION_ISOLATION_*config keys are removed. Ingestion will always run in the built-in (default) mode.VALIDATION_OVERRIDE