인메모리 데이터베이스란?

subbni·2023년 1월 29일
0

출처:https://www.tibco.com/ko/reference-center/what-is-an-in-memory-database

인메모리 데이터베이스는 컴퓨터의 주 메모리에 데이터를 저장한다.

인메모리 데이터베이스를 사용하면 보조 기억 장치를 사용하는 기존 데이터베이스에 비해 빠르다. 보조 기억 장치에는 하드 디스크 또는 SSD가 포함된다. 컴퓨터의 중앙 처리 장치 CPU는 주 메모리에 저장된 데이터만 직접 접속할 수 있다. 따라서 컴퓨터는 보조 기억 장치의 데이터보다 훨씬 빠르게 주 메모리의 데이터를 읽고 쓸 수 있다. 이로 하여 인메모리 데이터베이스 처리가 엄청나게 빠르게 된다.

보통 데이터베이스 조작을 고속으로 필요로 하는 애플리케이션에 인메모리 데이터베이스를 사용한다.
다음 중 하나가 필요한 경우 인메모리 데이터베이스 적용을 고려하여야 한다.

  • 빅데이터의 실시간 이점을 활용해야 한다.
  • 정기적으로 데이터를 수집하게 되며 그에 대한 빠른 액세스가 필요하다.
  • 데이터 지속성은 큰 문제가 아니다.

인메모리 데이터베이스와 디스크 기반 데이터베이스 비교

  • 인메모리 데이터베이스는 기존의 디스크 기반 데이터베이스에 비해 읽기/쓰기를 더 빠르게 진행한다. 기존 데이터베이스에서 연산을 진행하려면 (I/O)입/출력 작업을 포함하는 디스크에서 쓰기/읽기를 필요로 한다. 이 추가 프로세스로 하여 디스크 기반 데이터베이스의 속도가 저하되게 된다.
  • 기존 디스크 기반 데이터베이스의 데이터는 영구적이다. 인메모리 데이터베이스에서 사용되는 주 메모리는 휘발성 메모리이다. 따라서 시스템 장애 시 데이터가 손실될 수 있다. 인메모리 데이터베이스는 다양한 기술을 사용하여 데이터 변동성 문제를 극복한다.

인메모리 데이터베이스는 어떻게 내구성을 보장하는가?

다음과 같은 ACID 속성을 보장하는 것이 모든 데이터베이스의 전제조건이다.

  • 원자성
  • 일관성
  • 고립성
  • 내구성
    인메모리 데이터베이스는 처음 세 가지 속성은 보장하지만 내구성을 보장하려면 추가 단계가 필요하다. 이 속성은 시스템 고장이나 정전이 있어도 모든 데이터가 손상되지 않아야 한다는 것을 의미한다. 인메모리 데이터베이스는 휘발성 주 메모리를 기반으로 하므로, 시스템 전원이 꺼지면 모든 데이터가 손실되도록 설계되었다. 따라서 다양한 기술을 사용하여 전원이 꺼지거나 오류가 발생한 후에도 데이터가 삭제되지 않도록 한다.

스냅샷

데이터베이스의 주기적 스냅샷을 생성하여 디스크 드라이브(비휘발성)에 저장한다. 이 데이터베이스의 스냅샷은 특정 시점의 전체 데이터베이스의 복사본이다.
주기적인 스냅샷은 데이터를 보존하는 방법이지만, 내구성이 보장되지 않을 수 있다. 스냅샷을 저장한 뒤 언제든지 시스템 오류가 발생할 수 있다. 이 때 스냅샷 이후의 모든 변경 사항이 손실된다.

트랜잭션 로깅

데이터베이스에 대해 진행한 모든 수정 기록을 보관한다. 이러한 트랜잭션 로그에는 데이터베이스에 대한 모든 삽입/수정 연산에 대한 세부 정보가 들어있다. 해당 로그는 오류 발생 시 데이터베이스를 복구하는 데 사용할 수 있는 비휘발성 파일에 저장된다.
분당 수천 건의 연산을 수행하는 데이터베이스에서 트랜잭션 로깅은 시스템의 성능과 저장 용량에 과부하는 제공한다. 대부분의 인메모리 데이터베이스는 스냅샷이 만들어 질 때까지 트랜잭션 로그를 보관하였다가 이후 삭제한다.

비휘발성 랜덤 액세스 메모리 (NVRAM)

NVRAM은 전원이 꺼진 후에도 데이터를 유지한다. 인메모리 데이터베이스는 배터리로 동작하는 정적 RAM 또는 전기적으로 지울 수 있는 프로그래밍이 가능한 읽기 전용 메모리(EEPROM)을 사용한다.

profile
개발콩나물

0개의 댓글