banner
banner

Peningkatan OKEx Lightning 2.0

Sistem perdagangan generasi berikutnya yang memberikan kinerja lebih cepat

I. Pengembangan Sistem Perdagangan Elektronik

Persyaratan yang meningkat pada teknologi inti perdagangan aset mencerminkan pertumbuhan pesat industri keuangan global selama paruh pertama abad ke-20. Pada tahun 50-an, pembeli dan penjual berdagang melalui negosiasi, dan harga permintaan dicatat secara manual di atas kertas. Dengan latar belakang jenis sekuritas yang beragam dan volume perdagangan yang meningkat, cara menangani kuotasi ini secara bertahap menciptakan krisis dokumen selama tahun 60-an-70-an karena inefisiensi dan biayanya yang tinggi. Bursa Efek New York (NYSE) tidak punya pilihan selain menghentikan perdagangan setiap Rabu dan memotong jam di hari perdagangan lain untuk membatasi aktivitasnya. Dengan kemampuan tak tertandingi mereka untuk memproses sejumlah besar transaksi secara bersamaan, komputer mulai ikut bermain. Proses tanpa kertas, atau revolusi elektronik, adalah titik balik penting dalam sejarah keuangan global. Transaksi telah bermigrasi ke platform perdagangan elektronik, menawarkan operasi yang lebih cepat dan lebih murah tanpa batasan waktu atau geografis.

Krisis Tanpa Kertas AS di tahun 70-an

Sistem perdagangan elektronik telah muncul di seluruh dunia, termasuk Currenex State Street, INET HKEX, ICAP’s EBS Spot Ai dan LIFFE’s LIFE CONNECT. Karena aset kripto hanya ada dalam bentuk elektronik, aset tersebut secara alami terkait dengan platform perdagangan elektronik, tetapi persyaratan untuk perdagangan kripto dan sistem perdagangan tradisional sedikit berbeda. Secara keseluruhan, sistem perdagangan kripto harus memiliki karakteristik berikut:

Sebuah. Latensi rendah dan throughput tinggi

Latensi dan throughput adalah indikator utama untuk mengukur kinerja sistem perdagangan. Tujuan utama kami adalah mencapai latensi rendah dan throughput tinggi saat merancang sistem perdagangan.

Dalam konteks perdagangan, latensi mengacu pada interval waktu antara permintaan yang diterima oleh dan tanggapan yang dibuat oleh sistem perdagangan. Lonjakan volume perdagangan frekuensi tinggi, sebagian besar, mendorong permintaan pasar akan latensi rendah. Untuk memungkinkan pedagang frekuensi tinggi melakukan perdagangan silang di bursa kripto, sistem perdagangan mereka harus dilengkapi dengan mesin perdagangan latensi rendah untuk dengan cepat menangani pesanan dan mencerminkan realitas pasar di pasar kripto yang sangat kompetitif..

Throughput adalah jumlah permintaan atau peristiwa yang dapat diproses oleh sistem perdagangan dalam satu detik. Throughput dapat secara langsung memengaruhi efisiensi perdagangan, sehingga sistem perdagangan kripto harus dirancang untuk menahan skenario ekstrem dan memanfaatkan unit pemrosesan.

b. Pemeliharaan dan skalabilitas

Dibandingkan dengan aset tradisional, harga kripto lebih fluktuatif dan rentan terhadap guncangan global. Karena sistem perdagangan crypto terus menangani permintaan 24/7, mereka dirancang untuk menjalani pemeliharaan offline sesedikit mungkin. Selain itu, jelas bahwa sektor kripto mengalami transformasi yang cepat karena berbagai layanan derivatif digital yang bervariasi seperti margin, perdagangan berjangka, dan opsi telah diluncurkan hanya dalam satu dekade sejak kebangkitannya. Perkembangan layanan inovatif telah meningkatkan persyaratan untuk pemeliharaan dan skalabilitas sistem perdagangan kripto.

II. OKEx Lightning System 2.0: Kinerja Kecepatan Cahaya

Sebagai salah satu bursa aset digital global teratas, OKEx melayani puluhan ribu pengguna dengan aset kripto yang komprehensif dan produk turunannya, dengan volume perdagangan harian rata-rata miliaran USD. Sebagai pemimpin industri, kami menetapkan standar yang sangat tinggi untuk sistem perdagangan kami. Selain peningkatan pada sistem perdagangan kami pada Agustus 2018, kami telah menerapkan sistem Lightning 2.0 generasi berikutnya dengan kinerja terdepan di dunia setelah beberapa peningkatan. Fitur utama dari peningkatan Lightning 2.0 adalah sebagai berikut:

