위키득계정 ↗
기술

Seastar

Seastar기술
주요 대상
다중 코어 서버 응용
주요 언어
C++
실행 구성
코어별 샤드
비동기 추상화
future와 promise 및 코루틴
Seastar는 다중 코어 환경의 서버 응용을 위한 C++ 프레임워크다. 코어별 샤드에 자료와 실행을 나누고 future와 코루틴으로 비동기 작업을 조합하며 네트워크와 저장소 및 실행 스케줄링을 제공한다.

자료를 소유한 샤드의 실행

코어별 스레드인 샤드가 각 자료의 소유권을 가진다. 다른 코어가 자료를 직접 잠그고 수정하기보다 해당 자료가 있는 샤드에 작업을 보내는 방식을 사용한다. 각 샤드는 자신이 담당하는 네트워크와 저장 및 응용 로직을 함께 실행한다.

비동기 작업의 조합

네트워크 읽기와 파일 쓰기 및 타이머와 다른 코어의 작업 등을 future로 표현한다. 코루틴은 이러한 작업의 결과를 기다리고 다음 단계를 이어 가는 코드를 작성하도록 한다. 여러 작업을 병행하거나 특정 샤드에 함수를 실행하는 구성도 제공한다.

서버 실행의 주변 기능

협력적 실행 스케줄러와 디스크 입출력 관리 및 샤드별 메모리 할당기를 제공한다. 네트워크 프로토콜과 동시성 구성 요소 및 관측 기능도 포함한다. 공유 자료에 대한 경합을 줄이는 실행 모델과 서버에 필요한 기능을 하나의 체계로 연결한다.

관련 문서

Boost Asio / libuv / libevent / mimalloc / Prometheus 모니터링 / 비동기 프로그래밍