fis-gtm/sr_port/gvstats_rec.c

76 lines
3.1 KiB
C

/****************************************************************
* *
* Copyright 2008, 2009 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. *
* *
****************************************************************/
#include "mdef.h"
#include "gtm_string.h"
#include "gdsroot.h"
#include "gtm_facility.h"
#include "fileinfo.h"
#include "gdsbt.h"
#include "gdsfhead.h"
#include "gvstats_rec.h"
void gvstats_rec_csd2cnl(sgmnt_addrs *csa)
{
memcpy(&csa->nl->gvstats_rec, &csa->hdr->gvstats_rec, SIZEOF(gvstats_rec_t));
}
void gvstats_rec_cnl2csd(sgmnt_addrs *csa)
{
memcpy(&csa->hdr->gvstats_rec, &csa->nl->gvstats_rec, SIZEOF(gvstats_rec_t));
}
void gvstats_rec_upgrade(sgmnt_addrs *csa)
{
node_local_ptr_t cnl;
sgmnt_data_ptr_t csd;
int index;
csd = csa->hdr;
cnl = csa->nl;
/* csd still contains gvstats info in old place. Copy over to new location */
cnl->gvstats_rec.n_nontp_retries_0 = csd->filler_n_retries[0];
cnl->gvstats_rec.n_nontp_retries_1 = csd->filler_n_retries[1];
cnl->gvstats_rec.n_nontp_retries_2 = csd->filler_n_retries[2];
cnl->gvstats_rec.n_nontp_retries_3 = csd->filler_n_retries[3];
cnl->gvstats_rec.n_set = csd->filler_n_puts;
cnl->gvstats_rec.n_kill = csd->filler_n_kills;
cnl->gvstats_rec.n_query = csd->filler_n_queries;
cnl->gvstats_rec.n_get = csd->filler_n_gets;
cnl->gvstats_rec.n_order = csd->filler_n_order;
cnl->gvstats_rec.n_zprev = csd->filler_n_zprevs;
cnl->gvstats_rec.n_data = csd->filler_n_data;
/* No longer maintained : csd->filler_n_puts_duplicate */
cnl->gvstats_rec.n_tp_readwrite = csd->filler_n_tp_updates;
/* No longer maintained : csd->filler_n_tp_updates_duplicate */
cnl->gvstats_rec.n_tp_tot_retries_0 = csd->filler_n_tp_retries[0];
cnl->gvstats_rec.n_tp_tot_retries_1 = csd->filler_n_tp_retries[1];
cnl->gvstats_rec.n_tp_tot_retries_2 = csd->filler_n_tp_retries[2];
cnl->gvstats_rec.n_tp_tot_retries_3 = csd->filler_n_tp_retries[3];
cnl->gvstats_rec.n_tp_tot_retries_4 = csd->filler_n_tp_retries[4];
for (index = 5; index < 12; index++)
cnl->gvstats_rec.n_tp_tot_retries_4 += csd->filler_n_tp_retries[index];
cnl->gvstats_rec.n_tp_cnflct_retries_0 = csd->filler_n_tp_retries_conflicts[0];
cnl->gvstats_rec.n_tp_cnflct_retries_1 = csd->filler_n_tp_retries_conflicts[1];
cnl->gvstats_rec.n_tp_cnflct_retries_2 = csd->filler_n_tp_retries_conflicts[2];
cnl->gvstats_rec.n_tp_cnflct_retries_3 = csd->filler_n_tp_retries_conflicts[3];
cnl->gvstats_rec.n_tp_cnflct_retries_4 = csd->filler_n_tp_retries_conflicts[4];
for (index = 5; index < 12; index++)
cnl->gvstats_rec.n_tp_cnflct_retries_4 += csd->filler_n_tp_retries_conflicts[index];
/* Nullify statistics that were formerly in use but no longer so */
csd->unused_dsk_reads.curr_count = 0;
csd->unused_dsk_reads.cumul_count = 0;
csd->unused_dsk_writes.curr_count = 0;
csd->unused_dsk_writes.cumul_count = 0;
}