CUBRID Engine  latest
log_tran_table.c File Reference
#include <inttypes.h>
#include "config.h"
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
#include <fcntl.h>
#include <time.h>
#include <limits.h>
#include <sys/stat.h>
#include <assert.h>
#include "dbtran_def.h"
#include "log_impl.h"
#include "log_lsa.hpp"
#include "log_manager.h"
#include "log_system_tran.hpp"
#include "memory_private_allocator.hpp"
#include "object_representation.h"
#include "error_manager.h"
#include "system_parameter.h"
#include "xserver_interface.h"
#include "file_manager.h"
#include "query_manager.h"
#include "query_monitoring.hpp"
#include "partition_sr.h"
#include "btree_load.h"
#include "serial.h"
#include "show_scan.h"
#include "boot_sr.h"
#include "tz_support.h"
#include "db_date.h"
#include "dbtype.h"
#include "string_buffer.hpp"
#include "thread_entry.hpp"
#include "thread_manager.hpp"
#include "xasl.h"
#include "xasl_cache.h"

Go to the source code of this file.

Macros

#define __STDC_FORMAT_MACROS
 
#define RMUTEX_NAME_TDES_TOPOP   "TDES_TOPOP"
 
#define NUM_ASSIGNED_TRAN_INDICES   log_Gl.trantable.num_assigned_indices
 
#define NUM_TOTAL_TRAN_INDICES   log_Gl.trantable.num_total_indices
 
#define pthread_mutex_init(a, b)
 
#define pthread_mutex_destroy(a)
 
#define pthread_mutex_lock(a)   0
 
#define pthread_mutex_trylock(a)   0
 
#define pthread_mutex_unlock(a)
 

Functions

static int logtb_expand_trantable (THREAD_ENTRY *thread_p, int num_new_indices)
 
static int logtb_allocate_tran_index (THREAD_ENTRY *thread_p, TRANID trid, TRAN_STATE state, const BOOT_CLIENT_CREDENTIAL *client_credential, TRAN_STATE *current_state, int wait_msecs, TRAN_ISOLATION isolation)
 
static LOG_ADDR_TDESAREAlogtb_allocate_tdes_area (int num_indices)
 
static void logtb_initialize_trantable (TRANTABLE *trantable_p)
 
static int logtb_initialize_system_tdes (THREAD_ENTRY *thread_p)
 
static void logtb_set_number_of_assigned_tran_indices (int num_trans)
 
static void logtb_increment_number_of_assigned_tran_indices ()
 
static void logtb_decrement_number_of_assigned_tran_indices ()
 
static void logtb_set_number_of_total_tran_indices (int num_total_trans)
 
static void logtb_set_loose_end_tdes (LOG_TDES *tdes)
 
static bool logtb_is_interrupted_tdes (THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool clear, bool *continue_checking)
 
static void logtb_dump_tdes_distribute_transaction (FILE *out_fp, int global_tran_id, LOG_2PC_COORDINATOR *coord)
 
static void logtb_dump_top_operations (FILE *out_fp, LOG_TOPOPS_STACK *topops_p)
 
static void logtb_dump_tdes (FILE *out_fp, LOG_TDES *tdes)
 
static void logtb_set_tdes (THREAD_ENTRY *thread_p, LOG_TDES *tdes, const BOOT_CLIENT_CREDENTIAL *client_credential, int wait_msecs, TRAN_ISOLATION isolation)
 
static void logtb_tran_free_update_stats (LOG_TRAN_UPDATE_STATS *log_upd_stats)
 
static void logtb_tran_clear_update_stats (LOG_TRAN_UPDATE_STATS *log_upd_stats)
 
static unsigned int logtb_tran_btid_hash_func (const void *key, const unsigned int ht_size)
 
static int logtb_tran_btid_hash_cmp_func (const void *key1, const void *key2)
 
static LOG_TRAN_CLASS_COSlogtb_tran_create_class_cos (THREAD_ENTRY *thread_p, const OID *class_oid)
 
static LOG_TRAN_BTID_UNIQUE_STATSlogtb_tran_create_btid_unique_stats (THREAD_ENTRY *thread_p, const BTID *btid)
 
static int logtb_tran_update_delta_hash_func (THREAD_ENTRY *thread_p, void *data, void *args)
 
static int logtb_tran_load_global_stats_func (THREAD_ENTRY *thread_p, void *data, void *args)
 
static int logtb_tran_reset_cos_func (THREAD_ENTRY *thread_p, void *data, void *args)
 
static int logtb_load_global_statistics_to_tran (THREAD_ENTRY *thread_p)
 
static int logtb_create_unique_stats_from_repr (THREAD_ENTRY *thread_p, OID *class_oid)
 
static GLOBAL_UNIQUE_STATSlogtb_get_global_unique_stats_entry (THREAD_ENTRY *thread_p, BTID *btid, bool load_at_creation)
 
static void * logtb_global_unique_stat_alloc (void)
 
static int logtb_global_unique_stat_free (void *unique_stat)
 
static int logtb_global_unique_stat_init (void *unique_stat)
 
static int logtb_global_unique_stat_key_copy (void *src, void *dest)
 
static void logtb_free_tran_mvcc_info (LOG_TDES *tdes)
 
static void logtb_assign_subtransaction_mvccid (THREAD_ENTRY *thread_p, MVCC_INFO *curr_mvcc_info, MVCCID mvcc_subid)
 
static int logtb_check_kill_tran_auth (THREAD_ENTRY *thread_p, int tran_id, bool *has_authorization)
 
static void logtb_find_thread_entry_mapfunc (THREAD_ENTRY &thread_ref, bool &stop_mapper, int tran_index, bool except_me, REFPTR(THREAD_ENTRY, found_ptr))
 
void * logtb_realloc_topops_stack (LOG_TDES *tdes, int num_elms)
 
void logtb_define_trantable (THREAD_ENTRY *thread_p, int num_expected_tran_indices, int num_expected_locks)
 
int logtb_define_trantable_log_latch (THREAD_ENTRY *thread_p, int num_expected_tran_indices)
 
void logtb_undefine_trantable (THREAD_ENTRY *thread_p)
 
int logtb_get_number_assigned_tran_indices (void)
 
int logtb_get_number_of_total_tran_indices (void)
 
bool logtb_am_i_dba_client (THREAD_ENTRY *thread_p)
 
