MangoDB가 현대화되어 이제 FerretDB로 변경됨

최근에프로젝트 런칭 소식이 발표된 날 애플리케이션 코드를 변경하지 않고도 MongoDB의 문서 지향 DBMS를 PostgreSQL로 대체할 수 있는 FerretDB(이전의 MangoDB).

FerretDB는 MongoDB에 대한 호출을 PostgreSQL에 대한 SQL 쿼리로 변환하는 프록시 서버로 구현되어 PostgreSQL을 실제 저장소로 사용할 수 있습니다.

FerretDB(이전의 MangoDB)는 MongoDB에 대한 사실상의 오픈 소스 대체품이 되기 위해 설립되었습니다. FerretDB는 PostgreSQL을 데이터베이스 엔진으로 사용하여 MongoDB 유선 프로토콜 쿼리를 SQL로 변환하는 오픈 소스 프록시입니다.

MongoDB를 AGPLv3 라이선스를 기반으로 하지만 SSPL 라이선스에 따라 애플리케이션뿐만 아니라 제공해야 하는 차별적인 요구 사항을 포함하기 때문에 오픈 소스가 아닌 non-free SSPL 라이선스로의 전환으로 인해 마이그레이션의 필요성이 발생할 수 있습니다. 코드 자체뿐만 아니라 클라우드 서비스 제공에 관련된 모든 구성 요소의 소스 코드도 포함됩니다.

FerretDB의 대상 고객은 MongoDB의 고급 기능을 사용하지 않는 사용자입니다. 하지만 완전히 개방형 소프트웨어 스택을 사용하려고 합니다.

현재 개발 단계에서 FerretDB는 여전히 MongoDB 기능의 일부만 지원합니다. 일반적인 응용 프로그램에서 가장 자주 사용됩니다. 앞으로 그들은 MongoDB에 대한 완전한 드라이버 지원을 달성하고 FerretDB를 MongoDB의 투명한 대체품으로 사용할 수 있는 기능을 제공할 계획입니다.

기억해야합니다. MongoDB는 빠르고 확장 가능한 시스템 사이에서 틈새를 차지합니다. 키/값 형식의 데이터를 처리하는 기능과 쿼리 생성에 편리한 관계형 DBMS가 있습니다.

대부분의 MongoDB 사용자는 MongoDB가 제공하는 많은 고급 기능이 필요하지 않습니다. 그러나 그들은 사용하기 쉬운 오픈 소스 데이터베이스 솔루션이 필요합니다. 이를 인식하고 FerretDB가 그 격차를 메우기 위해 여기에 있습니다.

MongoDB의 JSON과 같은 형식으로 문서 저장 지원, 쿼리 생성을 위한 상당히 유연한 언어가 있으며, 다양한 저장된 속성에 대한 인덱스를 생성할 수 있으며, 효율적인 바이너리 대형 객체 스토리지를 제공합니다. 데이터 변경 및 추가 작업 로깅 지원 데이터베이스에 대해 Map/Reduce 패러다임에 따라 작동할 수 있으며 복제 및 내결함성 구성 구성을 지원합니다.

FerretDB 0.1.0 릴리스에서는 PostgreSQL 데이터를 검색하는 방식을 완전히 재설계했습니다.. 이전에는 들어오는 각 MongoDB 요청에 대해 JSON 형식으로 작업하고 PostgreSQL 측에서 결과를 필터링하는 함수를 사용하여 SQL에서 PostgreSQL로 쿼리가 생성되었습니다.

차이점으로 인해 PostgreSQL 및 MongoDB json 함수의 의미론에서, 불일치가 있었다 다른 유형을 비교하고 주문할 때의 행동. 이 문제를 해결하기 위해 이제 PostgreSQL에서 중복 데이터 샘플을 추출하고 FerretDB 측에서 결과 필터링을 수행하므로 대부분의 상황에서 MongoDB의 동작을 반복할 수 있습니다.

향상된 호환성의 대가는 성능 저하였습니다. 향후 릴리스에서는 동작 차이가 있는 쿼리만 FerretDB 측에서 선택적으로 필터링하여 상쇄될 것으로 예상됩니다.

예를 들어 "db.collection.find({_id: 'some-id-value'})" 쿼리는 PostgreSQL에서 완전히 처리될 수 있습니다. 이 개발 단계에서 프로젝트의 주요 목표는 MongoDB와의 호환성을 달성하는 것이며 성능은 여전히 ​​백그라운드로 강등됩니다.

새 버전의 기능 변경 사항 중 모든 비트 연산자, "$e" 비교 연산자, "$elemMatch" 및 "$bitsAllClear" 연산자에 대한 지원이 있습니다.

최종적으로 그것에 대해 더 알고 싶어하는 사람들을 위해, 그들은 코드가 Go로 작성되었으며 Apache 2.0 라이선스에 따라 배포된다는 것을 알아야 합니다. 다음 링크에서 해당 코드를 확인할 수 있습니다.


코멘트를 남겨주세요

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

*

*

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