Re: Speed and OpenZFS 2.0
This is donating, it may have involved relicensing but that is a separate matter.
Let me give an example. When SUN open sourced their ZFS implementation in 2005 it was at that point the only ZFS implementation around. All other versions, the open source Illumos implementation, the closed source Oracle implementation, the macOS version that Apple briefly shipped on their install DVDs, the Nexenta implementation, the ZFS-on-Linux implementation etc. were all forked from the original code dating back to 2005 and therefore did not include support for TRIM. SSDs were not really a thing in the early 2000’s.
This meant that every implementation had to develop their own TRIM implementation (Illumos, Nexenta, perhaps Oracle too) or simply not support TRIM (ZFS-on-Linux).
Out of the various implementations of TRIM for ZFS, the one from Nexenta was by far the superior as it supported queueing. This means that the Queued TRIM command can be queued to run after all scheduled (arguably more important) read and write operations have been completed. Especially on high concurrent use storage systems that is a big deal.
Nexenta has donated their implementation to the OpenZFS project and queued TRIM is now part of OpenZFS 2.0. The code was probably previously closed source and has been relicensed under the open source CDDL license so it could be included in OpenZFS. It is referred to as a “donation” so I assume that the OpenZFS team did not have to pay Nexenta for their code. What I don’t know is if the copyright still rests with Nexenta or whether that has been transferred to OpenZFS too.
That is queued TRIM, just one example, but the development of Sequential Resilvering, dRAID, Zstd compression, Persistent L2ARC, Dataset Encryption, Fusion Pools and Allocation Classes has largely followed a similar path. Either developed straight under an open source CDDL license (so no relicensing required) or donated by companies and relicensed under the CDDL so it could be included in OpenZFS 2.0.
None of this has anything to do with Oracle, they didn’t own the copyright to the specific Nexenta, Delphix, Intel, Datto, iXsystems or Illumos code or were involved in setting the license for the code. The only copyright they bought eleven years was on the original SUN code. As that was forked fifteen years ago, before Oracle even considered buying SUN, the majority of the current code in OpenZFS is no longer based on the old code produced by SUN as development moves on. None of the features I mentioned above existed in 2005.