Kesimpulan Utama

  • Migrasi Binance Ledger kami bertujuan untuk memecahkan masalah akun panas yang melekat pada server basis data relasional kami sebelumnya.

  • Pertukaran kripto beroperasi 24/7, 365 hari dalam setahun tanpa periode pemeliharaan untuk memanfaatkannya, tidak seperti pertukaran reguler, yang memiliki jam istirahat harian.

  • Migrasi ke Binance Ledger baru harus dilakukan secara online, menjaga aset pengguna tetap SAFU, dan tidak menimbulkan dampak bisnis sama sekali, sehingga pengalaman bagi pengguna akhir tetap lancar.

  • Kami memilih strategi migrasi akun demi akun secara bertahap dibandingkan strategi yang bersifat langsung dan sekaligus seperti yang digunakan oleh alat hantu.

Pelajari lebih lanjut tentang migrasi Binance Ledger kami serta alat dan teknik yang digunakan selama proses tersebut.

Binance Ledger mendukung operasi teknis kami dan memproses jutaan transaksi harian di basis pengguna yang luas. Anda dapat mempelajari lebih lanjut tentang sistem, tujuan, dan tantangannya di blog Bagaimana Binance Ledger Memperkuat Pengalaman Binance Anda. Proses migrasi kami dari versi lama ke versi baru menghadapi tantangan yang umum: bagaimana kami dapat meningkatkan mesin saat pesawat masih terbang? Kami harus memigrasikan aset pengguna kami, dan menjaga dana SAFU adalah prioritas utama kami.

Tantangan Utama Migrasi Binance

Daftar tantangan berikut harus diatasi untuk mencapai tujuan yang kami tetapkan:

  1. Pastikan kebenaran penuh dari buku besar baru

  2. Mampu mendeteksi masalah dana dan memperbaikinya secara tepat waktu dan akurat

  3. Tidak ada waktu henti untuk hulu

Membandingkan Misi Migrasi Kami dengan DDL Database Online

Sebelum kita mendalami detail solusinya, mari kita lihat masalah umum dalam menjalankan DDL (bahasa definisi data) online untuk tabel besar. Apa sebenarnya DDL itu? Bayangkan sebuah tabel dengan ratusan juta baris dimana kita perlu menambahkan kolom lain. Kami ingin melakukan ini secara online tanpa mengganggu bisnis.

Alat gh-ost banyak digunakan untuk mengatasi masalah ini, dan Anda dapat melihat cara kerjanya pada diagram berikut.

Prosesnya pada dasarnya terdiri dari dua tahap:

  1. Fase sinkronisasi, yang berlanjut hingga tabel baru sepenuhnya identik dengan tabel asli. Ada dua jenis data yang akan disinkronkan:

    1. Data yang ada

    2. Data tambahan (data baru dihasilkan dari tabel asli selama proses migrasi sedang berlangsung)

  2. Fase cutover menukar tabel asli dengan tabel baru tanpa mengganggu transaksi yang sedang berjalan.

Dimana Masalah Binance Ledger Berbeda

Meskipun ada beberapa kesamaan, Binance Ledger memiliki beberapa tantangan unik dalam misi migrasi online kami.

Pertama, sistem backend Binance beroperasi di lingkungan terdistribusi, sedangkan database online DDL berada dalam lingkungan monolitik. Kedua, kami tidak mampu menerapkan pendekatan peralihan sekaligus karena data adalah aset pengguna kami. Terakhir, kita perlu memastikan bahwa semua layanan terkait berfungsi secara keseluruhan sebelum mulai melakukan migrasi massal.

Seperti pada contoh DDL online sebelumnya, ada juga dua fase dalam migrasi kami:

  1. Fase sinkronisasi, di mana layanan replikator khusus dibangun khusus untuk menyinkronkan saldo dari buku besar lama ke buku besar baru

  2. Fase peralihan akun demi akun

Pendekatan Berbasis Fase

Tugasnya besar, dan seperti yang mereka katakan, Roma tidak dibangun dalam sehari. Pendekatan memecah belah dan menaklukkan sering kali berhasil dengan baik ketika menghadapi permasalahan yang besar dan kompleks.

Fase 1: Replikasi

Alasannya

Kami dapat meringkas proses berpikir kami di sini menjadi dua poin utama:

  1. Kami memodelkan Binance Ledger sebagai budak baru yang bergabung dengan klaster MySQL yang ada, yang mendukung sistem buku besar saat ini. Dengan memanfaatkan teknik replikasi, kami dapat menjaga saldo pengguna tetap sinkron secara asinkron.

  2. Kami kemudian dapat mengarahkan lalu lintas produksi secara verbatim ke Binance Ledger untuk memvalidasi kebenaran dan ketahanannya. Bahkan jika keadaan menjadi buruk pada fase ini, tidak ada dampaknya bagi kami dan pengguna kami.

Apa

Di bawah ini, kami telah mengilustrasikan keseluruhan alur replikasi. Jalur penting yang perlu diperhatikan adalah:

Transfer โ†’ Buku Besar โ†’ Replikator Buku Besar Binance โ†’ Buku Besar Binance

Bagaimana caranya

