OKEx Lightning 2.0 업그레이드

더 빠른 성능을 제공하는 차세대 거래 시스템

I. 전자 거래 시스템 개발

자산 거래의 핵심 기술에 대한 요구 사항이 증가함에 따라 20 세기 상반기 글로벌 금융 산업의 급속한 성장이 반영되었습니다. 50 년대에는 구매자와 판매자가 협상을 통해 거래하고 매도 가격을 종이에 수동으로 기록했습니다. 다양한 증권 유형과 증가하는 거래량을 배경으로 이러한 시세 처리 방식은 비효율 성과 높은 비용으로 인해 60 ~ 70 년대에 점차 서류 작업 위기를 초래했습니다. 뉴욕 증권 거래소 (NYSE)는 매주 수요일 거래를 중단하고 활동을 제한하기 위해 다른 거래일의 시간을 단축 할 수밖에 없었습니다. 엄청난 수의 트랜잭션을 동시에 처리 할 수있는 독보적 인 능력으로 컴퓨터가 작동하기 시작했습니다. 종이없는 프로세스 또는 전자 혁명은 글로벌 금융 역사에서 중요한 전환점이었습니다. 거래가 전자 거래 플랫폼으로 이동하여 시간이나 지리적 장벽없이 더 빠르고 저렴한 운영을 제공합니다..

70 년대 미국 페이퍼리스 위기

State Street의 Currenex, HKEX의 INET, ICAP의 EBS Spot Ai 및 LIFFE의 LIFE CONNECT를 포함한 전자 거래 시스템이 전 세계적으로 등장했습니다. 암호화 자산은 전자 형태로만 존재하기 때문에 자연스럽게 전자 거래 플랫폼과 관련이 있지만 암호화 거래 및 기존 거래 시스템에 대한 요구 사항은 약간 다릅니다. 전반적으로 암호 화폐 거래 시스템은 다음과 같은 특성을 가져야합니다.

ㅏ. 짧은 대기 시간 및 높은 처리량

지연 시간과 처리량은 거래 시스템의 성능을 측정하는 핵심 지표입니다. 우리의 주요 목표는 거래 시스템을 설계 할 때 낮은 지연 시간과 높은 처리량을 달성하는 것입니다..

거래의 맥락에서 대기 시간은 거래 시스템에서 수신 한 요청과 응답 사이의 시간 간격을 의미합니다. 빈도가 높은 거래량의 급증은 짧은 지연 시간에 대한 시장의 수요를 크게 증가시킵니다. 고주파 거래자들이 암호 화폐 거래소에서 교차 거래 할 수 있도록하려면 거래 시스템에 지연 시간이 짧은 거래 엔진을 장착하여 주문을 신속하게 처리하고 경쟁이 심한 암호 화폐 시장에서 시장 현실을 반영해야합니다..

처리량은 거래 시스템이 1 초 내에 처리 할 수있는 요청 또는 이벤트의 양입니다. 처리량은 거래 효율성에 직접적인 영향을 미칠 수 있으므로 암호화 거래 시스템은 극단적 인 시나리오를 견디고 처리 장치를 활용하도록 설계되어야합니다..

비. 유지 관리 및 확장 성

기존 자산에 비해 암호 화폐 가격은 변동성이 높고 글로벌 충격에 취약합니다. 암호 화폐 거래 시스템은 24/7 요청을 지속적으로 처리하므로 오프라인 유지 관리를 최대한 적게 수행하도록 설계되었습니다. 또한 마진, 선물 및 옵션 거래와 같은 다양한 디지털 파생 상품 서비스가 상승한 지 10 년 만에 출시 되었기 때문에 암호화 부문이 급속한 변화를 겪고 있음이 분명합니다. 혁신적인 서비스의 확산으로 암호 화폐 거래 시스템의 유지 관리 및 확장성에 대한 요구 사항이 높아졌습니다..

II. OKEx Lightning System 2.0 : Lightspeed 성능

최고의 글로벌 디지털 자산 거래소 중 하나 인 OKEx는 일일 평균 거래량이 수십억 달러에 달하는 포괄적 인 암호화 자산 및 파생 상품으로 수만 명의 사용자에게 서비스를 제공합니다. 업계 리더로서 우리는 거래 시스템에 대해 매우 높은 기준을 설정했습니다. 2018 년 8 월 거래 시스템의 업그레이드 외에도 여러 번의 업그레이드 후 세계 최고의 성능을 제공하는 차세대 Lightning 2.0 시스템을 구현했습니다. Lightning 2.0 업그레이드의 주요 기능은 다음과 같습니다.

Lightning 2.0 업그레이드 프레임 워크

1. 메모 화

암호화 거래 시스템의 초기 개발 단계에서 플랫폼은 일반적으로 주문이 만료되거나 채워질 때까지 데이터베이스에서 자동 매칭하여 상대방의 입찰 주문에 대한 세부 정보를 검색합니다. 그런 다음 시스템은 거래 금액을 계산하고 매칭 후 거래 항목을 생성합니다. 이 방법은 데이터 일관성을 보장 할 수 있지만 처리 시간이 길기 때문에 많은 시장 요청을 동시에 처리하지 못했습니다..

당사의 차세대 거래 시스템 인 Lightning 2.0은 최신 인 메모리 매칭 기술을 채택했습니다. 시스템은 자동 매칭시 주문 매칭 엔진에 주문 데이터를 메모리에 저장하고 거래 중 데이터베이스에 대한 액세스 빈도를 줄입니다. 모든 매칭 결과 및 중간 데이터도 메모리에 저장되므로 관련된 입력 및 출력의 양을 줄일 수 있으므로 주문 매칭 속도를 크게 높일 수 있습니다..

메모 화는 거래 지연 시간을 크게 줄일 수 있지만 암호화 거래 시스템은 전원 공급 중단으로 인해 데이터가 손실 될 위험이 있습니다. 이 문제를 해결하기 위해 이벤트 소싱 접근 방식을 사용하여 비즈니스 항목의 상태를 유지하고 이벤트 중심 방식으로 데이터를 저장합니다. 거래 시스템은 전통적으로 현재 상태의 데이터를 데이터베이스에 저장하지만 이벤트 소싱 접근 방식의 상태 변경을 반영하기 위해 이벤트가 저장되어 시스템이 상태를 재 구축 할 수 있습니다. 시스템은 주기적으로 상태의 스냅 샷을 찍고 재 구축이 필요할 때 스냅 샷이 생성 된 후 이벤트를 다시 정렬합니다..

또한 최신 중앙 처리 장치 (CPU)는 예상보다 느린 속도로 메모리 내 데이터에 액세스합니다. 에 따르면 테스트, 인 메모리 매칭 기술에 비해 CPU의 L2 캐시에서 데이터를 검색하는 데 1/7의 시간이 걸립니다. 대기 시간을 더 줄이려면 CPU 캐시를 잘 활용하는 방법을 이해하는 것이 중요합니다. 데이터 전송 단위는 캐시 라인이며 일반적으로 64 바이트입니다. CPU가 메모리 내 데이터를로드하는 동안 인접한 데이터를 64 바이트로 캐시로 전송합니다. 따라서 메모리 내 데이터 배포를 제어하여 Lightning 시스템을 다음과 같이 개선했습니다.

  • 지속적으로 처리해야하는 데이터 조각을 함께 패킹하여 메모리 내 배포를 제어합니다.. 모든 데이터가 합쳐진 후에는 여러 데이터 조각을 읽는 동안 메모리 내 스토리지에서 캐시로의 첫 번째로드 만 필요합니다. 이후에 후속 읽기가 캐시에 도달하여 시스템 성능을 향상시킬 수 있습니다..
  • 더 빠른 속도로 변경 될 수있는 데이터 (예 : 카운터의 데이터)를 다른 캐시 라인에 배치하여 메모리 내 배포를 제어합니다.. 여러 CPU가 단일 캐시 라인에서 동시에 다른 바이트를 수정하면 잘못된 공유가 발생합니다. 예를 들어, CPU1이 자체 데이터를 수정 한 후 CPU2는 캐시 라인의 데이터가 업데이트 되었기 때문에 자체 데이터를 다시 읽을 때 전체 캐시 라인을 다시로드해야합니다. 결과적으로 두 CPU는 서로를 기다려야합니다. 이것이 우리가이 문제를 피하기 위해 패딩을 통해 다른 캐시 라인에 데이터를 저장하는 이유입니다..

2. 게시-구독 모델 및 바이너리 프로토콜

두 가지 주요 메시징 모델 유형은 다음과 같습니다.

Lightning 1.0과 Lightning 2.0의 비교

발행-구독 모델에서 큐는 메시징에 사용됩니다. 서비스가 다른 서비스를 요청해야하는 경우 요청에 대한 정보가 메시지로 캡슐화되어 큐에 배치됩니다. 다른 서비스는 정보를 얻고 요청을 처리하기 위해 메시지 큐에 가입합니다..

