Skip to content

refactor: replace two-stage CSV parsing with a single-pass streaming pipeline to reduce memory usage#47

Open
r1ddh118 wants to merge 3 commits intomainfrom
fix_issue#42
Open

refactor: replace two-stage CSV parsing with a single-pass streaming pipeline to reduce memory usage#47
r1ddh118 wants to merge 3 commits intomainfrom
fix_issue#42

Conversation

@r1ddh118
Copy link
Copy Markdown
Collaborator

This PR introduces a single-pass streaming architecture for the telemetry CSV parser to prevent OutOfMemoryError (OOM) crashes on large 1hr+ Litchi logs. Previously, the parser loaded the entire CSV into memory as a List<List> before parsing (resulting in 1.4M+ allocated objects for large flights).

CsvIngestParser.kt Refactor: Merged CsvIngest and CsvParser into a combined streaming API (streamAndParse). We now read the file lazily using a BufferedReader, map rows to telemetry objects on the fly, and filter by start time natively—avoiding holding unused rows in memory.
TelemetryPreprocessor.kt: Updated the preprocessing pipeline to utilize the new streamAndParse method, drastically reducing the memory footprint during Stage 1-2.

…ct video timestamp logic into a dedicated utility class.
… to CsvIngestParser for robust telemetry synchronization
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant