1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

This patch disables FairThreadPool to double check if this feature contributes to multiple strange side-effects and ocassional failed MTR tests

This commit is contained in:
Roman Nozdrin
2022-07-20 11:17:19 +00:00
parent 01f8f7066a
commit b78cbffa93
12 changed files with 76 additions and 252 deletions

View File

@ -4,7 +4,7 @@ include_directories( ${ENGINE_COMMON_INCLUDES} )
########### next target ###############
set(threadpool_LIB_SRCS weightedthreadpool.cpp threadpool.cpp prioritythreadpool.cpp fair_threadpool.cpp)
set(threadpool_LIB_SRCS weightedthreadpool.cpp threadpool.cpp prioritythreadpool.cpp)
add_library(threadpool SHARED ${threadpool_LIB_SRCS})
add_dependencies(threadpool loggingcpp)
target_link_libraries(threadpool Boost::chrono)

View File

@ -52,19 +52,33 @@ class PriorityThreadPool
// this thread pool to reschedule the job, 0 will throw it away on return.
virtual int operator()() = 0;
};
using TransactionIdxT = uint32_t;
struct Job
{
Job() : weight(1), priority(0), id(0)
{
}
Job(const uint32_t uniqueID, const uint32_t stepID, const TransactionIdxT txnIdx,
const boost::shared_ptr<Functor>& functor, const primitiveprocessor::SP_UM_IOSOCK& sock,
const uint32_t weight = 1, const uint32_t priority = 0, const uint32_t id = 0)
: uniqueID(uniqueID)
, stepID(stepID)
, txnIdx(txnIdx)
, functor(functor)
, sock(sock)
, weight(weight)
, priority(priority)
, id(id)
{
}
uint32_t uniqueID;
uint32_t stepID;
TransactionIdxT txnIdx;
boost::shared_ptr<Functor> functor;
primitiveprocessor::SP_UM_IOSOCK sock;
uint32_t weight;
uint32_t priority;
uint32_t id;
uint32_t uniqueID;
uint32_t stepID;
primitiveprocessor::SP_UM_IOSOCK sock;
};
enum Priority
@ -114,7 +128,7 @@ class PriorityThreadPool
{
return blockedThreads;
}
protected:
private:
struct ThreadHelper