요청-응답 모델에서 클라이언트와 서버는 강력하게 결합됩니다. 동시에 사용할 수 있어야합니다. 클라이언트는 서버가 요청 처리를 완료 할 때까지만 기다릴 수 있으므로 처리 속도가 느려집니다. 그러나 발행-구독 모델에서는 발행자가 메시지를 큐에 배치 한 후 요청 처리가 완료됩니다. 게시자는 구독자와 분리됩니다. 반면에 가입자의 서비스가 중단되면 메시지가 대기열에 유지되고 게시자가 메시지를 다시 보낼 필요없이 서비스가 재개 될 때 처리가 계속되므로 시스템 통신의 안정성이 향상됩니다. 따라서이 패턴은 Lightning 2.0 시스템의 가용성과 처리량을 개선하기 위해 거의 모든 시나리오에서 채택됩니다..

요청-응답 패턴을 선택한 후 다음 단계는 적절한 정보 교환 형식을 선택하는 것입니다. 커뮤니케이션의 본질은 일반적으로 데이터를 포함한 메시지를 교환하는 것입니다. 서로 다른 교환 형식은 서로 다른 프로그래밍 언어를 사용할뿐만 아니라 전송 속도와 통신 발전 수준이 서로 다릅니다. 따라서 거래 시스템을 설계 할 때 중요한 고려 사항입니다..

두 가지 일반적인 유형의 메시지 형식 : 텍스트 기반 & 바이너리

텍스트 기반 통신 프로토콜의 단점은 분명합니다. 오류를 쉽게 생성하고 큰 텍스트 파일의 구문 분석이 발생할 때 대역폭을 소모하므로 효율성 및 성능 문제에 극도로 민감한 거래 시스템에는 적합하지 않습니다. 그러나 바이너리 프로토콜은 구문 분석에 쉽게 사용할 수 있으므로 더 나은 성능을 생성합니다. 따라서 우리는 Lightning 2.0 시스템에서 바이너리 프로토콜을 채택했습니다..

삼. 수평 확장

거래 시스템의 처리 능력을 개선하고 확장하기 위해서는 수평 적 확장과 수직적 확장이 모두 필요합니다. 수직 확장은 서버 업그레이드를 의미하고 수평 확장은 서버 추가를 의미합니다. 서버의 하드웨어 성능은 사람의 생산 능력에 따라 달라집니다. 서버의 하드웨어 구성 (하드웨어 성능)이 특정 수준 (한도)에 도달하면 더 이상 개선 할 수 없으므로 수평 확장이 유일한 옵션입니다. 그러나 수평 적 확장 방식은 부하 분산으로 이어질 수 있습니다. 전체 시스템의 부하를 다른 서버에 합리적으로 분산하는 방법?

첫 번째 고려 사항은 데이터 경쟁입니다. 서버를 추가하면 데이터를 병렬로 처리하는 시스템의 기능이 향상 될 수 있지만 병렬 컴퓨팅으로 인해 서버가 동일한 데이터를 자주 경쟁하게 만들 수 있으므로 불합리한 배포가 발생하면 처리 능력을 효과적으로 향상시킬 수 없습니다..

거래 시스템은 기본적으로 주문, 펀드 및 포지션 데이터를 저장합니다. 데이터 레이스 수를 줄이기 위해 사용 가능한 사용자 수에 따라 해당 데이터를 샤드로 분할하는로드 샤딩이 수행됩니다. 사용자의 주문, 자금 및 위치 데이터는 독립적으로 처리되므로 데이터 경쟁을 피할 수 있습니다. 또한 시스템의 처리 능력을 향상시키기 위해 각 샤드에 대한 일괄 처리를 추가하여 시스템을 더욱 최적화했습니다. 반면 파생 상품 거래 쌍 마진 데이터는 부하 분할 대상이됩니다. 사용자의 경우 각 거래 쌍은 완전히 독립적입니다. 이러한 방식으로 우리는 두 단계로로드 샤딩을 사용합니다. 시스템에 더 많은 서버가 필요한 경우 시스템 확장의 유연성을 달성하기 위해 샤딩을 기반으로 부하 재조정이 사용됩니다..

4. 시스템 확장

거래 시스템의 유지 보수성과 확장 성을 향상시키는 기본 방법은 기능을 분리하는 것입니다. 이번 업그레이드에서 우리는 시스템의 기능을 주문 일치, 카운터 및 위험 제어라는 3 개의 모듈로 추가로 분할했습니다. 각 모듈에는 자체 내부 데이터 및 상태가 포함됩니다. 특히 주문 매칭 모듈은 오더 북 관리를 담당하고 카운터 모듈은 포지션 및 계좌 잔고에 대한 데이터를 저장하고, 리스크 관리 모듈은 리스크 관리 기능을 수행합니다..

