Latihan 1: Choosing Your Database — System Design

Latihan 1 dari materi Choosing Your Database di System Design — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi function pickDatabase(workload) supaya mengembalikan salah satu teks ini, persis dengan huruf besar kecilnya: "SQL", "KV", "Document", "Graph", atau "TimeSeries".

workload adalah object dengan properti shape ("relational", "document", "graph", "timeseries", "keyvalue"), writesPerSec (angka), needsAcidTransactions (true/false), dan queryPattern ("joins", "lookup", "traversal", "range-scan", "aggregate").

Cek aturan ini berurutan dari atas. Yang pertama cocok langsung di-return:

  1. shape === "timeseries", atau queryPattern === "range-scan" dan writesPerSec > 10000 sekaligus: "TimeSeries".
  2. shape === "graph" atau queryPattern === "traversal": "Graph".
  3. needsAcidTransactions === true atau queryPattern === "joins": "SQL".
  4. shape === "document": "Document".
  5. Selain itu (default): "KV".

Lima baris console.log(pickDatabase(...)) di kode awal sudah ada, biarkan begitu. Output-nya harus persis lima baris ini, berurutan:

  1. SQL
  2. Graph
  3. TimeSeries
  4. Document
  5. KV

Function-nya juga dipanggil langsung dengan lima workload lain:

Hint