MangoDB är moderniserad och ändras nu till FerretDB

nyligens dagar tillkännagavs nyheten om lanseringen av projektet FerretDB, (tidigare MangoDB), som låter dig ersätta MongoDB:s dokumentorienterade DBMS med PostgreSQL utan att göra några ändringar i din applikationskod.

FerretDB är implementerad som en proxyserver som översätter anrop till MongoDB till SQL-frågor till PostgreSQL, så att du kan använda PostgreSQL som den faktiska lagringen.

FerretDB (tidigare MangoDB) grundades för att bli den de facto ersättaren med öppen källkod för MongoDB. FerretDB är en proxy med öppen källkod som konverterar MongoDB trådprotokollfrågor till SQL, med PostgreSQL som databasmotor.

Behovet av migrering kan uppstå på grund av övergången av MongoDB till en icke-fri SSPL-licens, som är baserad på AGPLv3-licensen, men inte är öppen källkod, eftersom den innehåller ett diskriminerande krav att tillhandahålla under SSPL-licensen inte bara applikationen av själva koden, men också källkoderna för alla komponenter som är involverade i att tillhandahålla molntjänsten.

Målgruppen för FerretDB är användare som inte använder de avancerade funktionerna i MongoDB i sina applikationer, men vill använda en helt öppen mjukvarustack.

I det nuvarande utvecklingsstadiet, FerretDB det stöder fortfarande bara en del av MongoDB-funktionerna som oftast används i typiska applikationer. I framtiden planerar de att uppnå fullt förarstöd för MongoDB och ge möjligheten att använda FerretDB som en transparent ersättning för MongoDB.

Man bör komma ihåg det MongoDB upptar en nisch bland snabba och skalbara system som arbetar på data i nyckel-/värdeformat och relations-DBMS, funktionellt och bekvämt för att generera frågor.

De flesta MongoDB-användare behöver inte många av de avancerade funktionerna som MongoDB erbjuder; de behöver dock en lättanvänd databaslösning med öppen källkod. FerretDB inser detta och är här för att fylla den luckan.

MongoDB stöder lagring av dokument i ett JSON-liknande format, har ett ganska flexibelt språk för att generera frågor, kan skapa index för olika lagrade attribut, tillhandahåller effektiv binär lagring av stora objekt, stödja loggning av operationer för att ändra och lägga till data till databasen kan den arbeta enligt Map/Reduce-paradigmet, den stöder replikering och konstruktion av feltoleranta konfigurationer.

I releasen av FerretDB 0.1.0 noteras att helt omdesignat sättet som PostgreSQL-data hämtas på. Tidigare, för varje inkommande MongoDB-förfrågan, genererades en SQL till PostgreSQL-fråga, med hjälp av funktioner för att arbeta med JSON-formatet och filtrering av resultaten på PostgreSQL-sidan.

På grund av skillnaderna i semantiken för PostgreSQL och MongoDB json-funktioner, det fanns en diskrepans i beteende när man jämför och beställer olika typer. För att lösa detta problem extraheras nu ett urval av redundant data från PostgreSQL och filtreringen av resultatet görs på FerretDB-sidan, vilket gjorde det möjligt att upprepa beteendet hos MongoDB i de flesta situationer.

Priset för ökad kompatibilitet var en prestationsstraff, som i framtida utgåvor förväntas kompenseras av selektiv filtrering på FerretDB-sidan av endast frågor för vilka det finns en beteendemässig divergens.

Till exempel kan frågan "db.collection.find({_id: 'some-id-value'})" bearbetas fullständigt i PostgreSQL. Huvudmålet med projektet i detta utvecklingsstadium är att uppnå kompatibilitet med MongoDB, och prestanda är fortfarande förpassad till bakgrunden.

Av funktionsförändringarna i den nya versionen finns det stöd för alla bitvisa operatorer, jämförelseoperatorn "$e" samt operatorerna "$elemMatch" och "$bitsAllClear".

Slutligen för dem som är intresserade av att veta mer om det, bör de veta att koden är skriven i Go och distribueras under Apache 2.0-licensen och du kan kontrollera dess kod i följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.