대부분의 메모리 데이터베이스 시스템은 적어도 옵션으로, 지속성을 제공합니다. 이것은 트랜잭션 로깅을 통해 구현됩니다. 정상 종료시 메모리 내 데이터베이스 이미지가 저장됩니다. 다음에 다시 열면 이전에 저장된 이미지가로드 된 후 메모리 내 데이터베이스에 커밋 된 모든 트랜잭션이 트랜잭션 로그 파일에도 추가됩니다. 시스템이 비정상적으로 종료되면 원래 데이터베이스 이미지를 다시로드하고 트랜잭션 로그 파일에서 트랜잭션을 재생하여 데이터베이스를 복구 할 수 있습니다.
데이터베이스는 모두 메모리 여전히 때문에 일부만 메모리에 캐시되는 영구적 인 데이터베이스가 다른 점은 전체 데이터베이스를 저장하기에 충분한 사용 가능한 시스템 메모리가 있어야합니다. 따라서 캐시 히트 또는 캐시 미스의 예측 불가능 성이 제거됩니다. 로그 파일에 트랜잭션을 덧붙이
는
일반적으로 매우 다른 성능 특성을 가질 것이다, 동기 또는 비동기 적으로 수행 할 수 있습니다. 비동기 트랜잭션 로깅은 파일 시스템 버퍼에서 플러시되지 않고 시스템이 예기치 않게 종료 (예 : 커널 패닉)되는 경우에도 커밋 된 트랜잭션 손실 가능성을 여전히 위험에 빠뜨릴 수 있습니다.
은 인 - 메모리 데이터베이스 트랜잭션 로깅은 오직 로그 파일에 트랜잭션을 추가 할 I/O 하나 개의 파일을 발생에 보장됩니다. 트랜잭션이 크거나 작 으면 문제가되지 않지만 지속성 미디어에 하나의 쓰기 만 남습니다. 또한 쓰기는 항상 순차적이며 (항상 로그 파일에 추가됨) 회전하는 미디어 에서조차도 성능이 저하 될 수 있습니다.
다른 미디어 성능에 크거나 작은 영향을 미칠 것입니다. HDD는 SSD 다음으로 메모리 계층 FLASH (예 : FusionIO PCIExpress 카드)가 가장 많고 NVDIMM 메모리에서 오는 영향이 가장 적습니다.
NVDIMM 메모리는 메모리 내 데이터베이스를 저장하거나 복구를 위해 트랜잭션 로그를 저장하는 데 사용할 수 있습니다. 최대 NVDIMM 메모리 크기는 기존 메모리 크기보다 작지만 (더 비싸지 만) 인 메모리 데이터베이스의 크기가 몇 기가 바이트 인 경우이 옵션은 메모리 내 데이터베이스의 성능을 100 % 유지하면서 동일한 지속성을 제공 할 수 있습니다 영구 미디어에 대한 기존 데이터베이스로 http://www.odbms.org/wp-content/uploads/2014/06/IMDS-NVDIMM-paper.pdf
논문은 우리에 의해 작성된이 논문에서 http://www.automation.com/pdf_articles/mcobject/McObject_Fast_Durable_Data_Management.pdf
그리고 NVDIMM로 :
트랜잭션이 백서에서 HDD, SSD와 퓨전 아이오 로깅와 메모리 데이터베이스의 성능 비교가 있습니다 (McObject), 벤더 중립적이다.