mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			157 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (C) 2003 MySQL AB
 | 
						|
 | 
						|
   This program is free software; you can redistribute it and/or modify
 | 
						|
   it under the terms of the GNU General Public License as published by
 | 
						|
   the Free Software Foundation; either version 2 of the License, or
 | 
						|
   (at your option) any later version.
 | 
						|
 | 
						|
   This program is distributed in the hope that it will be useful,
 | 
						|
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
   GNU General Public License for more details.
 | 
						|
 | 
						|
   You should have received a copy of the GNU General Public License
 | 
						|
   along with this program; if not, write to the Free Software
 | 
						|
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 | 
						|
 | 
						|
#ifndef TESTDATA_H
 | 
						|
#define TESTDATA_H
 | 
						|
 | 
						|
/***************************************************************
 | 
						|
* I N C L U D E D   F I L E S                                  *
 | 
						|
***************************************************************/
 | 
						|
#include <NdbTick.h>
 | 
						|
#include <NdbThread.h>
 | 
						|
#include <NDBT_Stats.hpp>
 | 
						|
#include <random.h>
 | 
						|
#include "testDefinitions.h"
 | 
						|
 | 
						|
/***************************************************************
 | 
						|
* M A C R O S                                                  *
 | 
						|
***************************************************************/
 | 
						|
 | 
						|
/***************************************************************/
 | 
						|
/* C O N S T A N T S                                           */
 | 
						|
/***************************************************************/
 | 
						|
 | 
						|
#define NUM_TRANSACTION_TYPES    5
 | 
						|
#define SESSION_LIST_LENGTH   1000
 | 
						|
 | 
						|
/***************************************************************
 | 
						|
* D A T A   S T R U C T U R E S                                *
 | 
						|
***************************************************************/
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  SubscriberNumber subscriberNumber;
 | 
						|
  ServerId         serverId;
 | 
						|
} SessionElement;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  SessionElement list[SESSION_LIST_LENGTH];
 | 
						|
  unsigned int readIndex;
 | 
						|
  unsigned int writeIndex;
 | 
						|
  unsigned int numberInList;
 | 
						|
} SessionList;  
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  unsigned int  count;
 | 
						|
  unsigned int  branchExecuted;
 | 
						|
  unsigned int  rollbackExecuted;
 | 
						|
 | 
						|
  /**
 | 
						|
   * Latency measures
 | 
						|
   */
 | 
						|
  NDB_TICKS     startTime;
 | 
						|
  NDBT_Stats    latency;
 | 
						|
  unsigned int  latencyCounter;
 | 
						|
 | 
						|
  inline void startLatency(){
 | 
						|
    if((latencyCounter & 127) == 127)
 | 
						|
      startTime = NdbTick_CurrentMillisecond();
 | 
						|
  }
 | 
						|
 | 
						|
  inline void stopLatency(){
 | 
						|
    if((latencyCounter & 127) == 127){
 | 
						|
      const NDB_TICKS tmp = NdbTick_CurrentMillisecond() - startTime;
 | 
						|
      latency.addObservation(tmp);
 | 
						|
    }
 | 
						|
    latencyCounter++;
 | 
						|
  }
 | 
						|
} TransactionDefinition;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  RandomSequence transactionSequence;
 | 
						|
  RandomSequence rollbackSequenceT4;
 | 
						|
  RandomSequence rollbackSequenceT5;
 | 
						|
  
 | 
						|
  TransactionDefinition transactions[NUM_TRANSACTION_TYPES];
 | 
						|
 | 
						|
  unsigned int totalTransactions;
 | 
						|
    
 | 
						|
  double       outerLoopTime;
 | 
						|
  double       outerTps;
 | 
						|
  
 | 
						|
  SessionList  activeSessions;
 | 
						|
  
 | 
						|
} GeneratorStatistics;
 | 
						|
 | 
						|
typedef enum{
 | 
						|
  Runnable,
 | 
						|
  Running
 | 
						|
} RunState ;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  SubscriberNumber    number;	
 | 
						|
  SubscriberSuffix    suffix;
 | 
						|
  SubscriberName      name;
 | 
						|
  Location            location;
 | 
						|
  ChangedBy           changed_by;
 | 
						|
  ChangedTime         changed_time;
 | 
						|
  ServerId            server_id;
 | 
						|
  ServerBit           server_bit;
 | 
						|
  SessionDetails      session_details;
 | 
						|
 | 
						|
  GroupId             group_id;
 | 
						|
  ActiveSessions      sessions;
 | 
						|
  Permission          permission;
 | 
						|
 | 
						|
  unsigned int        do_rollback;
 | 
						|
 | 
						|
  unsigned int        branchExecuted;
 | 
						|
  unsigned int        sessionElement;
 | 
						|
} TransactionData ;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  struct NdbThread* pThread;
 | 
						|
 | 
						|
  unsigned long randomSeed;
 | 
						|
  unsigned long changedTime;
 | 
						|
 | 
						|
  unsigned int warmUpSeconds;
 | 
						|
  unsigned int testSeconds;
 | 
						|
  unsigned int coolDownSeconds;
 | 
						|
 | 
						|
  GeneratorStatistics generator;
 | 
						|
  
 | 
						|
  /**
 | 
						|
   * For async execution
 | 
						|
   */
 | 
						|
  RunState          runState;
 | 
						|
  double            startTime;
 | 
						|
  TransactionData   transactionData;
 | 
						|
  struct Ndb      * pNDB;
 | 
						|
} ThreadData;
 | 
						|
 | 
						|
/***************************************************************
 | 
						|
 * P U B L I C    F U N C T I O N S                             *
 | 
						|
 ***************************************************************/
 | 
						|
 | 
						|
/***************************************************************
 | 
						|
 * E X T E R N A L   D A T A                                    *
 | 
						|
 ***************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
#endif /* TESTDATA_H */
 | 
						|
 |