[HN Gopher] MangoDB: An open-source MongoDB alternative
       ___________________________________________________________________
        
       MangoDB: An open-source MongoDB alternative
        
       Author : folex
       Score  : 154 points
       Date   : 2021-11-01 19:19 UTC (3 hours ago)
        
 (HTM) web link (www.mangodb.io)
 (TXT) w3m dump (www.mangodb.io)
        
       | d--b wrote:
       | Really they should call this "PongoDB", it's less similar than
       | mango and it's got a hint that this is backed by pg...
        
         | simondotau wrote:
         | Or MongresDB.
        
         | PeterZaitsev wrote:
         | Keep ideas coming I'm not sure MongoDB Lawyers will allow this
         | name to be used
        
           | blondin wrote:
           | really? they won't?
           | 
           | ah man, mangodb is a really awesome name. vastly better than
           | mongodb if you ask me.
        
             | PeterZaitsev wrote:
             | Yes. Mango is better than Mongo! could be project tagline
             | :)
        
         | yuchi wrote:
         | Unfortunately "pongo" is a commercial name of a product here in
         | Italy (similar to playdoh)
        
       | CactusOnFire wrote:
       | I don't trust developers who can't come up with a more creative,
       | less confusing name.
       | 
       | Like, you can at least name it after another variant of Mango to
       | make the name more interesting, or call it something similar but
       | with a little more variation (like MangroveDB)
        
         | Rochus wrote:
         | Still better than a name with which you have to explain to
         | everyone what it actually is supposed to mean and that it is
         | not meant as an insult (even if that is the first thing that
         | comes to everyone's mind).
        
           | [deleted]
        
           | michaelpb wrote:
           | GIMP?
           | 
           | If that's what you're referring to, then yup #1 worst-named
           | FOSS ever.
        
             | detaro wrote:
             | "Mongo" is a pretty bad slur for people with Down syndrome.
        
               | michaelpb wrote:
               | Oh wow, I had no idea! I've never heard of this. Thanks
               | for letting me know.
               | 
               | I only knew it as the name of "Planet Mongo", the main
               | planet in the Flash Gordon universe, an old science
               | fiction comic that has been rebooted many times (which
               | also had loads of extremely racist anti-Chinese elements)
        
               | rubyist5eva wrote:
               | I've never heard that, though I've heard the racist
               | "loid" version.
               | 
               | Though I do love the dictionary definition of "mongo":
               | 
               | "Items found in the trash that can be salvaged."
               | 
               | Sums up my views of mongodb pretty well, actually.
        
               | slantyyz wrote:
               | And the version of the slur you're talking about is a
               | pretty old one that I have not heard used in decades (of
               | course that may be regional, generational, etc.)
               | 
               | But like you, I have never heard "mongo" used in the same
               | pejorative context.
        
               | skinkestek wrote:
               | It is a very common slur among kids in Norway and
               | originally means someone who has the "mongoloid"
               | syndrome. These days it just means "you idiot" after "pro
               | choice" succeeded where Hitler "failed" and got rid of
               | most people with downs syndrome.
        
               | account-5 wrote:
               | Hilter was targeting people with downs syndrome? I
               | thought it was Jews and Russians.
        
             | [deleted]
        
             | [deleted]
        
             | voidfunc wrote:
             | I thought it was a jab at Cockroach DB
        
               | michaelpb wrote:
               | Could be that! Another terrible name hahah. Although in
               | their defense I get the "cockroach" analogy, while "gimp"
               | is just an offensive insult and/or a very NSFW BDSM term,
               | and has no other meaning, which makes conversations even
               | more awkward.
        
       | mindcrime wrote:
       | I'm still waiting for somebody to launch _MondoDB_ , hopefully
       | with the tagline "The Radical Database!"
       | 
       | And of course the query language for this database would be
       | GNARLY - Guided Natural Accurate Realtime Lookup Yahoo
       | 
       | The wire protocol should be SENDIT - Synthetic Electronic Node
       | Dialogue Interopability Transport
        
       | nhoughto wrote:
       | Recently went deeep on efficient kv storage in postgres, there is
       | an order of magnitude different in storage size between different
       | approaches (naive skinny table, EAV, array values, mapped generic
       | columns etc).
       | 
       | I wonder what approach this project takes, I'll have to poke
       | around!
        
         | nhoughto wrote:
         | Ah yeah it's probably jsonb (duh). That's not efficient, but
         | sometimes you don't care about that!
        
         | jitl wrote:
         | Can you share some more about your learnings? I'm familiar with
         | EAV as a concept but not the performance implications of EAV vs
         | jsonb. Googling "mapped generic columns" didn't turn up
         | anything that seemed relevant, and I'm curious what you mean
         | specifically by "array values" as a solution in this space.
        
       | [deleted]
        
       | rubyist5eva wrote:
       | This is f*cking awesome!
        
       | xiaodai wrote:
       | But isn't mongodb open source anyway?
        
         | CodesInChaos wrote:
         | Historically mongodb uses AGPL. A while ago they changed the
         | license to their own SSPL, which does not satisfy the OSI open
         | source nor the FSF free software definitions, in order to
         | prevent cloud providers from offering managed mongodb offerings
         | which would compete with mongodb atlas.
        
       | rubyn00bie wrote:
       | What's the primary use case for this? I'd imagine it's pretty
       | difficult to scale. How would it compare to something like FDB's
       | document layer (which supports most of Mongo's wire protocol)?
       | https://foundationdb.github.io/fdb-document-layer/known-diff...
        
       | ofrzeta wrote:
       | Would it be hard to support MySQL as well?
        
         | oofbey wrote:
         | Probably. IIRC postgresql has better support for looking inside
         | JSON documents than mysql does. Storing, searching,
         | manipulating JSON is what mongodb is all about.
        
         | PeterZaitsev wrote:
         | I would imagine the hardest thing is interpreting MongoDB
         | Protocol and converting to SQL - specific backend support like
         | MySQL or might be go straight to Vitess to support sharding
         | might be possible. Thought I think PostgreSQL is perfect
         | database to get started
        
       | mmdoda wrote:
       | Is MongoDB not open-source?
        
       | ofrzeta wrote:
       | That demo repo https://github.com/MangoDB-io/example is forked
       | from https://github.com/mariadb-corporation/dev-example-nosql-
       | lis... which "allows a MariaDB server or cluster to be used as
       | the backend of an application using a MongoDB client library".
       | 
       | So in other words the MangoDB project tries to port a MariaDB
       | NoSQL example app to PostgreSQL.
       | 
       | EDIT: seems I mis-interpreted the Github repo. The example is
       | indeed a fork of the MariaDB project but the underlying MangoDB
       | is not.
        
         | flushot wrote:
         | When I hear of "MangoDB", I remember this:
         | https://github.com/dcramer/mangodb
         | 
         | Funny how there's an actual project with the same name.
        
         | PeterZaitsev wrote:
         | MariaDB built fantastic simple MongoDB demo application which
         | MangoDB reused. MariaDB's "NoSQL Listener" is part of MaxScale
         | which is not Open Source.
        
       | chx wrote:
       | Let's make bets on how long it takes before the C&D hammer comes
       | down hard on them.
       | 
       | > Trademark infringement is the unauthorized use of a trademark
       | or service mark on or in connection with goods and/or services in
       | a manner that is _likely to cause confusion_ , deception, or
       | mistake about the source of the goods and/or services.
       | 
       | Emphasis mine, source https://www.uspto.gov/page/about-trademark-
       | infringement
       | 
       | https://trademarks.justia.com/860/49/mongodb-86049805.html
       | 
       | I wouldn't rule it out they will simply dispute the domain name
       | https://my.nic.io/legal/legal_dispute.html
       | 
       | > by using the domain name, you have intentionally attempted to
       | attract, for commercial gain, Internet users to your web site or
       | other online location, by creating a likelihood of confusion with
       | the complainant's mark
        
         | av8avenger wrote:
         | This was actually my first thought even before continuing
         | reading what they do.
         | 
         | I think they'll hear from lawyers sooner than later, if this
         | gathers more attention...
        
         | Aeolun wrote:
         | I doubt anyone will confuse Mango's and Mongo's. It's clearly
         | satire, even if it's a real project.
        
       | bchammer wrote:
       | also possible with Oracle
       | 
       | https://blogs.oracle.com/database/post/introducing-oracle-da...
        
       | chrischen wrote:
       | FoundationDB document layer works on the same way.
        
       | rectang wrote:
       | "MangoDB"? Clearly that's trademark infringement.
        
         | throwaway20371 wrote:
         | I guess not if they're based in Estonia?
        
           | threeseed wrote:
           | Estonia is a member country of the European Union which has
           | well established IP laws.
           | 
           | The chance of them being successfully sued for this is ~100%.
        
             | james_in_the_uk wrote:
             | I agree with your point, but (pedant mode on) a cease and
             | desist would be more likely in the first instance. You'd
             | only sue first in an exceptional case.
        
           | rectang wrote:
           | Whether or not legal redress is practical is a separate
           | question. But MangoDB is obviously creating "confusion in the
           | marketplace" and sponging off the goodwill created by
           | somebody else. That's not cool whether it's a commercial
           | entity abusing a FOSS trademark, or the other way around as
           | in this case.
        
             | evv wrote:
             | How many fruit-related names are available, anyways? There
             | would surely be a different lawsuit coming their way if
             | they named it AppleDB. (ok, I admit this is a terrible
             | joke)
             | 
             | If "Mango" can get away with it, I think it is very cool to
             | provide a graceful path to open source tech.
             | 
             | I don't have much pity for the $33B company that promotes
             | its mediocre semi-proprietary database to unsuspecting
             | devs/students who don't know better.
        
               | rectang wrote:
               | It is important to be consistent in the application of
               | the rules. Some of us made a stink about the "Commons
               | Clause" people abusing the ASF's trademark when they were
               | promoting "Apache License 2.0 with Commons Clause" for
               | something incompatible with the Apache License. It would
               | be hypocritical to apply trademark rules for that but not
               | in the case of "MangoDB".
        
               | evv wrote:
               | Fundamentally I do agree with you. (especially with the
               | mention of "Apache License 2.0 with Commons Clause",
               | which was giving me a headache this morning)
               | 
               | But also I'm not lifting a finger to help companies like
               | MongoDB, unless properly compensated.
               | 
               | Personally I hope that MongoDB does go for a trademark
               | lawsuit, triggering the Streisand Effect. Then Mango can
               | find a better name and attract attention.
        
             | tssva wrote:
             | "and sponging off the goodwill created by somebody else."
             | 
             | Aren't they sponging off the ill will created by somebody
             | else?
        
       | gizdan wrote:
       | And the other day there was a project that allowed to use MS SQL
       | wire protocol on PostgreSQL, so my question is:
       | 
       | Are we just gonna implement everything on top of PostreSQL?
        
         | iKnowKungFoo wrote:
         | It's PostreSQL all the way down.
        
           | ofrzeta wrote:
           | Apart from the fact that this project is a spin-off of a
           | MariaDB NoSQL example app.
           | 
           | EDIT: I was wrong about this.
        
             | aleksi wrote:
             | I think you confuse an example with the proxy itself:
             | https://github.com/MangoDB-io/MangoDB
        
               | ofrzeta wrote:
               | Oh, I see, you are right. Misunderstanding on my part.
        
         | _jal wrote:
         | Anxiously awaiting the first FPS engine built out of sprocs and
         | views.
        
         | rubyist5eva wrote:
         | yes
        
         | toomuchtodo wrote:
         | Solid, boring tech as foundations for abstractions is a logical
         | approach to system architecture.
        
         | handrous wrote:
         | > Are we just gonna implement everything on top of PostreSQL?
         | 
         | On top of PostgreSQL? Which project keeps incorporating other
         | database paradigms at a good clip, and includes a Foreign Data
         | Wrapper feature?
         | 
         | Yeah, looks like it.
        
           | munk-a wrote:
           | It makes me quite happy. I love working in Postgres' dialect
           | and would happily port applications from other dialects to
           | postgres chunk by chunk as stuff broke.
        
         | brian_herman wrote:
         | Yes, PostreSQL is like the javascript of databases.
        
           | mrweasel wrote:
           | Expect without all the data type issues and Postgresql having
           | a sane design, Postgresql be a pleasure to use and having the
           | courtesy of staying out of my browser.... Please don't tell
           | me that someone compiled Postgresql to WASM.
        
             | tkzed49 wrote:
             | you might want to sit down for this one, but we're pretty
             | close (sqlite):
             | 
             | https://jlongster.com/future-sql-web
        
             | munk-a wrote:
             | > Please don't tell me that someone compiled Postgresql to
             | WASM.
             | 
             | I don't believe that nobody has ever done this... And
             | google delivers: https://github.com/wasmerio/wasmer-
             | postgres
        
               | gnfargbl wrote:
               | Unfortunately, that is WASM on postgres, not postgres on
               | WASM: https://medium.com/wasmer/announcing-the-first-
               | postgres-exte...
        
       | [deleted]
        
       | visualphoenix wrote:
       | Reminds me of other abandon things I've seen in this space before
       | over the years like torodb[0] and pgmongo[1].
       | 
       | Peeking at this implementation, it seems very immature. There is
       | a long road ahead. Good luck!
       | 
       | I always suspected this space never matured because the effort to
       | rewrite a mongo app to use postgres was less than providing a
       | drop in mongo translation layer.
       | 
       | Though I've never used mongo, I've always presupposed the set of
       | people who pick mongo is a mutually exclusive from the set of
       | people that pick Postgres. Perhaps this is proof of set
       | intersection?
       | 
       | [0] https://github.com/torodb/server
       | 
       | [1] https://github.com/thomas4019/pgmongo
        
       | joshhart wrote:
       | Nobody remembers the MangoDB spoof where they made fun of mongodb
       | reliability by writing to /dev/null ?
       | https://github.com/dcramer/mangodb
       | 
       | If this project is real they chose the worst name possible.
        
       | throwaway20371 wrote:
       | "MangoDB is a proxy which uses PostgreSQL as a backend. The proxy
       | translates MongoDB wire protocol commands into SQL queries, and
       | use PostgreSQL as storage."
       | 
       | You don't have to support MongoDB, but you can support apps that
       | were only written with Mongo as backend? That's _awesome_. I can
       | 't imagine it's production-ready yet but it's a great idea.
        
         | taf2 wrote:
         | Didn't the stripe team do something like this 5 or 10 years
         | ago? I seem to remember them having a translation layer or
         | doing some sort of streaming conversion from mongodb to pg?
         | 
         | Ah yes - https://github.com/stripe-archive/mosql
         | 
         | 6 years ago
        
           | PeterZaitsev wrote:
           | Does not look like the same thing - this looks like system to
           | replicate from MongoDB rather than being able to talk to
           | PostgreSQL as if it were MongoDB
        
         | christkv wrote:
         | There was another thing in that space aswell
         | https://www.torodb.com
        
         | michaelpb wrote:
         | Yeah, I could imagine this being a useful step to migrate away
         | from MongoDB. I suspect there are plenty of "resume-driven
         | development" MongoDB installations out there that could use
         | something like this.
        
           | threeseed wrote:
           | MongoDB is a 12 year old database. And yet people are still
           | using this disparaging argument that anyone that chooses it
           | is doing so for their resume and not because it meets their
           | needs in any way.
           | 
           | But by all means replace your production system with MangoDB
           | which is unsupported, significantly slower, has no built-in
           | HA/clustering and written in Go which is a GC language.
        
             | PeterZaitsev wrote:
             | Note MangoDB is a stateless proxy as such you can use it
             | with any PostgreSQL setup. For example you should be able
             | to use it with Amazon Aurora PostgreSQL as backend which
             | has HA built in
        
               | threeseed wrote:
               | If you are using the cloud then you can just use
               | DocumentDB.
        
               | PeterZaitsev wrote:
               | It depends. With MangoDB you can test on your laptop with
               | PostgreSQL and deploy to Production to Aurora... or any
               | other PostgreSQL compatible DBaaS.
        
               | kevinsundar wrote:
               | But then you have to use DocumentDB.
        
               | kdasme wrote:
               | Which is the same proxy on top of PostgreSQL if I
               | remember correctly. :) But MangoDB is cloud-agnostic. I
               | imagine it has the same limitations as DocumentDB or
               | more.
        
             | dang wrote:
             | Would you please not post in the flamewar style to HN? You
             | have a long history of doing this, and I have the
             | impression that it got better in the last few years (yay!
             | thanks), but I also have the impression that you've been
             | relapsing recently (boo, please don't). You can make your
             | substantive points respectfully and without snark, and we'd
             | be very grateful if you'd stick to that.
             | 
             | https://news.ycombinator.com/newsguidelines.html
        
             | [deleted]
        
             | michaelpb wrote:
             | Hm, well, I never said that ANYONE who uses MongoDB is
             | guilty of resume driven development. I specifically only
             | indicated the ones that WERE chosen via resume driven
             | development. Unless you were replying to the wrong comment?
        
               | threeseed wrote:
               | No I am replying to the right comment.
               | 
               | I think it's disparaging to use the term resume driven
               | development as though there is a large class of
               | developers who are actively trying to harm projects by
               | selecting inappropriate technologies.
               | 
               | I've worked with thousands of developers over the last
               | 20+ years and never seen anyone do this.
        
               | mapcars wrote:
               | Since you haven't seen it means it doesn't happen? Sad
               | that 20+ years didn't teach you basics of logic.
        
               | ryanianian wrote:
               | From the HN guidelines:
               | 
               | > Be kind. Don't be snarky. Have curious conversation;
               | don't cross-examine. Please don't fulminate. Please don't
               | sneer, including at the rest of the community.
        
               | marginalia_nu wrote:
               | Allow me to doubt that you have deep insight into the
               | motivations of thousands of people that have all selected
               | MongoDB for their projects. This seems unlikely for
               | several reasons, if nothing else because of Dunbar's
               | number.
        
               | threeseed wrote:
               | I don't need to have deep insights. Developers almost
               | always have to justify why they pick certain
               | technologies.
               | 
               | And given how old MongoDB is not sure how it benefits
               | anyone's resume.
        
               | halostatue wrote:
               | There are thousands of projects where MongoDB was
               | selected precisely because it was a new-shiny No SQL
               | thingy.
               | 
               | For some of these things, it may have been the right
               | thing. For most of them, it was a chance to play with new
               | technologies. I have seen multiple commercial projects
               | where MongoDB was chosen by the developers with _no_
               | oversight by management (I have killed a couple of those
               | projects, too, because MongoDB was always the wrong
               | technology).
               | 
               | The original comment about the number of projects where
               | MongoDB was chosen under resume-driven-development is
               | absolutely correct. That doesn't make it _bad_; how
               | _else_ is one supposed to get experience with new
               | technologies than to try something new? (Sticking with
               | Mongo after multiple data-loss incidents due to the
               | "architecture" of Mongo, on the other hand...)
        
               | marginalia_nu wrote:
               | If you don't understand their motivations, how can you
               | claim to know their motivations?
        
               | michaelpb wrote:
               | Huh, so if we are trotting out experience credentials, I
               | have also worked with thousands of developers (I guess?)
               | over the last ~20 years as well. My first programming
               | language was Apple BASIC on an Apple II, and I haven't
               | stopped learning since!
               | 
               | I think we use this term differently, perhaps? This term
               | is not intended to be an attack, but rather just an
               | acknowledgment of a common type of technical debt that
               | results from people getting influenced by marketing teams
               | and choosing tech based on how "trendy" it seems.
               | Sometimes this might be done explicitly since they are
               | intending to jump ship anyway... I've had conversations
               | at the bar out of earshot of "the suits" where this exact
               | topic was discussed! Most of the time it's not
               | intentional or explicit, but just novice engineers
               | directed by poor management to greenfield apps, and then
               | falling for marketing claims and choosing based on how
               | "trendy" the marketing claims it is vs real, observed
               | needs. MongoDB is still getting taught at many bootcamps
               | and coding curriculums as an "SQL, but better for
               | beginners since you don't need that annoying schema
               | thing!"
        
               | matttb wrote:
               | I've worked with tens of developers over 8 years and I've
               | seen this many times.
               | 
               | I don't think they're 'actively trying to harm projects',
               | but the person you're responding to never implied that in
               | any way.
        
               | michaelpb wrote:
               | Yeah, I think the person we are replying to is taking
               | this a lot more negatively than I intended. I always sort
               | of thought it was kind of an "open secret" that this
               | stuff went on, at least here in SV / Bay Area. Perhaps
               | elsewhere, where engineers don't hop around jobs every
               | year or two, this sounds more like an insult or
               | accusation?
        
             | pulse7 wrote:
             | "and written in Go which is a GC language" => Would it be
             | better for you if it would be "written in JavaScript which
             | is a GC language"?
        
             | zitterbewegung wrote:
             | I agree either stay with mongodb or if you really want to
             | migrate then just switch to Postgres by obviously exporting
             | the data and putting it into Postgres
        
           | vosper wrote:
           | > Yeah, I could imagine this being a useful step to migrate
           | away from MongoDB.
           | 
           | What is the state of the art in this area? I did a little PoC
           | of moving data from Mongo to a new schema in Postgres with
           | Hexo and DBT. It worked nicely, but it was only a PoC.
        
       | hackandtrip wrote:
       | Any performance benchmark? I know it is hard to compare, but I do
       | wonder if it is actually already faster than MongoDB.
        
         | threeseed wrote:
         | Highly doubt it.
         | 
         | a) MongoDB was the fastest database I had ever tried for many
         | types of use cases e.g. tuple updates and in general
         | significantly faster than
         | 
         | b) This is a Go layer in front of PostgreSQL which is fast but
         | not faster than a native C socket server.
        
         | slaymaker1907 wrote:
         | I'm not sure it's really an apples to apples comparison. The
         | big selling point of MongoDB is that it sort of just works out
         | of the box with horizontal scaling while Postgres is much more
         | immature in that area.
         | 
         | You could try running https://github.com/mongodb-labs/py-tpcc
         | to get an estimate. However, that might not reflect how people
         | actually use MongoDB since TPCC is focused on transactions as
         | opposed to analytics.
        
           | PeterZaitsev wrote:
           | Note though you have Aurora PostgreSQL as well as CockroachDB
           | and Yugabyte which speak PostgreSQL and may be able to
           | support MangoDB
        
           | james_in_the_uk wrote:
           | It's not an apples to apples comparison it's a mangoes to
           | mongos one :)
        
       | slaymaker1907 wrote:
       | Hopefully with better durability than
       | https://github.com/dcramer/mangodb
        
         | ShinTakuya wrote:
         | I immediately thought of this when I saw the title. Unfortunate
         | name clash here.
        
           | Stevvo wrote:
           | What makes you think it's an "unfortunate name clash", rather
           | than taking inspiration from the joke?
        
         | philovivero wrote:
         | If it also supports auto-sharting, then I think it'll do fine.
        
           | pfraze wrote:
           | I think and hope you meant sharding
        
             | wpnbos wrote:
             | check out the repo your parent comment linked
        
       ___________________________________________________________________
       (page generated 2021-11-01 23:00 UTC)