느리게 동기화하는 시스템 설계

파일 동기화 시스템

2025-04-12

Transactions

  • Atomicity
    • All or Nothing
    • Subjective Term: Internal Atomicity
    • Rollback 1
  • (Consistency)
    • Database Constraints 2
  • Isolation
    • Serializability
      • No Overlap 3
      • Subjective Term: External Atomicity
    • Repeatability ↔︎ Resumability or Parallellism

Subjective Term:
Internal Atomicity

  • Timeout
  • Scope
    • Network-Level Status
      • Integrity: Pre-Signed URLs
    • Application-Level Status
  • Consistency
    • Directions
    1. (Persistent Connections)
      • Long Polling
      • Server-Sent Events
      • WebSockets
    2. Push from Source
      • Notification
        • Intranet ↔︎ Internet
      • (Adaptive) Cron
  1. Pull from Destination or (Lazy) Resilience
    • On-Demand Refresh
    • (Adaptive) Polling
    • (Periodic) Reconciliation

(Repeatability or Recovery)

Subjective Term: Internal Serializability
or Internal External Atomicity

  • Event Stream or Event Bus, e.g. Kafka
  • Change Data Capture
  • Cursors
  • Types
    • Changes
    • Snapshots
  • Actions
    • Rollback
    • Roll Forward, c.f. Replay
  • Audit Trails
  • Partitioning

Chunks

  • Options
    • Size Upper Bound, e.g. 10 MB
      • Directory: Segmentation
    • Compression Algorithms
    • Versions
    • Logs
  • Scope
    • Database Entity
      • Durability
      • Time-Saving Preprocess
    • Network Protocol Data Unit
      • Adaptive Size
      • Real-Time Intelligence
    • Encapsulation
      • External Blob Storage

Content Distribution Networks

  • Cache: Benefit of Reusability
    • Static Data
      • Database
      • Network
    • Shared Data ↔︎ Private
  • Benefit of Distance
    • Far Data Centers
    • Near Users

Optional
Functional Requirements

  • RDBMS Analogy
    • Directions
      • Inner/Left/Right/Outer Joins
    • Scope
      • Modifications
      • Insertions
      • Deletions
  • Git Analogy
    • Exclusions,
      c.f. .gitignore

References

King, Evan. n.d. “System Design Interview: Design Dropbox or Google Drive w/ a Ex-Meta Staff Engineer.” Accessed April 12, 2025. https://youtu.be/_UZ1ngy-kOI?si=zeVM5kvX7o8lnk_7.
Ullman, J. D., and J. Widom. 2014. A First Course in Database Systems. Always Learning. Pearson. https://books.google.co.kr/books?id=9vNgngEACAAJ.