Latihan 1: Replication & HA — Database

Latihan 1 dari materi Replication & HA di Database — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi function routeQuery(sql, context) yang memutuskan sebuah query dikirim ke "primary" atau "replica", seperti router read/write Laravel.

  1. Ambil kata pertama dari sql: buang spasi di awal dengan trim(), potong di spasi, lalu ubah ke huruf besar dengan toUpperCase() supaya select dan SELECT dianggap sama.
  2. Kata pertama SELECT: kembalikan "primary" kalau context.justWrote === true (read-your-writes), selain itu "replica".
  3. Kata pertama INSERT, UPDATE atau DELETE: kembalikan "primary".
  4. Kata lain apa pun (misalnya TRUNCATE, CREATE, MERGE): kembalikan "primary" sebagai default aman.

Tujuh console.log di kode awal sudah ada, biarkan. Output yang dicek, berurutan:

replica
primary
primary
primary
primary
primary
replica

Satu cek lagi: routeQuery("SELECT 1", { justWrote: true }), routeQuery("select 1", {}) dan routeQuery("MERGE INTO t", {}) digabung dengan koma harus menghasilkan "primary,replica,primary".

Hint