int logtb_assign_tran_index (THREAD_ENTRY *thread_p, TRANID trid, TRAN_STATE state, const BOOT_CLIENT_CREDENTIAL *client_credential, TRAN_STATE *current_state, int wait_msecs, TRAN_ISOLATION isolation)
 
int logtb_is_tran_modification_disabled (THREAD_ENTRY *thread_p)
 
LOG_TDESlogtb_rv_find_allocate_tran_index (THREAD_ENTRY *thread_p, TRANID trid, const LOG_LSA *log_lsa)
 
void logtb_rv_assign_mvccid_for_undo_recovery (THREAD_ENTRY *thread_p, MVCCID mvccid)
 
void logtb_release_tran_index (THREAD_ENTRY *thread_p, int tran_index)
 
void logtb_free_tran_index (THREAD_ENTRY *thread_p, int tran_index)
 
void logtb_free_tran_index_with_undo_lsa (THREAD_ENTRY *thread_p, const LOG_LSA *undo_lsa)
 
void xlogtb_dump_trantable (THREAD_ENTRY *thread_p, FILE *out_fp)
 
void logtb_clear_tdes (THREAD_ENTRY *thread_p, LOG_TDES *tdes)
 
void logtb_initialize_tdes (LOG_TDES *tdes, int tran_index)
 
void logtb_finalize_tdes (THREAD_ENTRY *thread_p, LOG_TDES *tdes)
 
int logtb_get_new_tran_id (THREAD_ENTRY *thread_p, LOG_TDES *tdes)
 
int logtb_find_tran_index (THREAD_ENTRY *thread_p, TRANID trid)
 
TRANID logtb_find_tranid (int tran_index)
 
TRANID logtb_find_current_tranid (THREAD_ENTRY *thread_p)
 
int logtb_count_clients (THREAD_ENTRY *thread_p)
 
int logtb_count_not_allowed_clients_in_maintenance_mode (THREAD_ENTRY *thread_p)
 
int logtb_find_client_type (int tran_index)
 
const char * logtb_find_client_name (int tran_index)
 
void logtb_set_user_name (int tran_index, const char *user_name)
 
void logtb_set_current_user_name (THREAD_ENTRY *thread_p, const char *user_name)
 
void logtb_set_current_user_active (THREAD_ENTRY *thread_p, bool is_user_active)
 
const char * logtb_find_client_hostname (int tran_index)
 
int logtb_find_client_name_host_pid (int tran_index, const char **client_prog_name, const char **client_user_name, const char **client_host_name, int *client_pid)
 
int logtb_get_client_ids (int tran_index, CLIENTIDS *client_info)
 
int xlogtb_get_pack_tran_table (THREAD_ENTRY *thread_p, char **buffer_p, int *size_p, int include_query_exec_info)
 
int logtb_find_current_client_type (THREAD_ENTRY *thread_p)
 
const char * logtb_find_current_client_name (THREAD_ENTRY *thread_p)
 
const char * logtb_find_current_client_hostname (THREAD_ENTRY *thread_p)
 
LOG_LSAlogtb_find_current_tran_lsa (THREAD_ENTRY *thread_p)
 
TRAN_STATE logtb_find_state (int tran_index)
 
int xlogtb_reset_wait_msecs (THREAD_ENTRY *thread_p, int wait_msecs)
 
int logtb_find_wait_msecs (int tran_index)
 
int logtb_find_interrupt (int tran_index, bool *interrupt)
 
int logtb_find_log_records_count (int tran_index)
 
int xlogtb_reset_isolation (THREAD_ENTRY *thread_p, TRAN_ISOLATION isolation)
 
TRAN_ISOLATION logtb_find_isolation (int tran_index)
 
TRAN_ISOLATION logtb_find_current_isolation (THREAD_ENTRY *thread_p)
 
void xlogtb_set_interrupt (THREAD_ENTRY *thread_p, int set)
 
bool logtb_set_tran_index_interrupt (THREAD_ENTRY *thread_p, int tran_index, bool set)
 
bool logtb_is_interrupted (THREAD_ENTRY *thread_p, bool clear, bool *continue_checking)
 
bool logtb_is_interrupted_tran (THREAD_ENTRY *thread_p, bool clear, bool *continue_checking, int tran_index)
 
void xlogtb_set_suppress_repl_on_transaction (THREAD_ENTRY *thread_p, int set)
 
bool logtb_set_suppress_repl_on_transaction (THREAD_ENTRY *thread_p, int tran_index, int set)
 
bool logtb_is_active (THREAD_ENTRY *thread_p, TRANID trid)
 
bool logtb_is_current_active (THREAD_ENTRY *thread_p)
 
bool logtb_istran_finished (THREAD_ENTRY *thread_p, TRANID trid)
 
bool logtb_has_updated (THREAD_ENTRY *thread_p)
 
void logtb_disable_update (THREAD_ENTRY *thread_p)
 
void logtb_enable_update (THREAD_ENTRY *thread_p)
 
void logtb_set_to_system_tran_index (THREAD_ENTRY *thread_p)
 
LOG_TRAN_CLASS_COSlogtb_tran_find_class_cos (THREAD_ENTRY *thread_p, const OID *class_oid, bool create)
 
LOG_TRAN_BTID_UNIQUE_STATSlogtb_tran_find_btid_stats (THREAD_ENTRY *thread_p, const BTID *btid, bool create)
 
int logtb_tran_update_btid_unique_stats (THREAD_ENTRY *thread_p, const BTID *btid, int n_keys, int n_oids, int n_nulls)
 
int logtb_tran_update_unique_stats (THREAD_ENTRY *thread_p, const BTID *btid, int n_keys, int n_oids, int n_nulls, bool write_to_log)
 
int logtb_tran_update_unique_stats (THREAD_ENTRY *thread_p, const BTID &btid, const btree_unique_stats &ustats, bool write_to_log)
 
int logtb_tran_update_unique_stats (THREAD_ENTRY *thread_p, const multi_index_unique_stats &multi_stats, bool write_to_log)
 
int logtb_tran_update_all_global_unique_stats (THREAD_ENTRY *thread_p)
 
int logtb_invalidate_snapshot_data (THREAD_ENTRY *thread_p)
 
int xlogtb_get_mvcc_snapshot (THREAD_ENTRY *thread_p)
 
MVCCID logtb_find_current_mvccid (THREAD_ENTRY *thread_p)
 