Kerangka peningkatan Lightning 2.0

1. Memoisasi

Pada tahap pengembangan awal sistem perdagangan kripto, platform biasanya mengambil detail pesanan tawaran dari rekanan dengan mencocokkannya secara otomatis di database hingga pesanan kedaluwarsa atau diisi. Sistem kemudian menghitung jumlah yang diperdagangkan dan menghasilkan entri transaksi setelah pencocokan. Metode ini dapat memastikan konsistensi data tetapi gagal menangani banyak permintaan pasar pada saat yang sama karena waktu pemrosesannya yang lama.

Sistem perdagangan generasi berikutnya kami, Lightning 2.0, telah mengadopsi teknik pencocokan dalam memori terbaru, di mana sistem kami menyimpan data pesanan dalam memori di mesin pencocokan pesanan selama pencocokan otomatis, dan akses yang lebih jarang ke database selama perdagangan. Semua hasil yang cocok dan data perantara juga disimpan dalam memori, yang dapat mengurangi jumlah input dan output yang terlibat, sehingga secara signifikan meningkatkan kecepatan pencocokan pesanan.

Meskipun memoisasi dapat sangat mengurangi latensi perdagangan, sistem perdagangan kripto dapat berisiko kehilangan data karena penangguhan catu daya. Untuk mengatasi masalah ini, kami menggunakan pendekatan sumber peristiwa untuk mempertahankan status entitas bisnis dan menyimpan data dengan cara yang berpusat pada peristiwa. Sistem perdagangan secara tradisional menyimpan data dari keadaan saat ini dalam database, tetapi kejadian disimpan untuk mencerminkan perubahan keadaan dalam pendekatan sumber kejadian, yang memungkinkan sistem untuk membangun kembali keadaan. Sistem secara berkala mengambil snapshot dari status, dan mengurutkan ulang kejadian setelah snapshot dibuat saat pembangunan kembali diperlukan.

Selain itu, unit pemrosesan pusat (CPU) modern mengakses data dalam memori dengan kecepatan yang lebih lambat dari yang diharapkan. Menurut a uji, hanya membutuhkan 1/7 waktu untuk mengambil data dari L2 Cache pada CPU dibandingkan dengan teknik pencocokan dalam memori. Untuk mengurangi latensi lebih lanjut, penting untuk memahami cara memanfaatkan cache CPU dengan baik. Unit transfer data adalah baris cache, yang biasanya berukuran 64 byte. Saat CPU memuat data ke dalam memori, ia mentransfer data yang berdekatan dalam 64 byte ke dalam cache. Karenanya, kami telah melakukan peningkatan berikut pada sistem Lightning kami dengan mengontrol distribusi data dalam memori:

  • Kontrol distribusi dalam memori dengan mengemas potongan data yang diperlukan untuk diproses terus menerus. Setelah semua data disatukan, hanya pemuatan pertama dari penyimpanan dalam memori ke cache yang diperlukan saat membaca beberapa bagian data. Setelah itu, pembacaan berikutnya dapat mencapai cache untuk meningkatkan kinerja sistem.
  • Kontrol distribusi dalam memori dengan meletakkan data yang mungkin berubah pada tingkat yang lebih tinggi (seperti data di penghitung) pada baris cache yang berbeda. Saat beberapa CPU mengubah byte yang berbeda dalam satu baris cache pada saat yang sama, terjadi salah berbagi. Misalnya, setelah CPU1 mengubah datanya sendiri, CPU2 harus memuat ulang seluruh baris cache saat membaca datanya sendiri lagi karena data di baris cache telah diperbarui. Akibatnya, kedua CPU harus menunggu satu sama lain. Itulah mengapa kami menyimpan data di baris cache yang berbeda dengan cara padding untuk menghindari masalah ini.

2. Publikasikan-model berlangganan dan protokol biner

Dua jenis utama model perpesanan adalah sebagai berikut:

Perbandingan Lightning 1.0 dan Lightning 2.0

Dalam model publish-subscribe, sebuah antrian digunakan untuk olah pesan. Ketika suatu layanan perlu meminta layanan lain, informasi tentang permintaan tersebut dienkapsulasi menjadi pesan dan ditempatkan ke antrean. Layanan lain akan berlangganan antrian pesan untuk mendapatkan informasi dan memproses permintaan.

