In-Memory 기반에서 인메모리 DBMS, Buffer Cache, Columnar의 차이점은 무엇인가요?

인메모리 DBMS는 모든 데이터를 메모리에 저장/관리함으로써 불필요한 I/O Cost를 최소화하여 고성능 트랜잭션 처리가 가능합니다.

 

구분

인메모리  DBMS Buffer Cache

Columnar

데이터 저장

  • 데이터 삽입 시 메모리 저장소를 사용한 고속 데이터 저장 가능
  • 장애복구를 위해 데이터가 디스크 저장소에 저장되기 때문에 디스크 I/O로 인한 성능저하 발생
  • 디스크 저장소에 저장한 후 메모리와 동기화 또는 메모리에 저장 후 디스크 저장소로 동기화
  • 동기화 시점에 LOCK 발생 시 성능 저하 발생

데이터 로딩

  • DBMS 구동 시 모든 데이터는 메모리에 로드 되며, 로딩시간 감축을 위한 패러럴  로드기술을 사용함
  • 캐시 용량만큼의 데이터만 로딩할 수 있으며, 트랜잭션 처리 시 빈번한 디스크 I/O 발생 가능
  • DBMS 구동 시 정의 한 Column 값은 메모리에 로드

DML

  • 모든 DML은 메모리 내에서 실행되어 고성능 트랜잭션 보장
  • 버퍼 캐시에 없는 경우, 오래된 데이터 블럭을 내리고 필요한 데이터를 디스크로부터 읽어 올리는  I/O발생.
  • DML는 트랜잭션 처리 단위가  ROW 기반이므로 Column으로 변화 저장하기 위한 agent로 인한 성능 저하 발생

SELECT

  • 모든 데이터는 메모리에 존재
  • Select시 메모리 내에서만 검색
  • 버퍼 캐시부터 읽고 데이터가 없는 경우 디스크에서 데이터를 가져옴.
  • Select 에도 I/O 발생가능.
  • 비즈니스 업무 정의에 따라 select 속도 상이

 

댓글이 닫혀있습니다.