libmdbx 0.11.7은 GitFlic으로 프로젝트 마이그레이션, 버그 수정 등과 함께 제공됩니다.

그만큼 새로운 libmdbx 라이브러리 버전 0.11.7 릴리스, 출시 프로젝트를 GitFlic 서비스로 마이그레이션하는 것이 눈에 띕니다. GitHub 관리가 경고나 설명 없이 15년 2022월 XNUMX일에 다른 여러 프로젝트와 함께 libmdbx를 제거한 후 미국 제재를 받는 회사와 관련된 많은 개발자에 대한 액세스도 차단했습니다.

사용자 입장에서 보면 프로젝트의 모든 페이지와 저장소, 포크가 갑자기 '404' 페이지로 변해 아무런 연락도 없고 이유도 모른 채.

불행히도 거의 모든 버전이 손실되었습니다., 자세한 답변과 함께 많은 질문이 있었고 많은 토론이 있었습니다. 이 정보의 손실은 GitHub 관리가 프로젝트에 가할 수 있었던 유일한 객관적인 손상이지만, archive.org 아카이브에서 토론의 일부 복사본을 사용할 수 있습니다.

기본 제공 CI 인프라 및 스크립트(OpenSource 프로젝트에서 무료로 사용 가능)의 손실로 인해 약간의 기술적 부채를 검토, 통합 및 제거해야 했습니다. 이제 CI는 모든 BSD 및 Solaris 변형에 대한 빌드 및 실행 테스트를 제외하고 거의 동일한 볼륨(약 100개 빌드 구성)으로 복원되었습니다. 분명히 말해서, GitHub의 조치 후에 지불의 필요성을 상기시키는 것 외에는 설명이나 알림이 수신되지 않았습니다.

libmdbx 0.11.7의 주요 새 기능

libmdbx v0.11.3 릴리스에 대한 최신 뉴스 이후 GitHub 작업에서 복구하는 것 외에도 다음과 같은 개선 사항 및 수정 사항에 주목할 가치가 있습니다.

총 185개의 파일이 89개의 파일에 변경되었으며 약 3300개의 라인이 추가되었습니다. 약 4100개가 제거되었습니다. 주로 GitHub 및 종속 서비스와 관련된 이미 쓸모없는 기술 파일을 제거하기 위해 제거되었습니다.

추가 병합된 페이지 및 캐시에서 감지된 불일치 효과/결함 수정 Linux 커널의 버퍼. 페이지 캐시와 버퍼 캐시가 진정으로 통합된 시스템에서 커널이 이미 메모리 할당된 파일에 기록하여 두 개의 데이터 복사본에 메모리를 낭비하는 것은 의미가 없습니다. 따라서 데이터가 디스크에 아직 기록되지 않은 경우에도 write() 시스템 호출이 완료되기 전에 기록된 데이터가 메모리 할당을 통해 표시됩니다.

지연된 병합을 사용하면 여전히 페이지 목록에 대한 잠금을 잡아야 하고, 데이터를 복사하거나, PTE를 조정해야 하기 때문에 다른 동작은 모두 합리적이지 않습니다. 따라서 SVR1989에 통합 버퍼 캐시가 등장한 4년부터 무언의 일관성 규칙이 적용되었습니다. 결과적으로 바쁜 libmdbx 프로덕션 시나리오에서 이상한 버그를 찾는 것은 많은 작업이었습니다. 먼저 문제를 재현한 다음 가설을 확인하고 개선 사항을 확인합니다.

이제 재생 시나리오의 복잡성과 특수성에도 불구하고 문제가 안정적으로 식별, 위치 지정 및 제거되었다고 자신 있게 말할 수 있습니다. 또한 바이패스 메커니즘의 작동은 Erigon(Ethereum) 개발자 중 한 명이 확인했으며, 그의 경우 디버그 빌드에서 추가 어설션 확인으로 인해 회귀로 보호가 트리거되었습니다.

작업 프로젝트에서 libmdbx가 널리 사용되는 상황에서 버그인지 기능인지, 그러한 일관성이 신뢰할 수 있는지 확인하기보다 안정적인 작동을 보장하는 것이 근본적으로 더 중요하다는 점에 유의해야 합니다. 특히 Linux 커널 내에서 불일치의 원인을 찾지 않고. 따라서 여기에서는 사용자에게 영향을 줄 수 있는 문제를 해결하는 방법에 대해 이야기하고 있습니다.

EXDEV 버그의 회귀 수정 (장치 간 링크) API 및 mdbx_copy 유틸리티를 통해 압축 없이 데이터베이스를 다른 파일 시스템으로 핫 복사할 때.
Kris Zyp는 Deno에서 libmdbx에 대한 지원을 구현했습니다.

MDBX_opt_rp_augment_limit 옵션에 의해 설정된 값 처리 수정 대규모 데이터베이스에서 대규모 트랜잭션을 처리할 때. 이전에는 버그로 인해 불필요한 작업이 수행되어 때때로 이더리움 구현(Erigon/Akula/Silkworm) 및 Binance Chain 프로젝트의 성능에 영향을 줄 수 있었습니다.

많은 버그가 수정되었으며, C++ API용 문제를 포함하고 희귀하고 이국적인 구성에 대한 많은 빌드 문제를 수정했습니다. 모든 중요한 개선 사항의 전체 목록은 ChangeLog에서 확인할 수 있습니다.

마지막으로, 그것에 대해 더 알고 싶다면 자세한 내용을 참조하십시오. 다음 링크에서.


코멘트를 남겨주세요

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

*

*

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