7 ms·
You're misunderstanding ZFS' persistent data structure. It's the whole point that it's not doing a copy then modifying something. Also no one claims there's on
by kephasp 4y ago
You're misunderstanding ZFS' persistent data structure. It's the whole point that it's not doing a copy then modifying something.
Also no one claims there's one immutable data structure that's faster than all mutable data structures. That's a ridiculous strawman argument.
- adwn 4y ago> You're misunderstanding ZFS' persistent data structure. It's the whole point that it's not doing a copy then modifying something. I'm talking about the internal implementation of those data structures, not about their API. Neither C nor C++ have built-in immutable data structures, so those persistent data structures with their immutable API are implemented using mutable C structs or C++ classes. > Also no one claims there's one immutable data structure that's faster than all mutable data structures. That's a ridiculous strawman argument. No, you're misunderstanding what I said: For any given abstract functionality or interface (like a key->value map, or a graph composed of vertices and edges), there exists a mutable data structure which is at least as fast as all immutable data structures that provide the same interface. That's because the set of mutable data structures is a strict superset of (i.e., contains all) the set of immutable data structures.
- kephasp 4y ago> Neither C nor C++ have built-in immutable data structures First of all, yes they do, you can use const on structs and objects and methods to ensure your C/C++ data structure is immutable. But this is moot anyway: > so those persistent data structures with their immutable API are implemented using mutable C structs or C++ classes ZFS isn't something that's in memory, it's a file system… It's a data structure on disk, it's language-agnostic. > That's because the set of mutable data structures is a strict superset of (i.e., contains all) the set of immutable data structures. In theory, that's true. It's just a useless fact. We use immutable data structures because they have benefits. Using the same data structure without immutability may just render it worse as a software tool. So people don't use immutable data structures with the immutability removed. Immutable data structures are shaped by trade-offs like any other design.