[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)
 
web link (www.mangodb.io)
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)