Markus Dreseler
Markus Dreseler
Do you have any numbers on this? I expect this to only be significant if we call a virtual method on a class where we already knew the type. Also,...
If we go around tagging methods to see how it affects performance, should we hand out a couple of `nothrow`s as well? While we do throw exceptions, we almost never...
Quite relevant: https://quuxplusone.github.io/blog/2021/02/15/devirtualization/
If this also occurs in debug builds, you could try to attach gdb to the stuck server and obtain a backtrace. That might help in narrowing it down. Generally, however,...
Is there only one thread responsible for a given table or are there multiple? In any case, a stack trace would be helpful.
We should not expect whoever starts the tasks to correctly account for their costs. How about `CurrentScheduler::wait_for_tasks(std::vector tasks, PerformanceData& cost_center)`? In an operator, it could be called as `CurrentScheduler::wait_for_tasks(tasks, performance_data());`...
The server profits immensely from being run on a single NUMA node. We should consider pinning either the server's main process or all sessions on a single node. Benchmark: ```...
Good point. I added some more numbers above. Interestingly which NUMA node is used does make a difference and 0 is particularly *bad*. Note that these are loopback benchmarks. When...
For one run, these rows show up in our result but not in sqlite (which has no NULLs): ``` id a b c id a b c int int int...
This never worked: bisect.sh: ``` git submodule update echo 'SELECT * FROM id_int_int_int_100 AS t1 LEFT JOIN id_int_int_int_100 AS t2 ON t1.a >= t2.a AND t1.b >= t2.b AND t1.c...