Please enable JavaScript.
Coggle requires JavaScript to display documents.
Java, System Design, Databases, Design Patterns - Coggle Diagram
Java
-
-
-
JVM
Memory Management
Garbage Collectors (G1, ZGC, Shenandoah)
Memory Model (Heap Structure (you/old/metaspace), Stack memory, Escape Analysis
Profiling JFR (Java Flight Record), JVM (Mission Control) and VisualVM.
-
-
-
Advanced Concurrency
-
Reactive Programming
Project Reactor/ RxJava principles (Backpressure, Mono/Flux)
-
Classic Advanced
-
-
Java Memory Model (JMM): volatile, happens-before, atomicity
-
-
Databases
-
-
- Database Internals (The Engine Room)
Storage Engines
-
Page/Block Architecture: How data is physically stored (Files, Extents, Pages).
Row Formats: Fixed vs. Variable length, Toast tables (Postgres), Off-row storage.
-
Memory Management
Buffer Pool / Shared Buffers: Dirty pages, eviction algorithms (LRU), Cache Hit Ratios.
Working Memory: Sort buffers, Join buffers (spilling to disk/tempdb when exceeded).
- Advanced Performance Tuning
-
Indexing Strategy
Beyond Basics: Partial Indexes, Functional/Expression Indexes, Bitmap Indexes.
Index Maintenance: Fragmentation, Fill Factor settings.
-
Locking & Latching
Lock Types: Shared, Exclusive, Intent locks.
Concurrency Issues: Blocking chains, Deadlock analysis & prevention.
-
- Reliability & High Availability (HA)
Replication Topologies
-
Promote/Failover: Automated failover tools (Patroni, MHA, Orchestrator).
-
-
Scaling
-
Horizontal: Sharding strategies (Key-based, Range-based), Connection Pooling at scale (PgBouncer, ProxySQL).
- Operational Security & Maintenance
-
Routine Maintenance
-
MySQL/SQL Server: Index rebuilding/reorganizing, Updating statistics.
-
- Observability (What to Monitor)
The "Golden Signals"
Latency: Average query duration, P95/P99 latency.
Traffic: QPS (Queries Per Second), TPS (Transactions Per Second).
Errors: Connection timeouts, Deadlocks, Aborted clients.
Saturation: Disk I/O (IOPS, Queue Depth), CPU Usage, Connection limits.
Wait Stats Analysis
Identifying why the DB is waiting (e.g., waiting on Disk I/O vs. waiting on a Lock).
-