Runtime Information

The characteristics of the runtime currently active can be obtained by calling the mco_get_runtime_info() API. These characteristics are returned in the mco_runtime_info_t structure which has the following elements. Many of these are boolean (uint1) values (where 1 = MCO_YES and 0 = MCO_NO) indicating whether that feature is enabled or not.

     
    typedef struct mco_runtime_info_t_
    {
    uint1 mco_version_major; /* eXtremeDB version */
    uint1 mco_version_minor; /* eXtremeDB version */
    uint2 mco_build_number;  /* eXtremeDB build number */
    uint1 mco_size_t;       /* sizeof mco_size_t variable, depends on x32/x64 architecture */
    uint1 mco_offs_t;       /* sizeof mco_offs_t variable, depends on x32/x64 architecture */
    uint1 uint4_supported;  /* uint4 datatype support */
    uint1 float_supported;  /* double/float datatype support */
    uint1 mco_checklevel;   /* runtime's checklevel, 0 for non-debug libraries */
    uint1 evaluation_version;       /* Evaluation runtime */
    uint1 large_database_supported; /* Large database support (>4G) for x32 runtime mode */
    uint1 collation_supported;      /* External collations (index comparision) support */
    uint1 heap31_supported;         /* eXtremeDB v3.1 application level heap feature support. (DEPRECATED - value is always 0)*/
    uint1 bin_serialization_supported; /* Binary or XML serialization support */
    uint1 fixedrec_supported;          /* FIXEDREC alloations for constant-size objects support */
    uint1 statistics_supported;        /* Statistic collection enabled */
    uint1 events_supported;            /* Synch/Asynch events support */
    uint1 save_load_supported;         /* Database image save/load support */
    uint1 object_initialization_supported; /* Support of new object fields initialization (instead of zeros) support */
    uint1 direct_index_field_access_supported;  /* Use values of indexed fields from the indexes instead of object bodies 
                                optimization (persistent objects) */
    uint1 multiprocess_access_supported;        /* conventional or shared memory driver linked into the program  */
    uint1 object_repack_supported;              /* Support of dynamic object repack feature. Obsolete. Left for compatibility */
    uint1 transaction_logging_supported;        /* Transaaction Logging (TL) feature support */
    uint1 cluster_supported;                    /* Cluster (CL) feature support */
    uint1 high_availability_supported;          /* High Avalaibility (HA) fature support */
    uint1 ha_multicast_supported;               /* HA Multi-cast support */
    uint1 ha_incremental_replication_supported; /* HA incremental replication support */
    uint1 binary_schema_evalution_supported;    /* Binary schema evaluation support */
    uint1 unicode_supported;                    /* Unicode (nchar/nstring datatype) support */
    uint1 wchar_supported;                      /* WChar (wchar/wstring datatype) support. Required C/C++ runtime */
    uint1 recovery_supported;                   /* Recovery support. Obsolete, left for compatibility */
    uint1 disk_supported;                       /* Support for persistent objects (vtmem/vtdsk runtime) */
    uint1 direct_pointers_supported;            /* Direct- or offset-based pointers in the database (DPTR/OFFS runtime) */
    uint1 persistent_object_supported;          /* Object persistence support */
    uint1 xml_import_export_supported;          /* XML database export/import support */
    uint1 user_defined_index_supported;         /* User-defined index (comparision) support */
    uint1 multifile_supported;                  /* Multi-file persistent storage support */
    uint1 multifile_descriptor_supported;       /* Enable Multi-file descriptor file (mfd-file) support for
                             multi-file persistent storage feature */
    uint1 two_phase_commit_supported;           /* Two-phase commit support */
    uint1 rtree_supported;                      /* Include rtree index implementation code into runtime */
    uint1 tree_based_hash;                      /* tree-based hash implementation (for internal debugging) */
    uint1 tmgr_mvcc_async_cleanup;              /* Value of 1 indicates “delayed  cleanup of unneeded object versions”; value of 0 means cleanup immediately */
    uint1 concurent_disk_btree;                 /* Always on, obsolete, left for compatibility */
    uint1 open_cursor_goto_first;               /* Indicates initial positioning of new cursors to the first element */
    uint1 smart_index_insert;                   /* Pre-sort data records in a voluntaty index creation procedure */
    uint1 btree_leaf_lock;                      /* Fine-grain locking of btree indexes */
    uint1 null_statistics;                      /* Always on, obsolete, left for compatibility */
    uint1 implicit_runtime_start;               /* Always on, obsolete, left for compatibility */
    uint1 bufferized_sync_iostream;             /* Indicates that HA transmission buffer-ization is enabled for synchronization procedure */
    uint1 async_replication;                    /* Asynchronus HA replication enabled */
    uint1 fast_transaction_list;                /* Indicates tree index in transaction list implementation enabled (MURSIW) */
    uint1 extendable_dirty_page_bitmap;         /* Persistent storage's dirty pages map extends */
    uint1 mursiw_policy;                        /* MURSIW TM behavior: 0 - Priority-based transaction queue, 
                1 - Sequential transaction queue, 2 - Global sync, 3 - RW-Lock */
    uint1 sync_capabilities;                    /* Sync. primitives implementation capabilities, bit mask: 
                    1 - single-process, 2 - multi-process capable primitives */
    uint1 char_comparison_policy;               /* Compare chars as: 0 - Default, 1 - as signed, 2 - as unsigned */
    uint4 stream_buffer_size;                   /* Size of buffer used in streaming code in HA / CL / TL etc. 
                    (Also for Stream Reader and Stream Writer functions.) */
    uint1 max_db_instances;                     /* Max. number of database instances supported by the runtime */
    uint1 max_db_name_length;                   /* Max. length of a database name supported by the runtime */
    int   max_extends;                          /* Max. number of extends of database memory area */
    uint4 tl_page_buffer_size;                  /* Size of internal buffers that TL operates */
    uint2 ha_max_replicas;                      /* Max. number of HA replicas at a time */
    uint4 ha_transmit_buffer_size;              /* Size of buffer used in HA to send data from commit, default is 2K */
    uint4 ha_syncronization_buffer_size;        /* HA synchronization stream IO buffer size, default is 2K */
    uint4 default_redo_log_limit;               /* Default size of REDO log length limit, default is 16M */
    uint1 mvcc_critical_sections;               /* Number of critical sections used by MVCC, it is better to be a prime number */
    uint1 mvcc_per_index_locks;                 /* Number of locks used by index, it is better to be a prime number */
    uint2 con_disk_page_cache_size;             /* Size of per-connection page cache. The runtime pre-allocates some 
                        pages to speedup page allocation when needed */
    uint1 small_con_cache_threshold;            /* Use hashed per-connection cache if the 
                        con_disk_page_cache_size > small_con_cache_threshold; 
                        use an array otherwise */
    uint4 extendable_dirty_page_bitmap_limit;   /* Max bitmap size if extendable dirty page bitmap enabled */
    uint1 max_vista_sessions;                   /* Max number of Vista sessions (windows vista only) */
    uint1 concurrent_write_transactions;        /* Does current Transaction Manager support concurrent write transactions or not */
    uint1 encryption_support;                   /* Database encryption enabled */
    const char *mco_revision;                   /* String eXtremeDB version number */
} mco_runtime_info_t;
 

 

