全部产品
Search
文档中心

Realtime Compute for Apache Flink:State backend

更新时间:Mar 10, 2026

GeminiStateBackend adalah mesin penyimpanan kunci-nilai (KV) yang dirancang untuk pemrosesan aliran dan merupakan state backend bawaan Realtime Compute for Apache Flink. Topik ini menjelaskan desain inti GeminiStateBackend serta membandingkan performanya dengan RocksDBStateBackend.

Ikhtisar

Komputasi berstatus (stateful computation) merupakan skenario kompleks dan menantang dalam pemrosesan aliran. Akses data dalam pemrosesan aliran memiliki karakteristik berikut:

  • Volume besar akses acak dengan sedikit kueri rentang.

  • Trafik data dan titik panas (hot spots) berubah secara dinamis dan sering kali. Artinya, bahkan instans konkuren yang berbeda dari operator yang sama dapat memiliki pola akses data yang berbeda.

GeminiStateBackend dirancang untuk mengatasi karakteristik tersebut. Desain intinya mencakup poin-poin utama berikut:

  • Arsitektur dan desain struktur data baru untuk peningkatan performa menyeluruh.

    Arsitektur keseluruhan GeminiStateBackend dibangun di atas struktur data Log-Structured Merge-tree (LSM-tree). Arsitektur ini mencakup tiga kemampuan utama: penyesuaian adaptif berdasarkan skala data dan pola akses, penyimpanan bertingkat untuk data panas dan dingin, serta peralihan fleksibel antara arsitektur anti-caching dan caching. Selain itu, ia menggunakan struktur penyimpanan berbasis hash yang dioptimalkan untuk kueri acak. Hasil dari perbandingan performa Nexmark menunjukkan bahwa GeminiStateBackend jauh melampaui RocksDBStateBackend. Pada sekitar separuh kasus penggunaan, performa GeminiStateBackend lebih baik hingga lebih dari 70% dibandingkan RocksDBStateBackend.

  • Dukungan penguraian keterkaitan penyimpanan dan komputasi untuk mengatasi batasan penyimpanan disk lokal pada data status.

    Pada lingkungan dengan ruang disk lokal terbatas, pekerjaan (job) dengan status besar sering kali kehabisan ruang disk. Job yang menggunakan RocksDBStateBackend biasanya mengatasi masalah ini dengan menambah sumber daya, seperti meningkatkan konkurensi. GeminiStateBackend melakukan penguraian keterkaitan antara penyimpanan dan komputasi. Hal ini memungkinkan penyimpanan status beroperasi secara independen dari disk lokal, sehingga mencegah kegagalan job akibat data status melebihi kapasitas disk lokal. Untuk informasi tentang cara mengonfigurasi penguraian keterkaitan penyimpanan dan komputasi, lihat Konfigurasi penguraian keterkaitan penyimpanan dan komputasi.

  • Dukungan pemisahan kunci-nilai adaptif untuk meningkatkan performa job join aliran ganda atau multi-aliran secara signifikan.

    Join aliran ganda atau multi-aliran merupakan salah satu skenario paling menantang dalam pemrosesan aliran dan merupakan kasus khas di mana penyimpanan status dapat menjadi bottleneck. Dalam banyak skenario tersebut, tingkat keberhasilan join rendah atau nilai data status sangat besar. Untuk mengatasi hal ini, GeminiStateBackend memperkenalkan teknologi pemisahan kunci-nilai (KV separation). Teknologi ini secara signifikan meningkatkan performa job join aliran ganda atau multi-aliran. Fitur ini sepenuhnya adaptif dan tidak memerlukan konfigurasi atau penyetelan tambahan. Teknologi ini telah diverifikasi oleh layanan inti Alibaba Group selama festival belanja Double 11. Dengan pemisahan KV diaktifkan, kapasitas throughput job meningkat 50% hingga 70%. Rata-rata pemanfaatan sumber daya komputasi meningkat 50%, dan pada skenario yang paling diuntungkan, pemanfaatan tersebut meningkat hingga 100%–200%. Untuk informasi tentang cara mengonfigurasi pemisahan KV, lihat Konfigurasi pemisahan KV.

  • Snapshot job ringan untuk mempercepat penyelesaian checkpoint dan snapshot pada job dengan status besar.

    GeminiStateBackend mendukung snapshot job yang lebih detail halus dan memisahkan checkpoint dari mekanisme kompaksi LSM. Hal ini membuat checkpoint dan snapshot lebih cepat dan stabil. Selain itu, GeminiStateBackend mendukung titik simpan (savepoint) inkremental native. Ketika dikombinasikan dengan snapshot native yang disediakan oleh Realtime Compute for Apache Flink, performa titik simpan ini mendekati performa checkpoint, sehingga ketersediaan snapshot meningkat secara signifikan.

  • Penyetelan parameter adaptif untuk menghilangkan kebutuhan penyetelan manual.

    Pada tugas pemrosesan aliran, operator yang berbeda sering kali memiliki pola akses status yang berbeda. Penyimpanan status biasanya memerlukan kombinasi parameter berbeda untuk mencapai performa optimal. Parameter-parameter ini sering kali jumlahnya banyak dan melibatkan detail tingkat rendah, sehingga penyetelan manual menjadi sulit dan memakan waktu. GeminiStateBackend menggunakan teknologi penyetelan parameter adaptif untuk secara otomatis menyesuaikan parameter saat runtime berdasarkan pola akses data dan trafik saat ini. Hal ini mencapai performa optimal di berbagai skenario. Teknologi ini telah diverifikasi oleh layanan inti Alibaba Group selama festival belanja Double 11. Teknologi ini menghilangkan kebutuhan penyetelan manual pada lebih dari 95% kasus dan meningkatkan kapasitas throughput per inti sebesar 10% hingga 40%. Untuk informasi tentang cara mengonfigurasi penyetelan parameter adaptif, lihat Konfigurasi penyetelan parameter adaptif.

