2017-01-19 25 views
0

LMDB에서 동일한 트랜잭션의 이전 항목을 덮어 쓰면 데이터가 커밋 될 때까지 이전 항목의 공간이 해제 된 것처럼 보입니다. 내 응용 프로그램에서 특정 항목을 여러 번 덮어 썼기 때문에 LMDB의 공간이 부족한 경우가 발생하여이 문제를 해결하기 위해 데이터베이스 크기를 늘 렸습니다.LMDB 항목을 덮어 쓸 때 추가 공간 사용

이러한 상황이 발생하지 않도록 LMDB에서 사용하지 않는 공간을 확보 할 수 있습니까?

답변

0

lmdb에는 압축 메커니즘이 없습니다. 작성자가 항목에 대한 수정을 수행 할 때 활성 독자가있는 경우 이러한 항목은 일관된 읽기를 유지하기 위해 새 페이지에 복사됩니다. 독자가 끝나면 이전 항목 페이지가 다음 페이지에서 사용 가능한 빈 페이지로 돌아갑니다. 소비에 대한 스토리지를 제한하려면 활성 독자가 없으면 여러 개의 작은 쓰기를 수행해야합니다.