4 ms·
My general take is that while the idea of composability is good, the implementations of these things are just frankly not of high quality. Velox/Acero in partic
by sakras 3y ago
My general take is that while the idea of composability is good, the implementations of these things are just frankly not of high quality. Velox/Acero in particular are all plagued by what I've come to call "Java syndrome", where everything is written as idiomatic Java but with C++ syntax. Virtual methods, std::shared_ptr galore (in lieu of garbage collection), random heap allocations, etc. As a result these systems tend to be bloated and significantly slower than they need to be.
DuckDB is good though, and I predict its quality of implementation will keep "monolithic databases" relevant for a while longer.
- pjmlp 3y agoBasically 1990's C++ before Java was invented, as proven in any C++ GUI framework that has survived to our days. I really take issue with people calling "Java code" to what used to be quite common C++ code from CFront 2.0 until C++11 came to be. Java is the outcome of C++'s programing practices before 1996, with a flavour of Objective-C semantics on top. To pretend those communities aren't responsible for those practices in first place is not being honest where they came from.
- rfoo 3y agoAcero is indeed plagued by "Java syndrome". However honestly Velox looks better, it's not as good as ClickHouse but working on it does not leave a "bruh Apache Arrow bruh shared_ptr everywhere bruh" bad taste in my mouth. And it does not use Apache Arrow C++, it implemented its own with Arrow compatible memory layout.
- yencabulator 3y ago> DuckDB is good though, and I predict its quality of implementation DuckDB has segfaulted a lot for me. That just simply bodes horribly poorly on the future of a C++ codebase. Datafusion has been a pretty pleasant experience.