Skip to content

Add pipelines #3

Description

@fedem-p

Add Data Processing Pipelines and Performance Optimizations
Performance Issues
Memory Efficiency: The current implementation loads entire DataFrames into memory, which can be problematic for large files.
Optimization: Implement chunked processing for large files to reduce memory usage.
Multiple File Reads: Duplicate detection and other operations may read files multiple times, impacting performance.
I/O Optimization: There is no connection pooling or batch operations for file/database access.
Concurrency: File locking is not implemented, which could cause issues with concurrent access.
Suggested Improvements
Refactor data import, deduplication, and export logic to use chunked processing (e.g., with pandas.read_csv(..., chunksize=...)).
Implement a pipeline pattern for data processing steps, allowing for modular, efficient, and testable workflows.
Minimize repeated file reads by caching or streaming data where possible.
Investigate and implement file locking or atomic operations to support safe concurrent access.
Prepare the codebase for future migration to a database backend (e.g., SQLite/PostgreSQL) with connection pooling and batch operations.
Tasks
Refactor data processing to support chunked reading/writing for large files.
Implement a pipeline pattern for modular data processing.
Optimize duplicate detection and other operations to avoid unnecessary file reads.
Add file locking or atomic write support for concurrent access.
Document the new pipeline architecture and usage in the README.
Priority: Medium-High
Impact: Improves scalability, reliability, and maintainability for large datasets and future database migration.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions