Pangkalan Data Bersandar Barisan Gilir Muncul sebagai Penyelesaian kepada Masalah Kehilangan Data Sistem Teragih

Pasukan Komuniti BigGo
Pangkalan Data Bersandar Barisan Gilir Muncul sebagai Penyelesaian kepada Masalah Kehilangan Data Sistem Teragih

Komuniti teknologi sedang hangat membicarakan masalah berdekad lamanya yang akhirnya mendapat penyelesaian praktikal. Barisan gilir tugasan teragih, yang menggerakkan segala-galanya daripada interaksi media sosial hingga transaksi kewangan, telah lama bergelut dengan kelemahan kritikal: ia kehilangan data apabila sistem ranap atau gagal. Kini, barisan gilir tahan lasak bersandarkan pangkalan data muncul sebagai alternatif yang berdaya maju yang boleh mengubah cara syarikat mengendalikan operasi kritikal.

Perbincangan ini dicetuskan oleh refleksi bekas jurutera infrastruktur Reddit mengenai isu berterusan platform tersebut dengan kehilangan undian, komen, dan penyerahan. Sistem Reddit , seperti banyak yang lain, bergantung pada broker mesej dalam-memori seperti RabbitMQ dan Redis untuk kelajuan, tetapi ini datang dengan kos kebolehpercayaan.

Imej ini mewakili konsep barisan dalam reka bentuk sistem, mencerminkan cabaran-cabaran yang dibincangkan dalam artikel mengenai pengurusan tugas teragih
Imej ini mewakili konsep barisan dalam reka bentuk sistem, mencerminkan cabaran-cabaran yang dibincangkan dalam artikel mengenai pengurusan tugas teragih

Konteks Sejarah Mendedahkan Cabaran Seluruh Industri

Perbualan ini telah mendedahkan bahawa syarikat-syarikat utama telah bergelut dengan masalah ini selama berdekad-dekad. Veteran industri berkongsi pengalaman dari Skype , eBay , dan bank pelaburan sejak pertengahan 1990-an, yang semuanya membina penyelesaian barisan gilir bersandarkan pangkalan data tersuai. Pelaksanaan awal ini memerlukan pasukan pentadbiran pangkalan data khusus dan sumber perkakasan yang ketara, menjadikannya hanya boleh diakses oleh perusahaan besar.

Apa yang menarik ialah setiap organisasi seolah-olah menyelesaikan masalah ini secara berasingan. Syarikat seperti Skype menggunakan PostgreSQL dengan perkakas tersuai, manakala eBay membina penyelesaian berasaskan Oracle . Kekurangan alternatif sumber terbuka bermakna pengetahuan dan penyelesaian kekal terpencil dalam syarikat individu.

Pencapaian Teknikal Utama:

  • 1990-an: Barisan gilir bersandarkan pangkalan data awal di bank pelaburan ( Sybase )
  • 1996-1999: France Telecom menggunakan Sybase Replication Server untuk acara pengebilan
  • 2005: SQL Server memperkenalkan barisan gilir Service Broker
  • 2005-2011: Skype membina barisan gilir berasaskan PostgreSQL dengan pasukan DBA khusus
  • 2016: PostgreSQL 9.5 menambah ciri SKIP LOCKED , membolehkan kejayaan prestasi

Terobosan Teknikal Membolehkan Penggunaan Arus Perdana

Pengubah permainan datang dengan pengenalan ciri SKIP LOCKED PostgreSQL 9.5 sekitar 2016. Penambahan yang kelihatan kecil ini membuka kunci prestasi yang diperlukan untuk menjadikan barisan gilir bersandarkan pangkalan data praktikal tanpa memerlukan pasukan pangkalan data khusus. Ciri ini membolehkan berbilang pekerja memproses item barisan gilir dengan cekap tanpa konflik, menyelesaikan kesesakan utama yang sebelum ini menjadikan barisan gilir pangkalan data perlahan dan kompleks untuk diurus.

Barisan gilir tahan lasak moden berfungsi dengan menyimpan kedua-dua broker mesej dan hasil tugasan dalam pangkalan data kekal. Apabila tugasan gagal, sistem boleh meneruskan dari titik periksa terakhir yang diselesaikan daripada bermula semula atau kehilangan kerja sepenuhnya. Pendekatan ini menukar sedikit prestasi untuk kebolehpercayaan, menjadikannya ideal untuk operasi kritikal perniagaan di mana kehilangan data tidak boleh diterima.

Potongan kod ini menggambarkan bagaimana baris gilir tahan lasak boleh dilaksanakan dalam Python , menunjukkan penyelesaian teknikal yang dibincangkan dalam artikel
Potongan kod ini menggambarkan bagaimana baris gilir tahan lasak boleh dilaksanakan dalam Python , menunjukkan penyelesaian teknikal yang dibincangkan dalam artikel

Pertukaran Prestasi Membentuk Keputusan Pelaksanaan

Perbincangan komuniti menyerlahkan pertimbangan penting mengenai bila menggunakan barisan gilir tahan lasak berbanding penyelesaian dalam-memori tradisional. Untuk operasi volum tinggi, kepentingan rendah, barisan gilir tradisional masih masuk akal kerana daya pemprosesan yang unggul. Walau bagaimanapun, untuk proses perniagaan kritikal di mana kehilangan data boleh membawa akibat serius, faedah kebolehpercayaan mengatasi kos prestasi.

Pada masa itu, anda tidak boleh membina barisan gilir berprestasi dalam pangkalan data tanpa sejumlah besar sumber, dari segi perkakasan dan manusia. Baru-baru ini sahaja prestasi pangkalan data sumber terbuka pada perkakasan sederhana mengejar alternatif.

Kelebihan kebolehperhati barisan gilir bersandarkan pangkalan data juga muncul sebagai faedah utama. Memandangkan semua keadaan alir kerja disimpan dalam jadual SQL , pemantauan dan penyahpepijatan menjadi lebih mudah berbanding cuba memeriksa keadaan dalaman broker dalam-memori.

Kelebihan Baris Gilir Tahan Lasak berbanding Baris Gilir Tradisional:

  • Kebolehpercayaan: Titik semak menghalang kehilangan data semasa sistem ranap
  • Kebolehcerapan: Pertanyaan SQL menyediakan pemantauan dan penyahpepijatan yang mudah
  • Pemulihan: Sambung semula dari langkah terakhir yang selesai dan bukannya memulakan semula
  • Pertukaran: Daya pemprosesan lebih rendah tetapi jaminan ketahanan yang lebih kuat
  • Terbaik untuk: Tugas kritikal perniagaan dengan keperluan volum yang lebih rendah
Imej kesesakan lalu lintas ini melambangkan pertukaran prestasi dalam menguruskan barisan gilir, mencerminkan cabaran yang dibincangkan dalam artikel
Imej kesesakan lalu lintas ini melambangkan pertukaran prestasi dalam menguruskan barisan gilir, mencerminkan cabaran yang dibincangkan dalam artikel

Kesimpulan

Kemunculan penyelesaian barisan gilir tahan lasak praktikal mewakili anjakan ketara dalam cara syarikat boleh mendekati reka bentuk sistem teragih. Selepas berdekad memilih antara prestasi dan kebolehpercayaan, organisasi kini mempunyai pilihan berdaya maju yang menyediakan jaminan ketahanan yang kuat tanpa memerlukan pelaburan infrastruktur yang besar. Apabila lebih banyak syarikat menggunakan penyelesaian ini, kita mungkin melihat perubahan asas dalam cara proses perniagaan kritikal direka bentuk, dengan integriti data mengambil keutamaan berbanding metrik prestasi mentah.

Rujukan: How I solved a distributed queue problem after 15 years