Perbandingan performa Nexmark

Kami menggunakan kasus penggunaan dengan bottleneck pada state dari Nexmark dan sumber daya perangkat keras yang identik untuk menguji dan membandingkan performa RocksDBStateBackend dan GeminiStateBackend.

Catatan

Situs web Nexmark merupakan situs pihak ketiga. Akses ke situs ini mungkin lambat atau tidak tersedia.

Hasilnya menunjukkan bahwa GeminiStateBackend secara signifikan meningkatkan efisiensi job secara keseluruhan, yang diukur berdasarkan kapasitas throughput per inti. Hasil spesifik ditampilkan dalam tabel berikut.

Nama kasus

Gemini TPS/Core

RocksDB TPS/Core

Peningkatan Gemini vs. RocksDB

q4

83,63 K/s

53,26 K/s

57,02%

q5

84,52 K/s

57,86 K/s

46,08%

q8

468,96 K/s

361,37 K/s

29,77%

q9

59,42 K/s

26,56 K/s

123,72%

q11

93,08 K/s

48,82 K/s

90,66%

q18

150,93 K/s

87,37 K/s

72,75%

q19

143,46 K/s

58,5 K/s

145,23%

q20

75,69 K/s

22,44 K/s

237,30%

Referensi

  • Untuk mempelajari cara membuat, melihat, dan menghapus kumpulan status serta memulihkan dari status tertentu, lihat Kelola kumpulan status.

  • Untuk informasi mengenai perbedaan antara RocksDB dan Gemini dalam hal efisiensi migrasi dan performa job selama migrasi data status, lihat Ikhtisar.

  • Untuk detail mengenai dampak kompatibilitas dari modifikasi SQL, lihat Modifikasi SQL dan kompatibilitas.

  • Untuk prosedur penggunaan Nexmark dalam menguji performa Realtime Compute for Apache Flink, lihat Whitepaper Performa (Pengujian Performa Nexmark).

  • Untuk pertanyaan umum (FAQ) mengenai checkpoint sistem atau snapshot job di Realtime Compute for Apache Flink, lihat Checkpoint FAQ.