Dalam model permintaan-respons, klien dan server sangat digabungkan bersama. Mereka harus tersedia pada waktu yang sama. Klien hanya dapat menunggu sampai server selesai memproses permintaan, yang menurunkan kecepatan pemrosesannya. Namun, dalam model terbitkan-berlangganan, pemrosesan permintaan selesai setelah penerbit menempatkan pesan ke antrian. Penerbit dipisahkan dari pelanggan. Di sisi lain, jika layanan pelanggan terganggu, pesan tetap berada di antrean dan pemrosesan berlanjut saat layanannya dilanjutkan tanpa perlu penerbit mengirim ulang pesan, sehingga meningkatkan keandalan komunikasi sistem. Oleh karena itu, pola ini diadopsi di hampir semua skenario untuk meningkatkan ketersediaan dan throughput sistem Lightning 2.0 kami.

Setelah kita memilih pola request-response, langkah selanjutnya adalah memilih format pertukaran informasi yang sesuai. Inti dari komunikasi adalah bertukar pesan, biasanya termasuk data. Format pertukaran yang berbeda memiliki kecepatan transmisi dan tingkat evolusi komunikasi yang berbeda, serta menggunakan bahasa pemrograman yang berbeda. Oleh karena itu, ini merupakan pertimbangan utama dalam merancang sistem perdagangan.

Dua jenis format pesan yang umum: berbasis teks & biner

Kekurangan dari protokol komunikasi berbasis teks sudah jelas. Ini dengan mudah menghasilkan kesalahan dan menghabiskan bandwidth saat penguraian file teks besar terjadi, yang tidak berfungsi dengan baik untuk sistem perdagangan yang sangat sensitif terhadap masalah efisiensi dan kinerja. Namun, protokol biner dapat dengan mudah digunakan untuk penguraian, sehingga menghasilkan kinerja yang lebih baik. Oleh karena itu, kami telah mengadopsi protokol biner dalam sistem Lightning 2.0 kami.

3. Penskalaan horizontal

Untuk meningkatkan dan memperluas kemampuan pemrosesan sistem perdagangan, penskalaan horizontal dan penskalaan vertikal sama-sama diinginkan. Penskalaan vertikal mengacu pada peningkatan server, sedangkan penskalaan horizontal berarti penambahan server. Kinerja perangkat keras server bergantung pada kapasitas produksi manusia. Sementara konfigurasi perangkat keras (kinerja perangkat keras) dari server mencapai tingkat tertentu (batas), itu tidak dapat ditingkatkan lebih lanjut, oleh karena itu penskalaan horizontal adalah satu-satunya pilihan. Namun, pendekatan penskalaan horizontal dapat menyebabkan penyeimbangan beban. Cara mendistribusikan beban seluruh sistem secara wajar ke server yang berbeda?

Pertimbangan pertama adalah data race. Meskipun penambahan server dapat meningkatkan kemampuan sistem untuk memproses data secara paralel, kapasitas pemrosesannya tidak dapat ditingkatkan secara efektif jika terjadi distribusi yang tidak wajar karena komputasi paralel dapat membuat servernya sering berlomba untuk mendapatkan data yang sama.

Sistem perdagangan pada dasarnya menyimpan data pesanan, dana, dan posisi. Untuk menurunkan jumlah balapan data, pemecah beban dilakukan untuk mempartisi data tersebut menjadi pecahan-pecahan sesuai dengan jumlah pengguna kami yang tersedia. Data pesanan, dana, dan posisi pengguna diproses secara independen, yang membantu menghindari perlombaan data. Terlebih lagi, kami lebih mengoptimalkan sistem kami dengan menambahkan putaran pemrosesan batch untuk setiap pecahan guna meningkatkan kapasitas pemrosesan sistem kami. Di sisi lain, data margin pasangan perdagangan derivatif merupakan target lain untuk menjalani pemindahan beban. Untuk pengguna, setiap pasangan perdagangan sepenuhnya independen. Dengan cara ini, kami menerapkan sharding beban dalam dua fase. Jika sistem kami membutuhkan lebih banyak server, penyeimbangan ulang beban digunakan berdasarkan sharding untuk mencapai fleksibilitas perluasan sistem.

4. Penskalaan Sistem