Kami membagi proses replikasi dalam dua langkah terpisah:

  1. Membuang snapshot DB buku besar dan kemudian mengimpornya ke Binance Ledger

  2. Mereplikasi log bin dari DB buku besar setelah snapshot dibuang.

Pada akhirnya, data saldo dan log saldo akan disimpan dalam sinkronisasi penuh antara buku besar lama dan Buku Besar Binance, yang selanjutnya dapat divalidasi dengan modul rekonsiliasi penuh.

Kapan

Binance Ledger diluncurkan pada awal Agustus 2022. Setelah itu, kami memulai proses replikasi, yang berlangsung hingga pertengahan November 2022. Proses ini merupakan periode penting bagi kami karena kebenaran sistem buku besar yang baru perlu divalidasi 100%. Langkah ini tidak dapat dilewati sebelum melanjutkan ke tahap migrasi berikutnya.

Pada akhirnya, kami tidak menemukan masalah dan melakukan beberapa rutinitas pelepasan agar lebih nyaman dengan situasi tersebut. Proses tiga bulan ini tidak terlalu cepat, namun hal ini penting untuk mencapai tujuan SAFU kami.

Fase 2: migrasi online

Alasannya

Untuk memigrasikan sekitar ratusan juta akun, kami membuat tugas migrasi yang disesuaikan.

Apa

Di bawah ini, kami telah menggambarkan alur migrasi inti untuk satu akun:

Berikut adalah beberapa catatan penting yang perlu diingat:

  1. Sistem akun memelihara pemetaan kepemilikan untuk setiap akun.

    1. Akun A โ†’ buku besar

    2. Akun B โ†’ Buku Besar Binance

    3. Akun C โ†’ dilarang

  1. Sebelum memigrasikan akun, jika ada transaksi bersamaan yang tertunda, transaksi tersebut akan dilewati untuk mengurangi dampak bisnis.

  2. Kami mengubah pemetaan kepemilikan dari buku besar menjadi terlarang, melarang pembaruan saldo lebih lanjut, sehingga menjadikannya tidak dapat diubah.

  3. Kami merekonsiliasi saldo antara buku besar lama dan Buku Besar Binance.

  4. Kami mengubah pemetaan kepemilikan dari terlarang menjadi Binance Ledger, sehingga pembaruan saldo di masa mendatang dapat dialihkan langsung ke Binance Ledger.

Menurut metrik kinerja kami, dibutuhkan rata-rata 150 ms dari langkah 3 ke langkah 5. Secara teori, pengguna tidak dapat melakukan transaksi apa pun selama periode migrasi 150 ms ini. Ternyata tidak ada transaksi yang terkena dampak.

Eksekusi

Di Binance, kami menganjurkan prinsip โ€œeksekusi yang baik dibandingkan perencanaan yang cermat.โ€ Eksekusi yang solid sangat penting bagi kesuksesan kami, dan keamanan dana selalu menjadi prioritas utama kami. Kami menerapkan strategi migrasi bertahap selama periode tiga minggu untuk mengatasi masalah sedini mungkin sehingga membantu mengurangi besarnya dampak negatif.

Proses Rekonsiliasi

Rekonsiliasi sangat penting dalam mendeteksi potensi anomali keseimbangan secara tepat waktu dari sudut pandang yang tidak memihak. Kami dapat melakukan proses ini hampir secara real-time untuk mengambil tindakan cepat sebelum keadaan menjadi lebih buruk. Dua jenis modul rekonsiliasi dikembangkan secara khusus untuk proses migrasi online: real-time dan penuh.

Waktu sebenarnya

Proses rekonsiliasi berbasis tingkat transaksi dibangun untuk mendeteksi adanya permasalahan dana secara real time.

Penuh

Kami dapat melakukan rekonsiliasi penuh secara berkala berdasarkan snapshot yang disinkronkan ke gudang data. Proses ini memastikan semua saldo antara buku besar lama dan Buku Besar Binance adalah sama.

Misalnya, kita memiliki 10 juta pengguna yang masih berada di buku besar lama. Kita dapat menggunakan rekonsiliasi penuh ini untuk memverifikasi bahwa saldo dan log saldo antara buku besar lama dan Buku Besar Binance adalah sama.

Menyelesaikan Proses Migrasi

Singkatnya, misi ini dicapai dengan 1) menggunakan teknik replikasi untuk memvalidasi kebenaran Binance Ledger baru 2) menerapkan strategi migrasi akun demi akun untuk meningkatkan mesin secara perlahan, aman namun pasti.

Kami yakin paradigma migrasi online yang disebutkan di atas dapat digunakan kembali dalam tugas serupa. Jika proses dan topik yang dibahas menarik minat Anda, mengapa tidak mempertimbangkan untuk bergabung dengan tim? Kami selalu mencari individu berdedikasi dengan perspektif segar mengenai tantangan harian kami di Binance.

Referensi

  1. Bagaimana Binance Ledger Mendukung Pengalaman Binance Anda

  2. Alat Migrasi Skema Online GitHub untuk MySQL

Bacaan lebih lanjut

  • Menggunakan MLOps untuk Membangun Pipeline Machine Learning End-to-End Real-time | Blog Binance

  • Apakah Binance Tempat yang Tepat untuk Anda? Alasan Tidak Bergabung dengan Binance | Blog Binance