MangoDB on modernisoitu ja muuttuu nyt FerretDB:ksi

äskettäins päivinä uutisoitiin projektin käynnistämisestä FerretDB, (aiemmin MangoDB), jonka avulla voit korvata MongoDB:n dokumenttipohjaisen DBMS:n PostgreSQL:llä tekemättä muutoksia sovelluskoodiisi.

FerretDB on toteutettu välityspalvelimena, joka kääntää kutsut MongoDB:lle SQL-kyselyiksi PostgreSQL:ksi, jolloin voit käyttää PostgreSQL:ää varsinaisena tallennustilana.

FerretDB (entinen MangoDB) perustettiin MongoDB:n de facto avoimen lähdekoodin korvaajaksi. FerretDB on avoimen lähdekoodin välityspalvelin, joka muuntaa MongoDB Wire Protocol -kyselyt SQL:ksi käyttämällä PostgreSQL:ää tietokantamoottorina.

Siirrontarve voi syntyä MongoDB:n siirtyessä ei-vapaaseen SSPL-lisenssiin, joka perustuu AGPLv3-lisenssiin, mutta ei ole avoimen lähdekoodin, koska se sisältää syrjivän vaatimuksen tarjota SSPL-lisenssin alaisena paitsi sovelluksen. itse koodista, mutta myös kaikkien pilvipalvelun tarjoamiseen liittyvien komponenttien lähdekoodit.

FerretDB:n kohdeyleisö on käyttäjät, jotka eivät käytä MongoDB:n edistyneitä ominaisuuksia sovelluksissaan, mutta haluavat käyttää täysin avointa ohjelmistopinoa.

Nykyisessä kehitysvaiheessa FerretDB se tukee edelleen vain osaa MongoDB:n ominaisuuksista joita käytetään useimmiten tyypillisissä sovelluksissa. Tulevaisuudessa he aikovat saavuttaa täyden ajurituen MongoDB:lle ja tarjota mahdollisuuden käyttää FerretDB:tä läpinäkyvänä MongoDB:n korvaajana.

On muistettava, että MongoDB:llä on markkinarako nopeiden ja skaalautuvien järjestelmien joukossa jotka käyttävät tietoja avain/arvo-muodossa, ja relaatiotietokantajärjestelmä, jotka ovat toimivia ja käteviä kyselyjen luomisessa.

Useimmat MongoDB-käyttäjät eivät tarvitse monia MongoDB:n tarjoamia edistyneitä ominaisuuksia. He tarvitsevat kuitenkin helppokäyttöisen avoimen lähdekoodin tietokantaratkaisun. Huomattuaan tämän FerretDB on täällä täyttämässä tämän aukon.

MongoDB tukee asiakirjojen tallentamista JSON-tyyppisessä muodossa, jolla on melko joustava kieli kyselyjen luomiseen, se voi luoda indeksejä erilaisille tallennetuille attribuuteille, tarjoaa tehokkaan binaarisen suuren objektin tallennustilan, tukee toimintojen kirjaamista tietojen muuttamiseksi ja lisäämiseksi tietokantaan, se voi toimia Map/Reduce -paradigman mukaisesti, se tukee replikointia ja vikasietoisten konfiguraatioiden rakentamista.

FerretDB 0.1.0:n julkaisussa todetaan, että Suunniteltu kokonaan uudelleen tapa, jolla PostgreSQL-tiedot noudetaan. Aiemmin jokaiselle saapuvalle MongoDB-pyynnölle luotiin SQL-PostgreSQL-kysely, joka käytti toimintoja JSON-muodon kanssa työskentelemiseen ja suodatti tulokset PostgreSQL-puolella.

Erojen takia PostgreSQL- ja MongoDB json -funktioiden semantiikassa, oli ristiriita käyttäytymisessä verrattaessa ja tilattaessa eri tyyppejä. Tämän ongelman ratkaisemiseksi on nyt poimittu näyte redundantista tiedosta PostgreSQL:stä ja tuloksen suodatus tehdään FerretDB-puolella, mikä mahdollisti MongoDB:n toiminnan toistamisen useimmissa tilanteissa.

Lisääntyneen yhteensopivuuden hinta oli suoritussakko, jonka odotetaan tulevissa julkaisuissa kompensoivan valikoivalla suodatuksella FerretDB-puolella vain sellaisille kyselyille, joiden käyttäytymisessä on eroja.

Esimerkiksi kysely "db.collection.find({_id: 'some-id-value'})" voidaan käsitellä kokonaan PostgreSQL:ssä. Projektin päätavoite tässä kehitysvaiheessa on yhteensopivuuden saavuttaminen MongoDB:n kanssa, ja suorituskyky jää edelleen taka-alalle.

Uuden version toiminnallisista muutoksista tuetaan kaikkia bittikohtaisia ​​operaattoreita, vertailuoperaattori "$e" sekä operaattorit "$elemMatch" ja "$bitsAllClear".

Vihdoin niille, jotka ovat kiinnostuneita tietämään siitä lisää, heidän pitäisi tietää, että koodi on kirjoitettu Go-kielellä ja sitä jaetaan Apache 2.0 -lisenssillä ja voit tarkistaa sen koodin seuraavasta linkistä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.