diff --git a/src/backend/distributed/worker/task_tracker.c b/src/backend/distributed/worker/task_tracker.c index 1afabb371..3b94dfe0f 100644 --- a/src/backend/distributed/worker/task_tracker.c +++ b/src/backend/distributed/worker/task_tracker.c @@ -578,6 +578,13 @@ TaskTrackerShmemInit(void) if (!alreadyInitialized) { +#if (PG_VERSION_NUM >= 100000) + WorkerTasksSharedState->taskHashTrancheId = LWLockNewTrancheId(); + WorkerTasksSharedState->taskHashTrancheName = "Worker Task Hash Tranche"; + LWLockRegisterTranche(WorkerTasksSharedState->taskHashTrancheId, + WorkerTasksSharedState->taskHashTrancheName); +#else + /* initialize lwlock protecting the task tracker hash table */ LWLockTranche *tranche = &WorkerTasksSharedState->taskHashLockTranche; @@ -586,6 +593,8 @@ TaskTrackerShmemInit(void) tranche->array_stride = sizeof(LWLock); tranche->name = "Worker Task Hash Tranche"; LWLockRegisterTranche(WorkerTasksSharedState->taskHashTrancheId, tranche); +#endif + LWLockInitialize(&WorkerTasksSharedState->taskHashLock, WorkerTasksSharedState->taskHashTrancheId); } diff --git a/src/include/distributed/task_tracker.h b/src/include/distributed/task_tracker.h index 1b76d9547..20aa0a9cf 100644 --- a/src/include/distributed/task_tracker.h +++ b/src/include/distributed/task_tracker.h @@ -99,7 +99,11 @@ typedef struct WorkerTasksSharedStateData /* Lock protecting workerNodesHash */ int taskHashTrancheId; +#if (PG_VERSION_NUM >= 100000) + char *taskHashTrancheName; +#else LWLockTranche taskHashLockTranche; +#endif LWLock taskHashLock; } WorkerTasksSharedStateData;