[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)