מושגי ליבה
아파치 애로우의 불변성과 ThymesisFlow의 클러스터 공유 메모리 기능을 결합하여 데이터 복사와 직렬화 없이 클러스터 간 데이터 공유를 가능하게 한다.
תקציר
이 논문은 아파치 애로우와 ThymesisFlow 프로토타입을 결합하여 클러스터 간 공유 메모리 시스템을 구현하는 방법을 제안한다.
- 아파치 애로우는 다양한 애플리케이션이 동일한 데이터에 접근할 수 있게 하는 메모리 내 데이터 형식이다. 애로우 객체는 불변성을 가지므로 캐시 일관성 문제가 발생하지 않는다.
- ThymesisFlow는 OpenCAPI 인터페이스를 활용하여 클러스터 간 공유 메모리 주소 공간을 만드는 프로토타입이다. 이를 통해 데이터 복사 없이 메모리에 직접 접근할 수 있다.
- 이 논문에서는 애로우의 메타데이터만 직렬화하여 전송하고, 데이터는 공유 메모리에 직접 저장함으로써 제로 복사, 제로 직렬화 방식을 구현한다.
- 캐시 일관성 문제는 캐시 무효화 및 플러시 작업을 통해 해결한다.
- 또한 모든 노드에서 동일한 가상 주소로 매핑되도록 하여 주소 변환 문제를 해결한다.
- 이를 통해 대용량 데이터를 효율적으로 클러스터 간에 공유할 수 있다.
סטטיסטיקה
1GiB 크기의 uint64 데이터 테이블을 원격 메모리에 초기화하는 데 걸리는 평균 시간은 300.44ms이다.
이 중 메모리 할당 요청, 캐시 플러시, 원격 메모리 쓰기 등의 오버헤드는 118ms이다.
ציטוטים
"Arrow allows for various applications to access the same data, without copying and without serializing any data."
"By combining ThymesisFlow with Apache Arrow, this paper minimizes data copy bottlenecks which currently hinder efficient communication between server nodes."