fis-gtm/sr_port/wcs_phase2_commit_wait.h

35 lines
1.4 KiB
C

/****************************************************************
* *
* Copyright 2008, 2010 Fidelity Information Services, Inc *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#ifndef __WCS_PHASE2_COMMIT_WAIT_H__
#define __WCS_PHASE2_COMMIT_WAIT_H__
/* We have found that having the default spin count at 128 causes huge CPU usage in Tru64 even though ALL the processes are
* waiting for one process to finish its phase2 commit. Since this parameter is user controlled anyways using DSE CHANGE -FILE,
* the default setting is kept at a very low value of 16.
*/
# define WCS_PHASE2_COMMIT_DEFAULT_SPINCNT 16
/* The maximum number of cache-records with disticnt PIDs that wcs_phase2_commit_wait can note down for tracing. We don't expect
* a large number of PIDs concurrently in phase2 of the commit. If we see evidince of more PIDs in phase2 of the commit, then
* the following number can be bumped.
*/
# define MAX_PHASE2_WAIT_CR_TRACE_SIZE 32
typedef struct phase2_wait_trace_struct
{
uint4 blocking_pid;
cache_rec_ptr_t cr;
} phase2_wait_trace_t;
boolean_t wcs_phase2_commit_wait(sgmnt_addrs *csa, cache_rec_ptr_t cr);
#endif