1. We changed the source code too much that we are not able to merge it back to RocksDB easily (This project started at 2016 as an close-source project) 2. We have different road path with RocksDB (e.g. We will remove a lot of un-used code to make TerarkDB much more light-weight than current version in the future) 3. We have lots of third-party partners (e.g. Intel, on Opatane SSD/Memory and others with ZNS...) may participant in this project so we want to handle all commits ourself to make sure everything is under control.
EDIT: Detrimental to the original. Eg. Amazon forking and selling MongoDB.
Please someone feel free to correct me, but if I recall correctly a lot of the improvements in Vim 8 were a result of the popularity of functionality in NeoVim?
Second, even if you do the first, the whole thing gets screwed up again when you start trying to introduce vendor code into the mix. Generally, no one upstream gives a crap that you have super compelling business reasons to compromise on code quality (or even trivial things like how code is committed: tarballs vs good git hygiene), and vendors sometimes compromise a lot.
So it’s not surprising that sometimes groups choose to do the expedient thing to get something to market instead of doing things “the right way.” In a lot of respects, the original Android did this with Linux.
Competition is good.
Android vendors keep doing this over and over again with Linux, which explains why so many phones are stuck on old versions of Android.
Are they giving back the source? And letting Mongo merge their changes if they wish?
Because that's what open source is all about.
There are much more egregious and fundamentally different violations to open source namely those you mention in your comment.
The comparison figures presented looked really impressive, thanks for sharing it.
So RocksDB came from LevelDB and here we go again.