/dev/null langsung membuang semua input, tetapi secara satir dijelaskan sebagai sistem yang sepenuhnya memenuhi properti ACID transaksi
- Dari sisi Atomicity, data tidak pernah ditulis sebagian; semuanya hilang seluruhnya atau tidak ditulis sama sekali
- Dari sisi Consistency, sistem selalu mempertahankan keadaan kosong, sehingga kondisi invarian tidak pernah rusak
- Dari sisi Isolation, beberapa proses dapat mengaksesnya secara bersamaan tanpa saling mengganggu, dan karena tidak ada yang disimpan, konflik pun tidak terjadi
- Durability dianggap sempurna karena setelah reboot pun tetap mempertahankan keadaan “tidak ada apa-apa”, meski satu-satunya keterbatasan yang disebut secara jenaka adalah kapasitas penyimpanan 0 byte
Analisis karakteristik ACID dari /dev/null
/dev/null adalah berkas khusus yang menerima semua input lalu langsung membuangnya, dan di sistem Linux maupun keluarga Unix sering digunakan sebagai data sink
- Penulis mengibaratkannya sebagai database “Web Scale”, lalu menerapkan properti inti database, yaitu ACID, secara satir
- Hasilnya,
/dev/null tampak sepenuhnya stabil, tetapi juga menunjukkan kesederhanaan yang ekstrem karena tidak menyimpan data apa pun
Atomicity — Atomisitas
- Saat data ditulis ke
/dev/null, semuanya lenyap atau tidak tercatat sama sekali, tanpa ada penulisan parsial
- Ini sama dengan prinsip transaksi “all or nothing”
- Karena itu,
/dev/null menjamin atomisitas penuh tanpa kegagalan parsial atau transisi status yang tidak lengkap
Consistency — Konsistensi
/dev/null selalu berada dalam keadaan kosong, dan input apa pun tidak bisa merusak kondisi invarian ini
- Walaupun data ditulis, data tersebut langsung dibuang, sehingga sistem selalu berpindah ke keadaan yang valid
- Akibatnya, invarian bahwa “berkas ini tidak berisi apa-apa” selalu benar
Isolation — Isolasi
- Meski beberapa proses menulis data ke
/dev/null secara bersamaan, tidak terjadi konflik maupun interferensi
- Karena tidak ada penyimpanan yang benar-benar dilakukan, tidak ada pengaruh antartansaksi
- Ini merupakan implementasi isolasi yang ideal, yang menjamin hasil konsisten bahkan dalam lingkungan pemrosesan paralel yang sempurna
Durability — Daya tahan
/dev/null meng-commit data sebagai “keadaan tidak ada apa-apa secara permanen”
- Bahkan jika sistem crash atau reboot, status
/dev/null tidak berubah
- Dengan kata lain, ia menjamin persistensi dari ‘ketiadaan’ secara sempurna
Keterbatasan dan kesimpulan jenaka
- Penulis menyebut satu-satunya masalah
/dev/null adalah “ruang penyimpanan 0 byte”
- Jika membutuhkan ruang lebih besar, pembaca diminta menghubungi “tim penjualan enterprise” (yang sebenarnya adalah penulis sendiri), sebagai penutup bernada bercanda
- Ini menyindir praktik pemasaran berlebihan di industri TI seputar kapasitas dan performa database
1 komentar
Komentar Hacker News
Diskusi HN lama bisa dilihat di sini
fastjson(tautan GitHub)/dev/nullsebagai DB tanpa ada yang sadar, dan backend-nya dibangun dengan nocode/dev/null, saya tidak pernah mengalami satu pun masalah terkait penggunaBahwa
/dev/nullmemenuhi ACID itu seperti solusi trivial untuk DBMeski begitu, ini tetap bacaan yang bagus karena mengingatkan bahwa konsep seperti ACID tidak ada dalam ruang hampa (tautan referensi)
/dev/null/dev/nulluntuk tujuan seperti iniDipakai saat output harus pergi ke suatu tempat, tetapi saya tidak ingin memikirkan apakah tempat itu sanggup menanganinya
Pada tahap deployment, tinggal diganti ke penyimpanan yang sudah tervalidasi
/dev/nulladalah semacam perintahtruedi dunia storage/dev/nulldantruetermasuk peringkat teratas yang bebas bug/dev/nullselalu punya konsistensi langsung, selalu tersedia, dan toleransi partisi yang sempurnaIni satu-satunya DB yang tetap memiliki CAP lengkap bahkan saat diskalakan ke node tak terbatas
/dev/null0dan/dev/null1secara terpisahSaat terjadi gangguan mereka memperbarui symbolic link secara manual, dan jika gagal lolos audit sarbox, penggunaannya di produksi dilarang
/devtidak ter-mount/dev/nullserializable menurut banyak definisi akademik, tetapi bukan strict serializableSemua pembacaan bisa dilakukan pada waktu 0 detik dan mengembalikan hasil kosong, dan penulisan bisa langsung dibuang pada saat terjadi
Intinya adalah bahwa kita perlu menuntut jaminan real-time
Sistem
/dev/nullhanya memiliki satu status/dev/nullitu web scale/dev/nullbahkan bisa menjalankan situs seperti zombo.comBisa dilihat di supersimplestorageservice.com,
dan juga pernah beberapa kali dibahas di HN (tautan pencarian)
/dev/nullselalu kosong, tetapi sebenarnya **