运行时控制
运行时选项参数
在 Python 应用程序中初始化 SmartEDB 运行时环境的启动过程是在 exdb.init_runtime() 方法中实现的,该方法必须在执行任何数据库操作之前调用。API调用的典型序列如下所示:
...
is_disk = False
tmgr = 'mvcc'
is_shm = True
is_debug = True
#Load Runtime configuration specified by parameters
exdb.init_runtime(is_disk, tmgr, is_shm, is_debug)
...
exdb.init_runtime() 方法接受以下参数来设置运行时选项以及加载特定的 SmartEDB 库:
is_disk
一个布尔值(True 或 False);若为 True 则加载磁盘(持久存储)版本的库;默认值为 False,即初始化内存运行时
tmgr
指定要使用的事务管理器的字符串;有效值为 'mursiw' 或 'mvcc';默认值为 'mursiw'(MURSIW 事务管理器)
is_shm
一个布尔值(True 或 False);若为 True 则使用共享内存运行时;默认值为 False,即使用常规(“进程内”或“本地”)内存
is_debug
一个布尔值(True 或 False);若为 True 则使用运行时的调试版本;默认值为 False,即使用发布版(优化的“无调试”)运行时
cluster
一个布尔值(True 或 False);若为 True 则加载集群运行时;默认值为 False,即不加载集群运行时。(注意,此标志与 ha 互斥)
ha
一个布尔值(True 或 False);若为 True 则加载高可用性(HA)运行时;默认值为 False,即不加载 HA 运行时。(注意,此标志与 cluster 互斥)
options
指定运行时选项;选项可以通过“options=(选项,值)”元组指定,也可以作为“options=(选项,值)”元组的列表指定(有关实际运行时选项的列表,请参阅参考指南中的 mco_runtime_setoption() 页面)。
DiskCompression
一个布尔值(True 或 False);如果为 True,则使用启用磁盘压缩的底层文件访问库;默认值为 False,即不使用底层磁盘压缩库(请注意,此标志与 UseAsyncIO 互斥)。
UsePosixLibraries
一个布尔值(True 或 False);如果为 True,则使用底层 Posix 同步原语库;默认值为 False,即使用 SystemV 同步原语库。
UseAsyncIO
一个布尔值(True 或 False);如果为 True,则使用异步磁盘 IO 库;默认值为 False,即使用标准同步 IO 库(例如,在 Linux 上为 libmcofu98,在 Windows 上为 mcofw32.lib。请注意,Windows 仅支持同步 IO,因此对于此选项,True 在 Windows 上不是有效选择)。
iot
一个布尔值(True 或 False);如果为 True,则启用 IoT 通信(请参阅主动数据复制页面)。
持久数据库
对于持久数据库,exdb.init_runtime() 方法的调用方式与内存数据库完全相同,只是参数 is_disk=True,可能还有另外两个参数:DiskCompression 和 UseAsyncIO(见上表)。持久数据库应用程序的典型 API 调用序列如下所示:
...
is_disk = True
tmgr = 'mvcc'
is_shm = False
is_debug = True
#Load Runtime configuration specified by parameters
exdb.init_runtime(is_disk, tmgr, is_shm, is_debug)
...
请参考 SDK 示例中的 python/open 以获取示例。