Cara dasar untuk meningkatkan pemeliharaan dan skalabilitas sistem perdagangan adalah dengan memisahkan fungsinya. Dalam peningkatan ini, kami membagi lebih lanjut fungsi sistem kami menjadi 3 modul, yaitu pencocokan pesanan, penghitung, dan pengendalian risiko. Setiap modul berisi data dan status internalnya sendiri. Secara spesifik, modul order matching bertanggung jawab untuk memelihara order book dan modul counter menyimpan data posisi dan saldo rekening, sedangkan modul risk control menjalankan fungsi manajemen risiko..

Karena modul bekerja satu sama lain untuk mengaktifkan fungsionalitas seluruh sistem perdagangan, diperlukan mekanisme untuk komunikasinya. Ada dua opsi untuk komunikasi antar-layanan: berbagi data dan olahpesan.

Berbagi data adalah metode paling dasar yang dijalankan dengan cara modul memperbarui datanya, dan modul lain mendapatkan data baru setelah kueri. Namun, pendekatan ini memiliki dua kelemahan yang signifikan. Pertama, jika beberapa modul membuat perubahan dan melakukan kueri pada data yang sama, biasanya akan menghasilkan data race, di mana waktu respons database akan jauh lebih lama. Kedua, sulit untuk mendapatkan pemahaman waktu nyata tentang perubahan dalam modul lain, dan kita hanya dapat mengetahui perubahan tersebut setelah kueri..

Hasilnya, modul sistem Lightning 2.0 kami dirancang untuk menyimpan datanya sendiri dan tidak saling berbagi data. Jika status internal modul berubah, perubahan akan dikemas menjadi peristiwa dan ditempatkan ke loop peristiwa. Hal ini dapat mengurangi kopling dan persaingan antar modul sistem, dan mereka dapat berkomunikasi satu sama lain dengan kecepatan optimal setelah acara dikemas, yang sangat meningkatkan kecepatan komunikasi sistem kami.

AKU AKU AKU. Performa Data Lightning 2.0

Kami telah menyelesaikan peningkatan komprehensif sistem Lightning 2.0 kami pada paruh kedua tahun 2019. Bagaimana kinerjanya meningkat dibandingkan dengan Lightning 1.0?

Berikut adalah statistik terbaru dari pengujian server Hong Kong kami pada bulan November:

Dalam hal kapasitas pemrosesan pesanan, sistem kami memiliki kapasitas pemrosesan pesanan puncak 100.000 txn / s, sebanding dengan sistem perdagangan arus utama di pasar ekuitas global.

Tiga indikator berikut digunakan untuk menguji latensi sistem:

Tiga indikator umum untuk menguji latensi: ACK, Live, dan Batal

Kami menggunakan data uji dari September dan November untuk membandingkan kinerja pra-peningkatan dan pasca-peningkatan sistem perdagangan kami (lihat di bawah). Seperti yang ditunjukkan di bawah, latensi ACK rata-rata menurun dari 50 md menjadi 25 md, latensi Langsung rata-rata berubah dari 134 md menjadi 63 md, dan latensi Batal rata-rata berkurang dari 230 md menjadi 180 md.

Ini menunjukkan bahwa sistem perdagangan Lightning 2.0 kami memiliki latensi yang lebih rendah.

Sebelum Upgrade / Setelah Upgrade

IV. Pemimpin Industri dalam Teknologi

Skalabilitas tak terbatas, reproduktifitas, dan fleksibilitas blockchain berarti ada lebih banyak aset baru yang menunggu untuk ditemukan. Perkembangan teknologi blockchain yang sedang berlangsung akan mengubah peningkatan kekayaan intelektual, hak cipta, dan aset kreatif menjadi kripto di masa depan. Kami akan melihat pasar dan pengguna mencari keandalan dan kinerja yang lebih tinggi dalam sistem perdagangan.

Sebagai pertukaran mata uang kripto terkemuka dunia dengan layanan perdagangan C2C, spot, dan turunan yang komprehensif, kami terus meningkatkan produk perdagangan kami, sistem manajemen risiko, mesin pencocokan pesanan, layanan penyimpanan aset kripto, dan layanan pelanggan, kami telah menjadi kripto terbesar di dunia. platform perdagangan derivatif menerima popularitas besar dengan pengguna global. Ini adalah tujuan akhir kami untuk tumbuh dengan blockchain dan sektor crypto dengan melakukan sumber daya tambahan untuk mengejar keamanan dan efisiensi perdagangan yang lebih tinggi untuk lebih mendorong perkembangan dunia yang digerakkan oleh blockchain yang diimpikan oleh semua orang di ruang crypto.

Ikuti OKEx di:

Steemit: https://steemit.com/@okex-official

Situs web: https://www.okex.com

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me