MVCCID logtb_get_current_mvccid (THREAD_ENTRY *thread_p)
 
bool logtb_is_current_mvccid (THREAD_ENTRY *thread_p, MVCCID mvccid)
 
MVCC_SNAPSHOTlogtb_get_mvcc_snapshot (THREAD_ENTRY *thread_p)
 
void logtb_complete_mvcc (THREAD_ENTRY *thread_p, LOG_TDES *tdes, bool committed)
 
int logtb_set_num_loose_end_trans (THREAD_ENTRY *thread_p)
 
void log_find_unilaterally_largest_undo_lsa (THREAD_ENTRY *thread_p, LOG_LSA &max_undo_lsa)
 
void logtb_find_smallest_lsa (THREAD_ENTRY *thread_p, LOG_LSA *lsa)
 
int logtb_tran_prepare_count_optim_classes (THREAD_ENTRY *thread_p, const char **classes, LC_PREFETCH_FLAGS *flags, int n_classes)
 
void logtb_tran_reset_count_optim_state (THREAD_ENTRY *thread_p)
 
void logtb_find_smallest_and_largest_active_pages (THREAD_ENTRY *thread_p, LOG_PAGEID *smallest, LOG_PAGEID *largest)
 
bool logtb_has_deadlock_priority (int tran_index)
 
void logtb_get_new_subtransaction_mvccid (THREAD_ENTRY *thread_p, MVCC_INFO *curr_mvcc_info)
 
void logtb_complete_sub_mvcc (THREAD_ENTRY *thread_p, LOG_TDES *tdes)
 
int logtb_initialize_global_unique_stats_table (THREAD_ENTRY *thread_p)
 
void logtb_finalize_global_unique_stats_table (THREAD_ENTRY *thread_p)
 
int logtb_get_global_unique_stats (THREAD_ENTRY *thread_p, BTID *btid, int *num_oids, int *num_nulls, int *num_keys)
 
int logtb_rv_update_global_unique_stats_by_abs (THREAD_ENTRY *thread_p, BTID *btid, int num_oids, int num_nulls, int num_keys)
 
int logtb_update_global_unique_stats_by_delta (THREAD_ENTRY *thread_p, BTID *btid, int oid_delta, int null_delta, int key_delta, bool log)
 
int logtb_delete_global_unique_stats (THREAD_ENTRY *thread_p, BTID *btid)
 
int logtb_reflect_global_unique_stats_to_btree (THREAD_ENTRY *thread_p)
 
bool xlogtb_does_active_user_exist (THREAD_ENTRY *thread_p, const char *user_name)
 
int logtb_collect_local_clients (int **local_clients_pids)
 
int logtb_descriptors_start_scan (THREAD_ENTRY *thread_p, int type, DB_VALUE **arg_values, int arg_cnt, void **ptr)
 
const char * tran_abort_reason_to_string (TRAN_ABORT_REASON val)
 
bool logtb_check_class_for_rr_isolation_err (const OID *class_oid)
 
void logtb_slam_transaction (THREAD_ENTRY *thread_p, int tran_index)
 
int xlogtb_kill_tran_index (THREAD_ENTRY *thread_p, int kill_tran_index, char *kill_user_p, char *kill_host_p, int kill_pid)
 
int xlogtb_kill_or_interrupt_tran (THREAD_ENTRY *thread_p, int tran_index, bool is_dba_group_member, bool interrupt_only)
 
THREAD_ENTRYlogtb_find_thread_by_tran_index (int tran_index)
 
THREAD_ENTRYlogtb_find_thread_by_tran_index_except_me (int tran_index)
 
int logtb_get_current_tran_index (void)
 
void logtb_set_current_tran_index (THREAD_ENTRY *thread_p, int tran_index)
 
bool logtb_set_check_interrupt (THREAD_ENTRY *thread_p, bool flag)
 
bool logtb_get_check_interrupt (THREAD_ENTRY *thread_p)
 
LOG_TDESlogtb_get_system_tdes (THREAD_ENTRY *thread_p)
 

Variables

static const int LOG_MAX_NUM_CONTIGUOUS_TDES = INT_MAX / sizeof (LOG_TDES)
 
static const float LOG_EXPAND_TRANTABLE_RATIO = 1.25
 
static const int LOG_TOPOPS_STACK_INCREMENT = 3
 
static BOOT_CLIENT_CREDENTIAL log_Client_credential
 
static const unsigned int LOGTB_RETRY_SLAM_MAX_TIMES = 10
 

Macro Definition Documentation

#define __STDC_FORMAT_MACROS

Definition at line 27 of file log_tran_table.c.

#define NUM_ASSIGNED_TRAN_INDICES   log_Gl.trantable.num_assigned_indices
#define pthread_mutex_destroy (   a)

Definition at line 88 of file log_tran_table.c.

Referenced by logtb_global_unique_stat_free().

#define pthread_mutex_init (   a,
 
)

Definition at line 87 of file log_tran_table.c.

Referenced by logtb_global_unique_stat_alloc().

#define pthread_mutex_lock (   a)    0

Definition at line 89 of file log_tran_table.c.

#define pthread_mutex_trylock (   a)    0

Definition at line 90 of file log_tran_table.c.

#define RMUTEX_NAME_TDES_TOPOP   "TDES_TOPOP"

Definition at line 81 of file log_tran_table.c.

Referenced by logtb_initialize_tdes().

Function Documentation

static LOG_ADDR_TDESAREA * logtb_allocate_tdes_area ( int  num_indices)
static
bool logtb_am_i_dba_client ( THREAD_ENTRY thread_p)

Definition at line 751 of file log_tran_table.c.

References logtb_find_current_client_name(), and NULL.

Referenced by logtb_check_kill_tran_auth(), and net_server_request().

Here is the caller graph for this function:

static void logtb_assign_subtransaction_mvccid ( THREAD_ENTRY thread_p,
MVCC_INFO curr_mvcc_info,
MVCCID  mvcc_subid 
)
static

Definition at line 4554 of file log_tran_table.c.

References assert, mvcc_info::id, MVCCID_IS_VALID, NULL, and mvcc_info::sub_ids.

Referenced by logtb_get_new_subtransaction_mvccid().

Here is the caller graph for this function:

int logtb_assign_tran_index ( THREAD_ENTRY thread_p,
TRANID  trid,
TRAN_STATE  state,
const BOOT_CLIENT_CREDENTIAL client_credential,
TRAN_STATE current_state,
int  wait_msecs,
TRAN_ISOLATION  isolation 
)
bool logtb_check_class_for_rr_isolation_err ( const OID class_oid)
static int logtb_check_kill_tran_auth ( THREAD_ENTRY thread_p,
int  tran_id,
bool has_authorization 
)
static

Definition at line 5677 of file log_tran_table.c.

References assert, ER_CSS_KILL_UNKNOWN_TRANSACTION, logtb_am_i_dba_client(), logtb_find_client_name(), logtb_find_current_client_name(), NO_ERROR, and NULL.

Referenced by xlogtb_kill_or_interrupt_tran().

Here is the caller graph for this function:

void logtb_clear_tdes ( THREAD_ENTRY thread_p,
LOG_TDES tdes 
)

Definition at line 1484 of file log_tran_table.c.

References log_rcv_tdes::analysis_last_aborted_sysop_lsa, log_rcv_tdes::analysis_last_aborted_sysop_start_lsa, log_tdes::append_repl_recidx, assert, log_rcv_tdes::atomic_sysop_start_lsa, log_tdes::bind_history, BOOT_WRITE_ON_STANDY_CLIENT_TYPE, tx_transient_class_registry::clear(), multi_index_unique_stats::clear(), log_tdes::client, clientids::client_type, log_tdes::coord, log_tdes::cur_repl_record, db_change_private_heap(), db_Disable_modifications, db_private_free_and_init, db_value_clear(), log_tdes::disable_modifications, log_tdes::first_save_entry, log_tdes::fl_mark_repl_recidx, free_and_init, log_tdes::gtrid, log_tdes::gtrinfo, log_tdes::has_deadlock_priority, log_tdes::head_lsa, i, mvcc_info::id, log_2pc_gtrinfo::info_data, log_2pc_gtrinfo::info_length, log_tdes::interrupt, log_tdes::isloose_end, log_topops_stack::last, log_2pc_free_coord_info(), LOG_2PC_NULL_GTRID, log_Gl, log_tdes::log_upd_stats, logtb_tran_clear_update_stats(), LSA_SET_NULL(), log_tdes::m_log_postpone_cache, log_tdes::m_modified_classes, log_tdes::m_multiupd_stats, MAX_NUM_EXEC_QUERY_HISTORY, MVCCID_NULL, log_tdes::mvccinfo, NULL, log_tdes::num_exec_queries, trantable::num_interrupts, log_tdes::num_log_records_written, log_tdes::posp_nxlsa, log_tdes::query_start_time, log_tdes::query_timeout, log_tdes::rcv, log_tdes::repl_insert_lsa, log_tdes::repl_records, log_tdes::repl_update_lsa, log_postpone_cache::reset(), log_tdes::savept_lsa, db_value_array::size, log_tdes::state, log_tdes::suppress_replication, log_rcv_tdes::sysop_start_postpone_lsa, log_tdes::tail_lsa, log_tdes::tail_topresult_lsa, log_tdes::topop_lsa, log_tdes::topops, TR_TABLE_CS_ENTER, TR_TABLE_CS_EXIT, log_tdes::tran_abort_reason, TRAN_ACTIVE, TRAN_NORMAL, log_rcv_tdes::tran_start_postpone_lsa, log_tdes::tran_start_time, log_global::trantable, log_tdes::undo_nxlsa, db_value_array::vals, log_tdes::waiting_for_res, log_tdes::xasl_id, and XASL_ID_SET_NULL.

Referenced by log_complete(), log_complete_for_2pc(), log_rv_analysis_end_checkpoint(), logpb_checkpoint(), logtb_allocate_tran_index(), logtb_finalize_tdes(), logtb_free_tran_index(), logtb_get_new_tran_id(), logtb_initialize_system_tdes(), and systdes_retire_tdes().

Here is the caller graph for this function:

int logtb_collect_local_clients ( int **  local_clients_pids)
static void logtb_decrement_number_of_assigned_tran_indices ( void  )
static

Definition at line 676 of file log_tran_table.c.

References log_Gl, trantable::num_assigned_indices, and log_global::trantable.

Referenced by logtb_free_tran_index().

Here is the caller graph for this function:

void logtb_define_trantable ( THREAD_ENTRY thread_p,
int  num_expected_tran_indices,
int  num_expected_locks 
)
int logtb_descriptors_start_scan ( THREAD_ENTRY thread_p,
int  type,
DB_VALUE **  arg_values,
int  arg_cnt,
void **  ptr 
)

Definition at line 5178 of file log_tran_table.c.

References trantable::all_tdes, log_tdes::append_repl_recidx, assert, boot_client_type_to_string(), CACHE_TIME_AS_ARGS, log_tdes::client, log_tdes::client_id, clientids::client_type, log_tdes::cur_repl_record, db_localdatetime_msec(), db_make_datetime(), db_make_int(), db_make_null(), db_make_string(), db_make_string_copy(), log_tdes::disable_modifications, tx_transient_class_registry::empty(), multi_index_unique_stats::empty(), er_errid(), error(), file_get_tran_num_temp_files(), log_tdes::first_save_entry, log_tdes::fl_mark_repl_recidx, clientids::get_client_info(), clientids::get_db_user(), clientids::get_host_name(), clientids::get_login_name(), clientids::get_program_name(), log_tdes::has_deadlock_priority, log_tdes::head_lsa, i, log_tdes::interrupt, log_tdes::isloose_end, log_tdes::isolation, log_topops_stack::last, log_Gl, log_isolation_string(), log_state_short_string(), lsa_to_string(), log_tdes::m_modified_classes, log_tdes::m_multiupd_stats, log_tdes::max_unique_btrees, db_value::need_clear, NO_ERROR, NULL, NULL_TRANID, log_tdes::num_repl_records, NUM_TOTAL_TRAN_INDICES, log_tdes::num_transient_classnames, log_tdes::num_unique_btrees, log_tdes::posp_nxlsa, cubmem::PRIVATE_BLOCK_ALLOCATOR, clientids::process_id, log_tdes::query_start_time, log_tdes::query_timeout, string_buffer::release_ptr(), log_tdes::repl_insert_lsa, log_tdes::repl_records, log_tdes::repl_update_lsa, log_tdes::savept_lsa, xasl_id::sha1, SHA1_AS_ARGS, showstmt_alloc_array_context(), showstmt_alloc_tuple_in_context(), showstmt_free_array_context(), log_tdes::state, log_tdes::suppress_replication, log_tdes::tail_lsa, log_tdes::tail_topresult_lsa, xasl_id::time_stored, tx_transient_class_registry::to_string(), multi_index_unique_stats::to_string(), log_tdes::topop_lsa, log_tdes::topops, TR_TABLE_CS_ENTER_READ_MODE, TR_TABLE_CS_EXIT, log_tdes::tran_abort_reason, tran_abort_reason_to_string(), log_tdes::tran_index, log_tdes::tran_start_time, log_global::trantable, log_tdes::trid, log_tdes::undo_nxlsa, log_tdes::wait_msecs, log_tdes::waiting_for_res, log_tdes::xasl_id, XASL_ID_COPY, and XASL_ID_IS_NULL.