모듈이 전체 거래 시스템의 기능을 활성화하기 위해 서로 작동하므로 통신을위한 메커니즘이 필요합니다. 서비스 간 통신에는 데이터 공유 및 메시징의 두 가지 옵션이 있습니다..

데이터 공유는 모듈이 데이터를 업데이트하고 다른 모듈이 쿼리 후 새로운 데이터를 얻는 방식으로 실행되는 가장 기본적인 방법입니다. 그러나이 방법에는 두 가지 중요한 단점이 있습니다. 첫째, 여러 모듈이 동일한 데이터를 변경하고 쿼리하는 경우 일반적으로 데이터 경합이 발생하며 그 동안 데이터베이스의 응답 시간이 훨씬 길어집니다. 둘째, 다른 모듈의 변경 사항을 실시간으로 이해하기 어렵고, 이러한 변경 사항은 쿼리 후에 만 ​​알 수 있습니다..

따라서 Lightning 2.0 시스템의 모듈은 데이터를 서로 공유하지 않고 자체 데이터를 저장하도록 설계되었습니다. 모듈의 내부 상태가 변경되면 변경 사항이 이벤트로 캡슐화되고 이벤트 루프에 배치됩니다. 이를 통해 시스템 모듈 간의 결합 및 경쟁을 줄일 수 있으며 이벤트가 캡슐화 된 후 최적의 속도로 서로 통신 할 수 있으므로 시스템의 통신 속도가 크게 향상됩니다..

III. Lightning 2.0 데이터 성능

2019 년 하반기에 Lightning 2.0 시스템의 포괄적 인 업그레이드를 완료했습니다. Lightning 1.0에 비해 성능이 어떻게 향상 되었습니까??

11 월 홍콩 서버 테스트에 대한 최신 통계는 다음과 같습니다.

주문 처리 능력 측면에서 우리 시스템은 세계 주식 시장의 주류 거래 시스템에 필적하는 100,000 txn / s의 최대 주문 처리 능력을 가지고 있습니다..

다음 세 가지 표시기는 시스템 대기 시간을 테스트하는 데 사용됩니다.

대기 시간 테스트를위한 세 가지 일반적인 지표 : ACK, Live 및 Cancel

9 월과 11 월의 테스트 데이터를 사용하여 거래 시스템의 업그레이드 전 및 업그레이드 후 성능을 비교했습니다 (아래 참조). 아래에 표시된 것처럼 평균 ACK 대기 시간은 50ms에서 25ms로 감소했으며 평균 라이브 대기 시간은 134ms에서 63ms로, 평균 취소 대기 시간은 230ms에서 180ms로 감소했습니다..

Lightning 2.0 거래 시스템의 지연 시간이 더 낮음을 보여줍니다..

업그레이드 전 / 업그레이드 후

IV. 기술의 업계 리더

블록 체인의 무한한 확장 성, 재현성 및 유연성은 더 많은 새로운 자산이 발견되기를 기다리고 있음을 의미합니다. 블록 체인 기술의 지속적인 개발은 앞으로 증가하는 지적 재산, 저작권 및 크리에이티브 자산을 암호 화폐로 전환 할 것입니다. 우리는 거래 시스템에서 더 높은 신뢰성과 성능을 원하는 시장과 사용자를 볼 것입니다..

포괄적 인 C2C, 현물 및 파생 상품 거래 서비스를 갖춘 세계 최고의 암호 화폐 거래소로서 우리는 거래 상품, 위험 관리 시스템, 주문 매칭 엔진, 암호화 자산 저장 서비스 및 고객 서비스를 지속적으로 개선하고 있으며, 세계 최대 암호 화폐가되었습니다. 글로벌 유저들에게 큰 인기를 얻고있는 파생 상품 거래 플랫폼입니다. 암호 화폐 분야의 모든 사람들이 꿈꾸는 블록 체인 기반 세계의 개발을 더욱 추진하기 위해 더 높은 거래 보안과 효율성을 추구하기 위해 추가 자원을 투입함으로써 블록 체인 및 암호화 부문과 함께 성장하는 것이 우리의 궁극적 인 목표입니다..

OKEx 팔로우 :

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

웹 사이트 : https://www.okex.com

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
map