Aeron: HFT sohasining yarmini harakatga keltiruvchi xabar almashish tizimining ichki tuzilishi

Aeron'ga chuqur nazar - yuqori chastotali savdo uchun Real Logic kompaniyasining xabar almashish tizimi. Transport, Archive, Cluster, Sequencer. Ichida nima bor, u qanday ishlaydi va to'siqlar qayerda.

Aeron Messaging Architecture Aeron: Media Driver, umumiy xotira, uch marta buferlangan loglar — past kechikishli xabar almashish standartini belgilagan arxitektura.

Yuqori chastotali savdo uchun xabar almashish tizimlari haqida gap ketganda, har bir suhbatda bitta nom qalqib chiqadi — Aeron. Martin Thompson va Real Logic jamoasi (keyinchalik Adaptive Financial Consulting) tomonidan ishlab chiqilgan Aeron mikrosekundlar hamma narsani hal qiladigan dunyoda ma'lumot uzatishning amaldagi standartiga aylandi.

Ushbu maqolada biz Aeron'ni uning qismlariga ajratamiz: Transport, Archive, Cluster va Sequencer. U ichkaridan qanday ishlashini, kuchli tomonlari qayerda ekanini — va muammolar qayerdan boshlanishini tushuntiramiz.


TL;DR

  • Aeron — past kechikishli ilovalar uchun ochiq kodli (Apache 2.0) xabar almashish tizimi
  • IPC kechikishi: umumiy xotira orqali ~250 ns to'liq aylanish
  • O'tkazuvchanlik: sekundiga 20+ million xabar
  • To'rtta mahsulot: Transport (yadro), Archive (yozib olish/qayta ijro etish), Cluster (Raft), Sequencer (to'liq tartib)
  • Til: Java (asosiy) + C mijozi (kamroq to'liq)
  • Foydalanuvchilar: o'nlab HFT firmalari, market-meykerlar va birjalar

1-qism: Aeron Transport — Yadro

Arxitektura: Media Driver

Aeron Media Driver

Markaziy komponent — Media Driver — barcha ma'lumot uzatishni boshqaradigan alohida jarayon (yoki o'rnatilgan kutubxona). Ilovalar u bilan umumiy xotira orqali (/dev/shm ichidagi mmap fayllari) aloqa qiladi.

Asosiy ma'lumot tuzilmalari:

  • ManyToOneRingBuffer (MPSC) — mijozlardan Media Driver'ga buyruqlar
  • BroadcastTransmitter/Receiver — Media Driver'dan mijozlarga javoblar
  • Log Buffers — ma'lumot uchun uch marta buferlangan append-only log
  • Position Counters — pozitsiyani muvofiqlashtirish uchun atom hisoblagichlar

Ishlash ko'rsatkichlari

MetrikaQiymat
IPC (umumiy xotira) RTT~250 ns
UDP unicast RTT (bare metal)~10 us
UDP unicast RTT (bulut, AWS)<100 us
O'tkazuvchanlik>20M msg/sec
Aeron Premium (kernel bypass) P9939 us

2-qism: Aeron Archive — Yozib olish va qayta ijro etish

Archive xabar oqimlarini istalgan pozitsiyadan qayta ijro etish uchun diskka yozadi. Foydalanish holatlari: tartibga soluvchi audit, nosozlikdan keyin tiklash, backtesting, disk raskadrovka.


3-qism: Aeron Cluster — Raft konsensusi

Raft Consensus

Xabarni yo'qotish qabul qilib bo'lmaydigan tizimlar uchun nosozliklarga chidamli replikatsiyalangan holat mashinasi (matching engine'lar, buyurtmalarni boshqarish). Lider saylash, log replikatsiyasi, qat'iy izchil o'qishlar.


4-qism: Aeron Sequencer — To'liq tartiblash

Kapital bozorlari uchun optimallashtirilgan yangi mahsulot (2025). U barcha hodisalarning yagona global tartibini ta'minlaydi — matching engine'lar va ko'p maydonli market-meyking uchun muhim. Cluster asosida qurilgan. Tijoriy mahsulot (yopiq kod).


Zaif tomonlari

JVM Overhead and GC Pauses

  1. JVM bog'liqligi — safepoint'lar, GC pauzalari, JIT qizdirish
  2. Media Driver qo'shimcha yuki — umumiy xotira orqali qo'shimcha sakrash
  3. Native kernel bypass yo'q — faqat UDP (io_uring, DPDK ochiq kodli versiyada qo'llab-quvvatlanmaydi)
  4. SBE alohida — XML sxemalari, Java kod generatori, alohida build bosqichi
  5. Zero-copy networking yo'q — ma'lumot soketdan log buferga nusxalanadi

Muqobillar

LoyihaTilKuchli tomonlariZaif tomonlari
AeronJava/CYetuk, jangda sinovdan o'tgan, to'liq ekotizimJVM qo'shimcha yuki, kernel bypass yo'q (ochiq kodli)
ZigBoltZig20 ns SPSC, zero-copy kodeklar, GC yo'qYosh loyiha (v0.2.1)
Chronicle QueueJavaDoimiy, kuniga milliardlab xabarJVM GC, og'ir vaznli
ZeroMQCOddiy API, ko'plab transportlarIshonchlilik qatlami yo'q, klasterlash yo'q

Biz Marketmaker.cc'da ZigBolt ishlab chiqdik — Zig'dagi Aeron'ning ochiq kodli muqobili. JVM yo'q, GC yo'q, comptime kodeklar, 20 ns SPSC kechikishi. Batafsil bizning ZigBolt maqolamizda o'qing.


Havolalar:


Iqtibos

@article{soloviov2026aeron,
  author = {Soloviov, Eugen},
  title = {Aeron: Inside the Messaging System That Powers Half of the HFT Industry},
  year = {2026},
  url = {https://marketmaker.cc/en/blog/post/aeron-messaging-overview},
  description = {Architecture deep-dive: Aeron Transport, Archive, Cluster, Sequencer.}
}