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 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 -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 |