On the incompleteness of C: Postgres is a database, but also a runtime (fully custom memory management infrastructure), a standard library (custom string builder, linked list, hash map, sorting, ...), and even language (custom longjmp-based try/catch/raise mechanisms).
-
-
Replying to @brandur
Part of that is due to C's incompleteness, yes. But a lot of that would be self implemented when implementing a mature database in just about any language.
1 reply 1 retweet 6 likes -
Replying to @AndresFreundTec @brandur
(But other languages would make that far less cumbersome)
1 reply 0 retweets 3 likes -
Replying to @AndresFreundTec
True! With or without C, I suppose there’s some implicit wisdom that any sufficiently complex system will accumulate enough custom/complex requirements that it should expect to reimplement/significantly augment large parts of its substrate.
1 reply 0 retweets 3 likes -
Replying to @brandur
Right. Databases in particular have special enough needs that generic code often isn't a great fit.
1 reply 0 retweets 2 likes -
Replying to @AndresFreundTec @brandur
E.g. while there's parts of PG that'd benefit from a GC, it'd be a bad idea to rely on it for the majority of a query's memory. Having many gigabytes of memory that need to be GCed will lead to pauses, especially when consisting out of many small allocations.
2 replies 0 retweets 4 likes -
Replying to @AndresFreundTec @brandur
Does CockroachDB use GC for the query memory but manual allocation via RocksDB for the storage backend? I read a few of their articles on the Go GC.
1 reply 0 retweets 1 like
I don't know Cockroach well enough to answer, sorry. Suspect that problem isn't as big for them because they're not really targeting analytics workloads. Therefore queries don't need much memory, and "request based" GCs are reasonable. OTOH oltp is more latency sensitive.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.