1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-06-07 19:22:02 +03:00

26 Commits

Author SHA1 Message Date
Leonid Fedorov
8d06822be5 atomic stop flag 2023-07-12 18:17:13 +03:00
Roman Nozdrin
4fe9cd64a3
Revert "No boost condition (#2822)" (#2828)
This reverts commit f916e64927cd81569327014f20c4cc0b8aca40ff.
2023-04-22 15:49:50 +03:00
Leonid Fedorov
f916e64927
No boost condition (#2822)
This patch replaces boost primitives with stdlib counterparts.
2023-04-22 00:42:45 +03:00
Leonid Fedorov
56f2346083 Remove windows ifdefs 2023-03-02 15:59:42 +00:00
Leonid Fedorov
04752ec546 clang format apply 2022-01-21 16:43:49 +00:00
Leonid Fedorov
01f3ceb437 replace header guards with #pragma once 2022-01-21 15:24:58 +00:00
Denis Khalikov
b382f681a1 [MCOL-4849] Parallelize the processing of the bytestream vector.
This patch changes the logic of the `receiveMultiPrimitiveMessages`
function in the following way:

1. We have only one aggregation thread which reads the data from Queue (which is populated
by messages from BPPs).
2. Processing of the received `bytestream vector` could be in parallel depends on the
type of `TupleBPS` operation (join, fe2, ...) and actual thread pool workload.

The motivation is to eliminate some amount of context switches.
2021-11-04 13:28:22 +03:00
Roman Nozdrin
6f9cc0a067 MCOL-4486 Removing deadlock implicitly introduced by the deprecated class boost::condition 2021-02-04 15:39:02 +00:00
Roman Nozdrin
e12a2acd53 MCOL-537 Regression test doesn't tolerate 'failed' in stderr, stdout.
I reformulate the messages.

    Changed version in preprocessor conditions to avoid compilation
    warnings in Debian 9.

    Disabled sign-compare check for generated files in DML/DDL.
2019-05-20 18:30:52 +03:00
Roman Nozdrin
3c89a4bba4 MCOL-537 Preprocessor if blocks with pragmas now have else branch.
DMLProc exits on setupCwd failure.
2019-05-09 20:25:21 +03:00
Roman Nozdrin
b2436502cb MCOL-537 Enabled -Wno-unused-result for OAM code.
Fixed pragmas that disables compilation checks.

    DDLProc now returns an error if it couldn't cwd.

    Use either auto_ptr or unique_ptr depending on GCC version.
2019-05-08 19:44:01 +03:00
Roman Nozdrin
9dc33c4e82 Another try to cope with warnings under gcc 8.2. 2019-04-29 11:05:03 +03:00
Patrick LeBlanc
cbbf267e88 MCOL-537, cleanup compiler warnings. Checkpointing a bunch of fixes.
Work in progress...
2019-04-29 10:56:48 +03:00
Andrew Hutchings
de19208ea9 MCOL-1810 Fix hang on low core count
Anything that links against joblist will spin up a threadpool upon
startup. This includes the tools setConfig/getConfig. It is possible on
a low core count machine or low CPU speed that the signal to the prune
thread to shutdown is sent before the thread has completed startup when
these quick-running tools are used.

This fix adds a mutex so that spin up and shutdown can't happen at the
same time as well as a stop watch in case we are shutting down when
either the thread is running or we haven't fully started.
2018-10-16 17:55:41 +01:00
Andrew Hutchings
f1f13a09d1 Merge branch 'develop-1.1' into 1.1-merge-up-2018-10-05 2018-10-05 18:40:07 +01:00
Andrew Hutchings
5092b4fd13 MCOL-1750 unique_ptr doesn't work in all OSes 2018-09-28 07:55:06 +01:00
Andrew Hutchings
94dfacfe25 MCOL-1750 Fix threadpool stack leaks
When a thread has been idle for 10 minutes and we have too many threads
in the threadpool the thread will be pruned. This is done by the
thread's main function just returning. Unfortunately this does not free
up the memory, the thread either needs to be joined or detatched.

We cannot use detached threads since there are mutexes and conditional
variables between the main thread and the threadpool threads. If the
main thread finishes before the threadpool threads (as would happen in
cpimport) then crashes occur. The parent needs to wait on the child
threads which is the whole point in joining.

So this fix spawns a new thread which every minute will check the list
of threads to be joined due to timeout and join them.

We have had to use an adapted version of boost::thread_group so that we
can join a single thread based off its thread ID.

In addition with have modified PriorityThreadPool to use detached
threads since this does not need to signal the child threads at the end.
2018-09-28 07:21:49 +01:00
Andrew Hutchings
01446d1e22 Reformat all code to coding standard 2017-10-26 17:18:17 +01:00
David Hall
def06be564 MCOL-513 Use vector ref for join to prevent vector copy. 2017-02-20 11:43:46 -06:00
David Hall
e09b7e10c5 MCOL-513 Threadpool to unlimited threads when queuesize = 0. Idle down after 10 minutes 2017-02-13 11:56:28 -06:00
David Hall
c2344accc9 MCOL-513 clean up and test thread pool for ExeMgr 2017-02-09 18:00:00 -06:00
David Hall
55d006de1a MCOL-513 use thread pool for jobsteps 2017-02-03 15:25:21 -06:00
David Hall
94b9d8aed2 MCOL-513 Optimize by replacing make_pair with a struct 2017-02-02 11:45:04 -06:00
David Hall
b6321935fb MCOL-513 fix a couple bugs in threadpool join() Add a test program 2017-02-02 11:32:56 -06:00
David Hall
c4742b8363 MCOL-513 Modify ThreadPool to have a join() method 2017-02-02 11:32:40 -06:00
david hill
f6afc42dd0 the begginning 2016-01-06 14:08:59 -06:00