libmdbx 0.10.4에는 다양한 개선 사항 및 버그 수정이 포함되어 있습니다.

출시 버전 0.10.4 라이브러리 "Libmdbx" 전체적으로, 160개 파일에 대한 57개 이상의 변경, ~ 5000줄 추가 및 ~ 2500 제거. libmdbx에 익숙하지 않은 분들은 이것이 키-값 클래스의 컴팩트한 고성능 임베디드 데이터베이스의 구현인 라이브러리 세트라는 것을 알아야 합니다.

역사적으로 libmdbx는 LMDB DBMS의 깊은 재작업입니다. 안정성, 기능 세트 및 성능 면에서 이전 제품을 능가합니다. LMDB와 비교하여 libmdbx는 코드 품질, API 안정성, 테스트 및 자동화된 검사에 많은 중점을 둡니다. 데이터베이스 구조의 무결성을 확인하는 유틸리티는 일부 복구 옵션과 함께 제공됩니다.

기술적으로, libmdbx는 ACID, 엄격한 변경 직렬화 및 코어 전반에 걸친 선형 확장을 통한 비차단 읽기를 제공합니다. CPU의. 자동 압축, 자동 데이터베이스 크기 제어 및 순위 쿼리 추정을 지원합니다. 2016년부터 이 프로젝트는 Positive Technologies의 자금 지원을 받아 2017년부터 제품에 사용되었습니다.

libmdbx의 경우 C++ API가 제공되며, 뿐만 아니라 Rust, Haskell, Python, NodeJS, Ruby, Go, Nim 애호가와 호환되는 바인딩. libfpta의 경우 C/C++ 헤더 파일 형식의 API 설명만 공개적으로 사용할 수 있습니다.

Linux, Windows, MacOS, Android, iOS, FreeBSD, DragonFly, Solaris, OpenSolaris, OpenIndiana, NetBSD, OpenBSD 및 기타 호환 시스템을 지원하는 것 외에도 POSIX.1-2008.

libmdbx 0.10.4의 주요 새 기능

이 새 버전의 libmdbx 0.10.4에서 개발자들은 플레이 가능한 빌드에 대한 기능을 제공할 수 있도록 노력했으며, 또한, 테스트가 개선되고 테스트 스크립트가 확장되어 데이터베이스 내에서 페이지 트리 및 GC 콘텐츠의 달성 가능한 모든 비동형 상태를 확인합니다.

한 번 "noexcept"로 고정된 C ++ API에서, "커서 :: 지우기()" 메서드에 대한 추가 오버로드 추가, 버퍼 구현은 정렬을 보장하기 위해 "std :: string"을 사용하여 완화됩니다(CLANG libstdc ++용 현재).

또한 일련의 검증을 추가하여 단계적 검증을 수행했습니다. 데이터베이스에 고의적인 손상이 발생한 경우 안정성을 보장합니다.

반면 CMake 스크립트에서 LTO(링크 시간 최적화)에 필요한 컴파일러 구성 요소에 대한 검색이 향상되었으며, 동시에 최대 동시 리더 수가 32.767로 증가하고 성능도 향상되었음을 강조합니다. Valgrind 및 AddressSanitizer를 사용할 때 개선되었습니다.

버그 수정에 관하여 이 새 버전에서 만든 항목은 다음과 같습니다.

  • 매우 드문 상황에서 트랜잭션을 커밋하는 동안 루프/크래시가 발생할 수 있는 버그를 수정했습니다. 문제는 Positive Technologies의 전문가가 자체 제품의 내부 테스트 중에 식별했습니다.
  • 대규모 트랜잭션에서 데이터를 변경할 때 드물게 예기치 않은 MDBX_PROBLEM 오류가 나타나는 더티 페이지 유출 알고리즘(수정된 데이터베이스 페이지의 선택적 제거)의 회귀가 수정되었습니다.
  • 사소한 UndefinedBehaviorSanitizer 및 Coverity Scan 문제를 수정했습니다.
    이전 버전의 라이브러리에서 생성한 데이터베이스 이미지 내에 중첩된 페이지에서 "P_DIRTY"를 확인하는 부실하고 사용하지 않는 내부 플래그를 수정했습니다.
  • MDBX_NOTLS 모드에서 작업할 때 Windows에서 SRW 잠금의 재귀 사용 수정(스레드 로컬 저장소 사용하지 않음), 시스템 시간 변경 시 bootid 생성 고정, WSL1 및 WSL2 감지 개선, 다음을 사용하여 탑재된 Plan 9 데이터베이스를 여는 기능 추가 DrvFS.

최종적으로 그것에 대해 더 많이 알고 싶다면 이 새 버전에 대한 세부 정보를 확인할 수 있습니다. 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.