MangoDB is gemoderniseerd en verandert nu in FerretDB

onlangss dagen werd het nieuws van de lancering van het project aangekondigd FerretDB, (voorheen MangoDB), waarmee u MongoDB's documentgeoriënteerde DBMS kunt vervangen door PostgreSQL zonder wijzigingen aan te brengen in uw toepassingscode.

FerretDB is geïmplementeerd als een proxyserver die aanroepen naar MongoDB vertaalt in SQL-query's naar PostgreSQL, zodat u PostgreSQL als de daadwerkelijke opslag kunt gebruiken.

FerretDB (voorheen MangoDB) werd opgericht om de de facto open source vervanging voor MongoDB te worden. FerretDB is een open source-proxy die MongoDB wire-protocolquery's naar SQL converteert, met behulp van PostgreSQL als database-engine.

De noodzaak van migratie kan ontstaan ​​als gevolg van de overgang van MongoDB naar een niet-vrije SSPL-licentie, die is gebaseerd op de AGPLv3-licentie, maar niet open source is, omdat het een discriminerende vereiste bevat om onder de SSPL-licentie niet alleen de applicatie te verstrekken van de code zelf, maar ook van de broncodes van alle componenten die betrokken zijn bij het leveren van de clouddienst.

De doelgroep voor FerretDB zijn gebruikers die geen gebruik maken van de geavanceerde functies van MongoDB in hun toepassingen, maar een volledig open softwarestack willen gebruiken.

In de huidige fase van ontwikkeling, FerretDB ondersteunt nog steeds slechts een deel van de MongoDB-functies meest gebruikt in typische toepassingen. In de toekomst zijn ze van plan om volledige driverondersteuning voor MongoDB te krijgen en de mogelijkheid te bieden om FerretDB te gebruiken als een transparante vervanging voor MongoDB.

Er moet aan worden herinnerd dat MongoDB bezet een niche tussen snelle en schaalbare systemen die werken op gegevens in sleutel/waarde-indeling en relationele DBMS, functioneel en handig bij het genereren van query's.

De meeste MongoDB-gebruikers hebben niet veel van de geavanceerde functies nodig die MongoDB biedt; ze hebben echter een gebruiksvriendelijke open source database-oplossing nodig. FerretDB erkent dit en is hier om die leemte op te vullen.

MongoDB ondersteunt het opslaan van documenten in een JSON-achtig formaat, heeft een redelijk flexibele taal voor het genereren van zoekopdrachten, kan indexen maken voor verschillende opgeslagen attributen, biedt efficiënte binaire opslag van grote objecten, ondersteuning van het loggen van bewerkingen om gegevens te wijzigen en toe te voegen naar de database, het kan werken volgens het Map/Reduce-paradigma, het ondersteunt replicatie en de constructie van fouttolerante configuraties.

In de release van FerretDB 0.1.0 wordt opgemerkt dat: de manier waarop PostgreSQL-gegevens worden opgehaald volledig opnieuw ontworpen. Voorheen werd voor elk binnenkomend MongoDB-verzoek een SQL naar PostgreSQL-query gegenereerd, waarbij functies werden gebruikt om met het JSON-formaat te werken en de resultaten aan de PostgreSQL-kant werden gefilterd.

Vanwege de verschillen in de semantiek van PostgreSQL- en MongoDB json-functies, er was een discrepantie in gedrag bij het vergelijken en bestellen van verschillende soorten. Om dit probleem op te lossen, wordt nu een steekproef van redundante gegevens uit PostgreSQL gehaald en wordt het resultaat gefilterd aan de FerretDB-kant, waardoor het mogelijk werd om het gedrag van MongoDB in de meeste situaties te herhalen.

De prijs van verhoogde compatibiliteit was een prestatiestraf, die in toekomstige releases naar verwachting zal worden gecompenseerd door selectieve filtering aan de FerretDB-kant van alleen zoekopdrachten waarvoor er een gedragsverschil is.

De query "db.collection.find({_id: 'some-id-value'})" kan bijvoorbeeld volledig worden verwerkt in PostgreSQL. Het belangrijkste doel van het project in dit ontwikkelingsstadium is om compatibiliteit met MongoDB te bereiken, en prestaties zijn nog steeds naar de achtergrond verbannen.

Van de functionele veranderingen in de nieuwe versie is er ondersteuning voor alle bitsgewijze operators, de "$e" vergelijkingsoperator, evenals de "$elemMatch" en "$bitsAllClear" operators.

Eindelijk voor diegenen die er meer over willen weten, moeten ze weten dat de code is geschreven in Go en wordt gedistribueerd onder de Apache 2.0-licentie en u kunt de code ervan controleren in de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.