Referenced by showstmt_scan_init().

Here is the caller graph for this function:

void logtb_disable_update ( THREAD_ENTRY thread_p)
static void logtb_dump_tdes_distribute_transaction ( FILE *  out_fp,
int  global_tran_id,
LOG_2PC_COORDINATOR coord 
)
static
static void logtb_dump_top_operations ( FILE *  out_fp,
LOG_TOPOPS_STACK topops_p 
)
static

Definition at line 1349 of file log_tran_table.c.

References i, log_topops_stack::last, log_topops_addresses::lastparent_lsa, LSA_AS_ARGS, log_topops_addresses::posp_lsa, and log_topops_stack::stack.

Referenced by logtb_dump_tdes().

Here is the caller graph for this function:

void logtb_enable_update ( THREAD_ENTRY thread_p)

Definition at line 3142 of file log_tran_table.c.

References ARG_FILE_LINE, db_Disable_modifications, er_log_debug, prm_get_bool_value(), and PRM_ID_READ_ONLY_MODE.

Referenced by css_change_ha_server_state(), and css_notify_ha_log_applier_state().

Here is the caller graph for this function:

void logtb_finalize_global_unique_stats_table ( THREAD_ENTRY thread_p)
const char* logtb_find_client_hostname ( int  tran_index)

Definition at line 2088 of file log_tran_table.c.

References log_tdes::client, clientids::get_host_name(), LOG_FIND_TDES(), NULL, NULL_TRANID, and log_tdes::trid.

Referenced by logtb_find_current_client_hostname().

Here is the caller graph for this function:

const char* logtb_find_client_name ( int  tran_index)

Definition at line 2015 of file log_tran_table.c.

References log_tdes::client, clientids::get_db_user(), LOG_FIND_TDES(), NULL, NULL_TRANID, and log_tdes::trid.

Referenced by logtb_check_kill_tran_auth(), and logtb_find_current_client_name().

Here is the caller graph for this function:

int logtb_find_client_name_host_pid ( int  tran_index,
const char **  client_prog_name,
const char **  client_user_name,
const char **  client_host_name,
int *  client_pid 
)
int logtb_find_client_type ( int  tran_index)

Definition at line 1995 of file log_tran_table.c.

References log_tdes::client, clientids::client_type, LOG_FIND_TDES(), NULL, NULL_TRANID, and log_tdes::trid.

Referenced by logtb_find_current_client_type(), and net_server_request().

Here is the caller graph for this function:

const char* logtb_find_current_client_hostname ( THREAD_ENTRY thread_p)

Definition at line 2440 of file log_tran_table.c.

References LOG_FIND_THREAD_TRAN_INDEX, and logtb_find_client_hostname().

Referenced by xtran_lock_rep_read().

Here is the caller graph for this function:

const char* logtb_find_current_client_name ( THREAD_ENTRY thread_p)

Definition at line 2429 of file log_tran_table.c.

References LOG_FIND_THREAD_TRAN_INDEX, and logtb_find_client_name().

Referenced by logtb_am_i_dba_client(), and logtb_check_kill_tran_auth().

Here is the caller graph for this function:

int logtb_find_current_client_type ( THREAD_ENTRY thread_p)

Definition at line 2418 of file log_tran_table.c.

References LOG_FIND_THREAD_TRAN_INDEX, and logtb_find_client_type().

Referenced by xtran_lock_rep_read().

Here is the caller graph for this function:

TRAN_ISOLATION logtb_find_current_isolation ( THREAD_ENTRY thread_p)
MVCCID logtb_find_current_mvccid ( THREAD_ENTRY thread_p)

Definition at line 3850 of file log_tran_table.c.

References mvcc_info::id, LOG_FIND_TDES(), LOG_FIND_THREAD_TRAN_INDEX, MVCCID_NULL, log_tdes::mvccinfo, NULL, and mvcc_info::sub_ids.

Referenced by btree_key_delete_remove_object(), and locator_update_force().

Here is the caller graph for this function:

LOG_LSA* logtb_find_current_tran_lsa ( THREAD_ENTRY thread_p)

Definition at line 2451 of file log_tran_table.c.

References LOG_FIND_CURRENT_TDES(), NULL, and log_tdes::tail_lsa.

Referenced by heap_log_delete_physical(), heap_update_bigone(), heap_update_home(), and heap_update_relocation().

Here is the caller graph for this function:

int logtb_find_interrupt ( int  tran_index,
bool interrupt 
)

Definition at line 2552 of file log_tran_table.c.

References assert, ER_FAILED, log_tdes::interrupt, LOG_FIND_TDES(), NO_ERROR, NULL, NULL_TRANID, and log_tdes::trid.

Referenced by xlogtb_kill_or_interrupt_tran().

Here is the caller graph for this function:

int logtb_find_log_records_count ( int  tran_index)

Definition at line 2579 of file log_tran_table.c.

References LOG_FIND_TDES(), NULL, and log_tdes::num_log_records_written.

Referenced by lock_demote_class_lock().

Here is the caller graph for this function:

TRAN_STATE logtb_find_state ( int  tran_index)

Definition at line 2467 of file log_tran_table.c.

References LOG_FIND_TDES(), NULL, log_tdes::state, and TRAN_UNACTIVE_UNKNOWN.

Referenced by lock_demote_class_lock(), and xlock_dump().

Here is the caller graph for this function:

THREAD_ENTRY* logtb_find_thread_by_tran_index ( int  tran_index)
THREAD_ENTRY* logtb_find_thread_by_tran_index_except_me ( int  tran_index)