mco_version_major The eXtremeDB version major number
mco_version_minor The eXtremeDB version minor number
mco_build_number The eXtremeDB build number
mco_size_t Sizeof mco_size_t variable, depends on x32/x64 architecture

mco_offs_t

Sizeof mco_offs_t variable, depends on x32/x64 architecture

uint4_supported

If True, uint4 data type supported

float_supported

If True, double/float data type supported

mco_checklevel

The runtime's checklevel, 0 for non-debug libraries

evaluation_version

Evaluation runtime

large_database_supported

If True, large database supported (>4G) for x32 runtime mode
collation_supported If True, external collations (index comparison) supported
heap31_supported If True, eXtremeDB v3.1 application level heap feature supported
bin_serialization_supported If True,Binary or XML serialization supported
fixedrec_supported If True,FIXEDREC alloations for constant-size objects supported
statistics_supported If True,Statistic collection enabled
events_supported If True,Synch/Asynch events supported
save_load_supported If True,Database image save/load supported
object_initialization_supported If True, new object fields initialization (instead of zeros) supported
direct_index_field_access_supported If True, use values of indexed fields from the indexes instead of object bodies optimization (persistent objects)
multiprocess_access_supported Conventional or shared memory driver linked into the program
object_repack_supported Support of dynamic object repack feature. Obsolete. Left for compatibility
transaction_logging_supported If True, eXtremeDB Transaction Logging (TL) feature supported
cluster_supported If True, eXtremeDB Cluster (CL) feature supported
high_availability_supported If True,eXtremeDB High Availability (HA) fature supported
ha_multicast_supported If True, HA Multi-cast supported
ha_incremental_replication_supported If True, HA incremental replication supported
binary_schema_evalution_supported If True, Binary schema evaluation supported
unicode_supported If True, Unicode (nchar / nstring data type) supported
wchar_supported If True, WChar (wchar / wstring datatype) supported. Required C/C++ runtime
recovery_supported Recovery support. Obsolete, left for compatibility
disk_supported If True, persistent objects (vtmem / vtdsk runtime) supported
direct_pointers_supported If True, direct- or offset-based pointers in the database (DPTR / OFFS runtime) supported
persistent_object_supported If True, object persistence supported (Allows persistent objects in IM-OFFS runtime)
xml_import_export_supported If True, XML database export / import supported
user_defined_index_supported If True, user-defined index (comparison) supported
multifile_supported If True, multi-file persistent storage supported
multifile_descriptor_supported If True, multi-file descriptor file (mfd-file) supported for multi-file persistent storage feature
two_phase_commit_supported If True, two-phase commit supported
rtree_supported If True, include rtree index implementation code into runtime
tree_based_hash If True, tree-based hash implementation (for internal debugging) supported
tmgr_mvcc_async_cleanup Value of 1 indicates “delayed cleanup of unneeded object versions”; value of 0 means cleanup immediately (represents the status of MCO_CFG_TMGR_MVCC_ASYNC_CLEANUP in file mcocfg.h)
concurent_disk_btree Always on, obsolete, left for compatibility
open_cursor_goto_first Indicates initial positioning of new cursors to the first element
smart_index_insert Pre-sort data records in a voluntaty index creation procedure
btree_leaf_lock Fine-grain locking of tree indexes
null_statistics Always on, obsolete, left for compatibility
implicit_runtime_start Always on, obsolete, left for compatibility
bufferized_sync_iostream Indicates that HA transmission buffer-ization is enabled for synchronization procedure
async_replication Asynchronous HA replication enabled
fast_transaction_list Indicates tree index in transaction list implementation enabled (MURSIW)
extendable_dirty_page_bitmap Persistent storage's dirty pages map extends
mursiw_policy MURSIW TM behavior: 0 - Priority-based transaction queue, 1 - Sequential transaction queue, 2 - Global sync, 3 - RW-Lock
sync_capabilities Synchronization primitives implementation capabilities, bit mask: 1 - single-process, 2 - multi-process capable primitives
char_comparition_policy Compare chars as: 0 - Default, 1 - as signed, 2 - as unsigned
stream_buffer_size Size of buffer used in streaming code in HA / CL / TL etc. (Also for Stream Reader and Stream Writer functions.)
max_db_instances Max. number of database instances supported by the runtime
max_db_name_length Max. length of a database name supported by the runtime
max_extends Max. number of extends of database memory area
tl_page_buffer_size Size of internal buffers that TL operates
ha_max_replicas Max. number of HA replicas at a time
ha_transmit_buffer_size Size of buffer used in HA to send data from commit, default is 2K
ha_syncronization_buffer_size HA synchronization stream IO buffer size, default is 2K
default_redo_log_limit Default size of REDO log length limit, default is 16M
mvcc_critical_sections Number of critical sections used by MVCC, it is better to be a prime number
mvcc_per_index_locks Number of locks used by index, it is better to be a prime number
con_disk_page_cache_size Size of per-connection page cache. The runtime pre-allocates some pages to speedup page allocation when needed
small_con_cache_threshold Use hashed per-connection cache if the con_disk_page_cache_size > small_con_cache_threshold; use an array otherwise
extendable_dirty_page_bitmap_limit Max bitmap size if extendable dirty page bitmap enabled
max_vista_sessions Max number of Vista sessions (windows vista only)
concurrent_write_transactions Does current Transaction Manager support concurrent write transactions or not
rc4_encryption_support Database encryption enabled
mco_revision String eXtremeDB version number