mco_translog_get_info

This function obtains information about the currently running TL runtime.

For an overview see page TL Applications

Prototype

 
    MCO_RET	mco_translog_get_info(	mco_db_h db, 
                    mco_TL_current_info_h info )
 

Arguments

db Database connection handle

info

A pointer to a structure defined as:

typedef struct mco_TL_current_info_
{
uint2               flags;
mco_trans_counter_t start_trans_count;
mco_trans_counter_t last_trans_counter;
mco_trans_counter_t stored_transactions;
mco_size_t          log_size;
mco_size_t          pipe_used_size;
int                 labels_count;
uint4              max_parallel_trans;
uint4     exceeded_trans_slots_count;
uint4              max_transaction_size;
} mco_TL_current_info_t,
*mco_TL_current_info_h;

(The structure elements are explained below.)

Description

This function obtains information about the currently running TL runtime.

Return Codes

MCO_S_OK Log file read successfully.

MCO_E_TL_INVAL

Arguments are wrong or incompatible.

MCO_E_TL_NOT_STARTED

Transaction logging was not started.

The structure elements for structure mco_TL_current_info are defined as follows:

flags The combination of MCO_TL_FLAGS values specified in the flags element of the mco_TL_start_data structure passed to mco_translog_start().

start_trans_counter

The value of the transaction counter when the log file was started.

last_trans_counter

The current value of the transaction counter.

stored_transactions

The count of transactions stored in the log file.

log_size

The current size of the log file in bytes. In the pipe mode, this indicates the current size of the pipe, in bytes (could be less than or equal to the size of the pipe device).

pipe_used_size

Current pipe size.

labels_count

The count of labels stored in the log file.

max_parallel_trans

The maximum number of logging slots used simultaneously for parallel transaction commits since logging started when using the MVCC transaction manager. The total number of slots may be from 0 to max_connections*2. Note! Logging option MCO_TRANSLOG_SYNC_INSTANTLY disables this optimization.

exceeded_trans_slots_count

The number of times the max number of logging slots was exceeded.

max_transaction_size

Size of the largest transaction since the log was started. It may be used as a statistic for optimizing the size of memory supplied for the function mco_translog_iterate() and also to tune the value of the field disk_page_size in pipe mode with the flag MCO_TRANSLOG_SYNC_INSTANTLY.

Note that when the MVCC transaction manager is used, the structure element exceeded_trans_slots_count is for informational value. If the count of parallel transactions reaches its limit (max_connections * 2) then the TL runtime “holds” other parallel transactions until all previous transactions are saved. So exceeded_trans_slots_count retains the count of times that all available log slots were used and other parallel transactions were “held”. If this count is large it is recommended that the database be opened with a higher value for max_connections.

Files

Header file:
mcolog.h
Source file:
mcolog.c
Library:
libmcolog.a