Definition at line 5928 of file log_tran_table.c.

References logtb_find_thread_entry_mapfunc(), cubthread::manager::map_entries(), NULL, thread_get_manager(), and thread_wakeup().

Referenced by net_server_conn_down().

Here is the caller graph for this function:

static void logtb_find_thread_entry_mapfunc ( THREAD_ENTRY thread_ref,
bool stop_mapper,
int  tran_index,
bool  except_me,
REFPTR(THREAD_ENTRY, found_ptr)   
)
static

Definition at line 5889 of file log_tran_table.c.

Referenced by logtb_find_thread_by_tran_index(), and logtb_find_thread_by_tran_index_except_me().

Here is the caller graph for this function:

TRANID logtb_find_tranid ( int  tran_index)

Definition at line 1873 of file log_tran_table.c.

References LOG_FIND_TDES(), NULL, NULL_TRANID, and log_tdes::trid.

Referenced by lock_demote_class_lock(), lock_detect_local_deadlock(), and logtb_find_current_tranid().

Here is the caller graph for this function:

int logtb_find_wait_msecs ( int  tran_index)
static void logtb_free_tran_mvcc_info ( LOG_TDES tdes)
static

Definition at line 1468 of file log_tran_table.c.

References mvcc_active_tran::finalize(), mvcc_snapshot::m_active_mvccs, log_tdes::mvccinfo, mvcc_info::snapshot, and mvcc_info::sub_ids.

Referenced by logtb_finalize_tdes().

Here is the caller graph for this function:

bool logtb_get_check_interrupt ( THREAD_ENTRY thread_p)
int logtb_get_client_ids ( int  tran_index,
CLIENTIDS client_info 
)

Definition at line 2167 of file log_tran_table.c.

References log_tdes::client, ER_FAILED, LOG_FIND_TDES(), NO_ERROR, NULL, NULL_TRANID, and log_tdes::trid.

Referenced by logwr_log_ha_filestat_to_string().

Here is the caller graph for this function:

MVCC_SNAPSHOT* logtb_get_mvcc_snapshot ( THREAD_ENTRY thread_p)
void logtb_get_new_subtransaction_mvccid ( THREAD_ENTRY thread_p,
MVCC_INFO curr_mvcc_info 
)
int logtb_get_new_tran_id ( THREAD_ENTRY thread_p,
LOG_TDES tdes 
)
int logtb_get_number_assigned_tran_indices ( void  )

Definition at line 633 of file log_tran_table.c.

References NUM_ASSIGNED_TRAN_INDICES.

Referenced by lock_victimize_first_thread_mapfunc().

Here is the caller graph for this function:

static void * logtb_global_unique_stat_alloc ( void  )
static

Definition at line 4602 of file log_tran_table.c.

References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), global_unique_stats::mutex, NULL, and pthread_mutex_init.

Referenced by logtb_initialize_global_unique_stats_table().

Here is the caller graph for this function:

static int logtb_global_unique_stat_free ( void *  unique_stat)
static

Definition at line 4624 of file log_tran_table.c.

References ER_FAILED, mutex, NO_ERROR, NULL, and pthread_mutex_destroy.

Referenced by logtb_initialize_global_unique_stats_table().

Here is the caller graph for this function:

static int logtb_global_unique_stat_init ( void *  unique_stat)
static
static int logtb_global_unique_stat_key_copy ( void *  src,
void *  dest 
)
static

Definition at line 4670 of file log_tran_table.c.

References BTID_COPY, ER_FAILED, NO_ERROR, and NULL.

Referenced by logtb_initialize_global_unique_stats_table().

Here is the caller graph for this function:

bool logtb_has_deadlock_priority ( int  tran_index)

Definition at line 4498 of file log_tran_table.c.

References log_tdes::has_deadlock_priority, and LOG_FIND_TDES().

Referenced by lock_demote_class_lock().

Here is the caller graph for this function:

static void logtb_increment_number_of_assigned_tran_indices ( void  )
static

Definition at line 662 of file log_tran_table.c.

References log_Gl, trantable::num_assigned_indices, and log_global::trantable.

Referenced by logtb_allocate_tran_index().

Here is the caller graph for this function:

void logtb_initialize_tdes ( LOG_TDES tdes,
int  tran_index 
)

Definition at line 1600 of file log_tran_table.c.

References log_rcv_tdes::analysis_last_aborted_sysop_lsa, log_rcv_tdes::analysis_last_aborted_sysop_start_lsa, log_tdes::append_repl_recidx, assert, log_rcv_tdes::atomic_sysop_start_lsa, log_tdes::bind_history, log_tdes::block_global_oldest_active_until_commit, log_tran_update_stats::classes_cos_hash, log_tdes::client_id, multi_index_unique_stats::construct(), log_tdes::coord, log_tran_update_stats::cos_count, log_tran_update_stats::cos_current_chunk, log_tran_update_stats::cos_first_chunk, log_tdes::cur_repl_record, db_Disable_modifications, log_tdes::disable_modifications, log_tdes::first_save_entry, log_tdes::fl_mark_repl_recidx, log_tdes::gtrid, log_tdes::gtrinfo, log_tdes::has_deadlock_priority, log_tdes::head_lsa, i, log_2pc_gtrinfo::info_data, log_2pc_gtrinfo::info_length, lob_rb_root::init(), mvcc_info::init(), log_tdes::interrupt, log_tdes::is_user_active, log_tdes::isloose_end, log_tdes::isolation, log_topops_stack::last, log_tdes::lob_locator_root, LOG_2PC_NULL_GTRID, log_tdes::log_upd_stats, logtb_tran_btid_hash_cmp_func(), logtb_tran_btid_hash_func(), LSA_SET_NULL(), log_tdes::m_multiupd_stats, log_topops_stack::max, MAX_NUM_EXEC_QUERY_HISTORY, log_tdes::max_unique_btrees, mht_create(), log_tdes::mvccinfo, NO_ERROR, NULL, NULL_TRANID, log_tdes::num_exec_queries, log_tdes::num_log_records_written, log_tdes::num_repl_records, log_tdes::num_transient_classnames, log_tdes::num_unique_btrees, oid_compare_equals(), oid_hash(), log_tdes::posp_nxlsa, log_tdes::query_start_time, log_tdes::query_timeout, log_tdes::rcv, log_tdes::repl_insert_lsa, log_tdes::repl_records, log_tdes::repl_update_lsa, rmutex_initialize, RMUTEX_NAME_TDES_TOPOP, log_tdes::rmutex_topop, log_tdes::savept_lsa, db_value_array::size, log_topops_stack::stack, log_tran_update_stats::stats_count, log_tran_update_stats::stats_current_chunk, log_tran_update_stats::stats_first_chunk, log_tdes::suppress_replication, log_rcv_tdes::sysop_start_postpone_lsa, log_tdes::tail_lsa, log_tdes::tail_topresult_lsa, log_tdes::topop_lsa, log_tdes::topops, log_tdes::tran_abort_reason, log_tdes::tran_index, TRAN_LOCK_INFINITE_WAIT, TRAN_NORMAL, TRAN_SERIALIZABLE, log_rcv_tdes::tran_start_postpone_lsa, log_tdes::tran_start_time, log_tdes::trid, log_tdes::undo_nxlsa, log_tran_update_stats::unique_stats_hash, db_value_array::vals, log_tdes::wait_msecs, log_tdes::waiting_for_res, log_tdes::xasl_id, and XASL_ID_SET_NULL.

