Comment by tgv
4 hours ago
Not only is it a mongodb interface on postgresql, it's built by Microsoft, and has joined the Linux foundation? Color me surprised. Did they build this for fun or what?
4 hours ago
Not only is it a mongodb interface on postgresql, it's built by Microsoft, and has joined the Linux foundation? Color me surprised. Did they build this for fun or what?
Microsoft built this so they can have a MongoDB compatible database service for Azure.
A few years back MongoDB changed their license to AGPL to make it harder for companies to take their code and offer it as a service. They did this because it competes with the MongoDB Atlas service.
Beyond other reason listed in the comments, Microsoft is heavily invested in Postgres. They bought Postgres sharding company (https://www.citusdata.com) and apparently it sees a ton of use internally even for newer Greenfield projects. Also, if check recent commits to Postgres, you will find Microsoft employees all over commit history.
As I've commented several times before, MSSQL appears to be on life support. It makes them a ton of money and it's supported in same way AS/400 is supported. Sure, Microsoft will take your money but don't expect a lot in return.
As someone who spent over half a decade using MS SQL Server daily, I have to admit it's a very nice database, and better than Postgres for some use cases. This could be interesting!
Postgres made the foundational design decision that every update is an insert leaving behind a stale row that'll get cleaned up eventually with its MVCC model. It's great for non-blocking read-heavy workflows (presumably the most common), but it suffers for the inverse.
For example, I wrote a simple job queue in Postgres, which had a lot of contention over the oldest rows non-terminal rows. It had many runners trying to either mark a row as completed or claim a row by atomically marking it as started and returning the row's contents (using the "skip locked" functionality). This ran much faster using similar semantics on MS SQL Server or MySQL because they have in-place updates, not an append-only tuple log.