Sistem Pesan Berperforma Tinggi Aeron Menghadapi Tantangan Multicast Dunia Nyata Meski Memiliki Benchmark yang Mengesankan

Tim Komunitas BigGo
Sistem Pesan Berperforma Tinggi Aeron Menghadapi Tantangan Multicast Dunia Nyata Meski Memiliki Benchmark yang Mengesankan

Aeron, sistem pesan berperforma tinggi yang dikembangkan oleh Real Logic dan kini dioperasikan oleh Adaptive Financial Consulting, telah memicu diskusi intens di komunitas mengenai tantangan praktis dalam mengimplementasikan pesan multicast yang andal di lingkungan produksi. Meskipun sistem ini menjanjikan transport pesan UDP unicast, multicast, dan IPC yang efisien dengan fokus pada pencapaian throughput tertinggi dan latensi terendah, pengalaman dunia nyata mengungkap hambatan deployment yang signifikan.

Implementasi Multicast Terbukti Bermasalah dalam Praktik

Komunitas telah menyoroti berbagai tantangan dengan keandalan multicast di berbagai infrastruktur jaringan. Lingkungan enterprise, sistem tervirtualisasi, dan platform cloud menghadirkan kesulitan khusus. Administrator jaringan sering kali sengaja menonaktifkan multicast, dan inkonsistensi hardware menciptakan pola perilaku yang tidak dapat diprediksi.

Setelah bertahun-tahun memelihara dan menggunakan suite aplikasi yang mengandalkan multicast untuk komunikasi internal, saya akan ragu untuk menggunakan kata andal dan multicast dalam kalimat yang sama.

Masalah-masalah ini berasal dari penanganan yang tidak dapat diandalkan di seluruh switch, router, adapter jaringan, dan stack TCP/IP sistem operasi. Masalah umum meliputi socket multicast yang bergabung dengan interface jaringan yang salah, kehilangan keanggotaan setelah siklus sleep sistem, dan peralatan kelas enterprise yang secara tidak terduga memutuskan koneksi multicast.

Masalah Umum dalam Implementasi Multicast

  • Socket multicast bergabung dengan interface adapter jaringan yang salah
  • Kehilangan keanggotaan multicast setelah siklus sleep/hibernate sistem
  • Switch dan router menghilangkan keanggotaan multicast seiring waktu
  • Perilaku yang tidak konsisten dalam lingkungan tervirtualisasi (VM)
  • Masalah kompatibilitas sistem enterprise ( SUSE Linux , Windows Server )
  • Konflik penggunaan ulang socket dan tantangan konfigurasi
  • Penonaktifan multicast yang disengaja dalam jaringan cloud dan enterprise

Klaim Performa Menghadapi Pengawasan dalam Analisis Terperinci

Anggota komunitas telah mempertanyakan klaim performa Aeron setelah memeriksa data benchmark dari deployment AWS dan Google Cloud Platform. Analisis mengungkap bahwa meskipun Aeron mencapai tingkat pesan yang mengesankan, performa per-core mungkin tidak sesuai ekspektasi ketika dibandingkan dengan implementasi TCP tradisional.

Pada instance AWS c5.9xlarge dengan 36 vCPU, Aeron memproses sekitar 3 juta pesan 288-byte per detik, turun menjadi 700.000 pesan per detik untuk payload 1.344-byte yang lebih besar. Ini setara dengan sekitar 200 Mbps per core, yang menurut beberapa pihak masih kurang dari kemampuan TCP untuk mencapai 10 Gbps per core individual tanpa optimisasi agresif.

Namun, para pembela mencatat bahwa arsitektur Aeron berbeda secara fundamental dari pendekatan tradisional. Sistem ini menggunakan threading minimal dengan biasanya hanya satu thread penerima dan satu thread pengirim, ditambah thread administratif, daripada pemrosesan paralel yang berat.

Benchmark Performa Aeron

Platform Jenis Instance Ukuran Pesan Pesan/Detik Throughput
AWS c5.9xlarge (36 vCPU) 288 bytes ~3 juta ~7.5 Gbps
AWS c5.9xlarge (36 vCPU) 1,344 bytes 700,000 ~1 GB/s
GCP C3 (tidak dispesifikasi) 288 bytes ~4.7 juta ~12 Gbps

Performa per core: ~200 Mbps (estimasi berdasarkan distribusi 36-core)

Sektor Trading Keuangan Menunjukkan Adopsi yang Kuat

Meskipun menghadapi tantangan deployment, Aeron telah menemukan kesuksesan signifikan dalam sistem trading keuangan di mana infrastruktur multicast sudah ada untuk distribusi data pasar. Integrasi sistem dengan Simple Binary Encoding (SBE) memberikan performa encoding dan decoding pesan yang luar biasa, membuatnya menarik untuk aplikasi yang sensitif terhadap latensi.

Jaringan yang sudah mendukung multicast di sektor keuangan dan toleransi terhadap kompleksitas infrastruktur membuatnya menjadi lingkungan yang ideal untuk deployment Aeron. Sistem trading mendapat manfaat dari karakteristik tail latency yang superior yang disediakan Aeron dibandingkan dengan alternatif berbasis TCP.

Desain Arsitektur Menekankan Mechanical Sympathy

Arsitektur sistem Aeron mewakili kekuatan intinya, mengimplementasikan apa yang disebut developer sebagai mechanical sympathy - merancang perangkat lunak yang bekerja efisien dengan hardware yang mendasarinya. Sistem ini menggunakan Aeron Server terpusat yang menangani komunikasi jaringan eksternal sementara proses klien berkomunikasi melalui pipe memori bersama berperforma tinggi.

Desain ini memungkinkan pesan yang agnostik terhadap transport di mana klien berlangganan ke channel tanpa pengiriman jaringan langsung. Server mengelola routing data ke antrian memori bersama klien, memungkinkan performa maksimum dengan UDP yang andal dan fan-out multicast untuk stream data umum.

Codebase itu sendiri telah mendapat pengakuan sebagai studi teladan dalam kualitas perangkat lunak, khususnya untuk pengembangan Java, meskipun para ahli memperingatkan bahwa teknik non-idiomatiknya memprioritaskan performa daripada konvensi Java yang khas.

Komponen Arsitektur Sistem Aeron

  • Media Driver: Menangani komunikasi jaringan eksternal dengan threading minimal (1 RX + 1 TX + 1 thread admin)
  • Proses Klien: Berkomunikasi melalui shared memory pipes berkinerja tinggi
  • Modul Archive: Merekam aliran pesan ke penyimpanan persisten untuk replay
  • Modul Cluster: Menyediakan layanan fault-tolerant menggunakan algoritma konsensus Raft
  • Dukungan Transport: Pesan UDP unicast, UDP multicast, dan IPC
  • Dukungan Bahasa: Klien Java, C, C++, dan .NET tersedia

Kesimpulan

Aeron mewakili pendekatan canggih untuk pesan berperforma tinggi yang memberikan hasil mengesankan dalam lingkungan terkontrol, khususnya dalam sektor trading keuangan. Namun, tantangan praktis deployment multicast dan kompleksitas mencapai performa optimal menunjukkan bahwa organisasi harus dengan hati-hati mengevaluasi kemampuan dan kebutuhan infrastruktur mereka sebelum adopsi. Meskipun sistem ini unggul dalam kasus penggunaan spesifik, manfaatnya datang dengan overhead implementasi dan pemeliharaan yang signifikan yang mungkin tidak cocok untuk semua aplikasi.

Referensi: Aeron