Referenced by logtb_allocate_tdes_area(), and systdes_create_tdes().

Here is the caller graph for this function:

int logtb_invalidate_snapshot_data ( THREAD_ENTRY thread_p)
bool logtb_is_current_mvccid ( THREAD_ENTRY thread_p,
MVCCID  mvccid 
)

Definition at line 3913 of file log_tran_table.c.

References assert, i, mvcc_info::id, LOG_FIND_TDES(), LOG_FIND_THREAD_TRAN_INDEX, log_tdes::mvccinfo, NULL, and mvcc_info::sub_ids.

Referenced by mvcc_is_active_id().

Here is the caller graph for this function:

static bool logtb_is_interrupted_tdes ( THREAD_ENTRY thread_p,
LOG_TDES tdes,
bool  clear,
bool continue_checking 
)
static
bool logtb_is_interrupted_tran ( THREAD_ENTRY thread_p,
bool  clear,
bool continue_checking,
int  tran_index 
)
int logtb_is_tran_modification_disabled ( THREAD_ENTRY thread_p)
static int logtb_load_global_statistics_to_tran ( THREAD_ENTRY thread_p)
static
void logtb_rv_assign_mvccid_for_undo_recovery ( THREAD_ENTRY thread_p,
MVCCID  mvccid 
)

Definition at line 1111 of file log_tran_table.c.

References assert, mvcc_info::id, LOG_FIND_CURRENT_TDES(), MVCCID_IS_VALID, log_tdes::mvccinfo, and NULL.

Referenced by log_rv_undo_record().

Here is the caller graph for this function:

void logtb_set_current_tran_index ( THREAD_ENTRY thread_p,
int  tran_index 
)

Definition at line 5973 of file log_tran_table.c.

References NULL, and thread_get_thread_entry_info().

void logtb_set_current_user_active ( THREAD_ENTRY thread_p,
bool  is_user_active 
)

Definition at line 2069 of file log_tran_table.c.

References log_tdes::is_user_active, LOG_FIND_TDES(), and LOG_FIND_THREAD_TRAN_INDEX.

Referenced by session_check_session(), session_state_create(), and session_state_destroy().

Here is the caller graph for this function:

void logtb_set_current_user_name ( THREAD_ENTRY thread_p,
const char *  user_name 
)

Definition at line 2056 of file log_tran_table.c.

References LOG_FIND_THREAD_TRAN_INDEX, and logtb_set_user_name().

Referenced by ssession_find_or_create_session().

Here is the caller graph for this function:

static void logtb_set_number_of_assigned_tran_indices ( int  num_trans)
static

Definition at line 648 of file log_tran_table.c.

References log_Gl, trantable::num_assigned_indices, and log_global::trantable.

Referenced by logtb_define_trantable_log_latch().

Here is the caller graph for this function:

static void logtb_set_number_of_total_tran_indices ( int  num_total_trans)
static

Definition at line 706 of file log_tran_table.c.

References log_Gl, NUM_ASSIGNED_TRAN_INDICES, trantable::num_total_indices, TR_TABLE_CS_ENTER, TR_TABLE_CS_EXIT, and log_global::trantable.

Referenced by logtb_expand_trantable().

Here is the caller graph for this function:

bool logtb_set_suppress_repl_on_transaction ( THREAD_ENTRY thread_p,
int  tran_index,
int  set 
)

Definition at line 2944 of file log_tran_table.c.

References trantable::area, LOG_FIND_TDES(), log_Gl, NULL, NULL_TRANID, log_tdes::suppress_replication, log_global::trantable, and log_tdes::trid.

Referenced by xlogtb_set_suppress_repl_on_transaction().

Here is the caller graph for this function:

void logtb_set_to_system_tran_index ( THREAD_ENTRY thread_p)

Definition at line 3159 of file log_tran_table.c.

References LOG_SET_CURRENT_TRAN_INDEX, and LOG_SYSTEM_TRAN_INDEX.

Referenced by boot_restart_server(), and xboot_shutdown_server().

Here is the caller graph for this function:

void logtb_set_user_name ( int  tran_index,
const char *  user_name 
)

Definition at line 2036 of file log_tran_table.c.

References log_tdes::client, LOG_FIND_TDES(), NULL, NULL_TRANID, clientids::set_user(), log_tdes::trid, and clientids::UNKNOWN_ID.

Referenced by logtb_set_current_user_name().

Here is the caller graph for this function:

void logtb_slam_transaction ( THREAD_ENTRY thread_p,
int  tran_index 
)
static int logtb_tran_btid_hash_cmp_func ( const void *  key1,
const void *  key2 
)
static

Definition at line 3265 of file log_tran_table.c.

References BTID_IS_EQUAL.

Referenced by logtb_initialize_tdes().

Here is the caller graph for this function:

static unsigned int logtb_tran_btid_hash_func ( const void *  key,
const unsigned int  ht_size 
)
static

Definition at line 3253 of file log_tran_table.c.

Referenced by logtb_initialize_tdes().

Here is the caller graph for this function:

int logtb_tran_prepare_count_optim_classes ( THREAD_ENTRY thread_p,
const char **  classes,
LC_PREFETCH_FLAGS flags,
int  n_classes 
)
static int logtb_tran_reset_cos_func ( THREAD_ENTRY thread_p,
void *  data,
void *  args 
)
static

