1. High-Level System ArchitectureΒΆ
graph TB
subgraph "Client Layer"
CLI[CLI Interface
- Pattern Input
- Result Display
- Progress Monitoring]
end
subgraph "Application Layer"
SC[Search Coordinator
- Pattern Validation
- Complement Calculation
- Task Distribution
- Result Aggregation]
end
subgraph "Business Logic Layer"
PM[Pattern Matcher
- String Matching
- Boundary Handling]
TS[Task Scheduler
- ThreadPoolExecutor
- 10 Workers per DB]
end
subgraph "Data Access Layer"
CP1[Connection Pool 1
Max: 10 Connections
Semaphore-based]
CP2[Connection Pool 2
Max: 10 Connections
Semaphore-based]
end
subgraph "Database Layer"
DB1[DNA Database 1
Strand 1 - Original
BST Index]
DB2[DNA Database 2
Strand 2 - Complement
BST Index]
end
subgraph "Storage Layer"
FM1[File Manager 1
Memory-Mapped I/O
6GB File]
FM2[File Manager 2
Memory-Mapped I/O
6GB File]
F1[(dna_strand1.dat
6,000,000,000 bases
AGCTGCAT...)]
F2[(dna_strand2.dat
6,000,000,000 bases
TCGACGTA...)]
end
CLI --> SC
SC --> PM
SC --> TS
TS --> CP1
TS --> CP2
CP1 --> DB1
CP2 --> DB2
DB1 --> FM1
DB2 --> FM2
FM1 --> F1
FM2 --> F2
style CLI fill:#e1f5ff
style SC fill:#fff4e1
style PM fill:#ffe1f5
style TS fill:#ffe1f5
style CP1 fill:#f5e1ff
style CP2 fill:#f5e1ff
style DB1 fill:#e1ffe1
style DB2 fill:#e1ffe1
style FM1 fill:#ffe1e1
style FM2 fill:#ffe1e1
style F1 fill:#d0d0d0
style F2 fill:#d0d0d0