Definition at line 4332 of file log_tran_table.c.

References COS_NOT_LOADED, and NO_ERROR.

Referenced by logtb_tran_reset_count_optim_state().

Here is the caller graph for this function:

void logtb_tran_reset_count_optim_state ( THREAD_ENTRY thread_p)
int logtb_tran_update_all_global_unique_stats ( THREAD_ENTRY thread_p)
int logtb_tran_update_btid_unique_stats ( THREAD_ENTRY thread_p,
const BTID btid,
int  n_keys,
int  n_oids,
int  n_nulls 
)
static int logtb_tran_update_delta_hash_func ( THREAD_ENTRY thread_p,
void *  data,
void *  args 
)
static
int logtb_tran_update_unique_stats ( THREAD_ENTRY thread_p,
const multi_index_unique_stats multi_stats,
bool  write_to_log 
)
const char* tran_abort_reason_to_string ( TRAN_ABORT_REASON  val)

Definition at line 5612 of file log_tran_table.c.

References TRAN_ABORT_DUE_DEADLOCK, TRAN_ABORT_DUE_ROLLBACK_ON_ESCALATION, and TRAN_NORMAL.

Referenced by logtb_descriptors_start_scan().

Here is the caller graph for this function:

bool xlogtb_does_active_user_exist ( THREAD_ENTRY thread_p,
const char *  user_name 
)
void xlogtb_dump_trantable ( THREAD_ENTRY thread_p,
FILE *  out_fp 
)
int xlogtb_get_mvcc_snapshot ( THREAD_ENTRY thread_p)

Definition at line 3829 of file log_tran_table.c.

References ASSERT_ERROR_AND_SET, logtb_get_mvcc_snapshot(), NO_ERROR, and NULL.

Referenced by log_get_mvcc_snapshot(), and slogtb_get_mvcc_snapshot().

Here is the caller graph for this function:

int xlogtb_get_pack_tran_table ( THREAD_ENTRY thread_p,
char **  buffer_p,
int *  size_p,
int  include_query_exec_info 
)

Definition at line 2199 of file log_tran_table.c.

References trantable::all_tdes, ARG_FILE_LINE, assert, ASSERT_ERROR, CAST_BUFLEN, log_tdes::client, CUB_MAXHOSTNAMELEN, DB_ALIGN, clientids::db_user, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), error(), free_and_init, clientids::get_db_user(), clientids::get_host_name(), clientids::get_login_name(), clientids::get_program_name(), clientids::host_name, i, INT_ALIGNMENT, L_cuserid, lock_get_lock_holder_tran_index(), log_get_clock_msec(), log_Gl, LOG_SYSTEM_TRAN_INDEX, LOG_USERNAME_MAX, clientids::login_name, NO_ERROR, NULL, NULL_TRANID, NUM_TOTAL_TRAN_INDICES, OR_FLOAT_SIZE, OR_INT_SIZE, or_pack_float(), or_pack_int(), or_pack_string(), or_pack_string_with_length(), OR_PACK_XASL_ID, or_packed_string_length(), OR_XASL_ID_SIZE, clientids::process_id, clientids::program_name, qmgr_get_sql_id(), log_tdes::query_start_time, tran_query_exec_info::query_stmt, tran_query_exec_info::query_time, xasl_id::sha1, execution_info::sql_hash_text, xasl_cache_ent::sql_info, execution_info::sql_user_text, log_tdes::state, strdup(), strlen, TR_TABLE_CS_ENTER_READ_MODE, TR_TABLE_CS_EXIT, log_tdes::tran_index, log_tdes::tran_start_time, tran_query_exec_info::tran_time, log_global::trantable, log_tdes::trid, log_tdes::waiting_for_res, XASL_CACHE_SEARCH_GENERIC, log_tdes::xasl_id, XASL_ID_COPY, XASL_ID_IS_NULL, XASL_ID_SET_NULL, xcache_find_sha1(), and xcache_unfix().

Referenced by logtb_get_pack_tran_table(), and slogtb_get_pack_tran_table().

Here is the caller graph for this function:

int xlogtb_kill_or_interrupt_tran ( THREAD_ENTRY thread_p,
int  tran_index,
bool  is_dba_group_member,
bool  interrupt_only 
)
int xlogtb_kill_tran_index ( THREAD_ENTRY thread_p,
int  kill_tran_index,
char *  kill_user_p,
char *  kill_host_p,
int  kill_pid 
)
int xlogtb_reset_isolation ( THREAD_ENTRY thread_p,
TRAN_ISOLATION  isolation 
)
void xlogtb_set_interrupt ( THREAD_ENTRY thread_p,
int  set 
)

Definition at line 2687 of file log_tran_table.c.

References LOG_FIND_THREAD_TRAN_INDEX, and logtb_set_tran_index_interrupt().

Referenced by log_set_interrupt(), qexec_execute_query(), and slogtb_set_interrupt().

Here is the caller graph for this function:

void xlogtb_set_suppress_repl_on_transaction ( THREAD_ENTRY thread_p,
int  set 
)

Definition at line 2928 of file log_tran_table.c.

References LOG_FIND_THREAD_TRAN_INDEX, and logtb_set_suppress_repl_on_transaction().

Referenced by log_set_suppress_repl_on_transaction(), and slogtb_set_suppress_repl_on_transaction().

Here is the caller graph for this function:

Variable Documentation

BOOT_CLIENT_CREDENTIAL log_Client_credential
static

Definition at line 97 of file log_tran_table.c.

Referenced by logtb_set_tdes().

const float LOG_EXPAND_TRANTABLE_RATIO = 1.25
static

Definition at line 95 of file log_tran_table.c.

Referenced by logtb_allocate_tran_index().

const int LOG_MAX_NUM_CONTIGUOUS_TDES = INT_MAX / sizeof (LOG_TDES)
static

Definition at line 94 of file log_tran_table.c.

Referenced by logtb_expand_trantable().

const int LOG_TOPOPS_STACK_INCREMENT = 3
static

Definition at line 96 of file log_tran_table.c.

Referenced by logtb_realloc_topops_stack().

const unsigned int LOGTB_RETRY_SLAM_MAX_TIMES = 10
static

Definition at line 99 of file log_tran_table.c.

Referenced by xlogtb_kill_or_interrupt_tran(), and xlogtb_kill_tran_index().