exdb
在 Python 应用程序中初始化 SmartEDB 运行时环境的启动过程是在 exdb.init_runtime() 方法中实现的,必须在执行任何数据库操作之前调用此方法。exdb.init_runtime() 方法接受以下参数来设置运行时选项以及加载特定的 SmartEDB 库。
参数
is_disk
这是一个布尔值(True 或 False)。当设置为 True 时,系统将加载磁盘(持久存储)版本的库;默认情况下,此值为 False,意味着我们将初始化内存运行时。
tmgr
这里需要指定一个字符串来选择事务管理器。您可以选择 'mursiw' 或 'mvcc',其中 'mursiw' 是默认选项,即 MURSIW 事务管理器。
is_shm
这也是一个布尔值(True 或 False)。如果设置为 True,那么我们将使用共享内存运行时;默认情况下,我们使用常规的“进程内”或“本地”内存。
is_debug
同样是一个布尔值(True 或 False)。若设置为 True,则会启用调试版本的运行时;默认情况下,我们会使用发布版(已优化且无调试信息)的运行时。
cluster
这个布尔值(True 或 False)决定了是否加载集群运行时。默认情况下不加载集群运行时。请注意,此选项与 ha 互斥,不能同时启用。
ha
另一个布尔值(True 或 False),用于决定是否加载高可用性(HA)运行时。默认情况下不加载 HA 运行时。请注意,此选项与 cluster 互斥,不能同时启用。
options
您可以通过“options=(选项, 值)”元组或多个这样的元组列表来指定运行时选项。有关详细信息,请参阅参考指南中的 mco_runtime_setoption() 页面。
DiskCompression
这是一个布尔值(True 或 False)。如果设置为 True,我们将使用带有磁盘压缩功能的底层文件访问库;默认情况下不使用磁盘压缩库。请注意,此选项与 UseAsyncIO 互斥。
UsePosixLibraries
这是一个布尔值(True 或 False)。如果设置为 True,我们将使用底层 Posix 同步原语库;默认情况下使用 SystemV 同步原语库。
UseAsyncIO
这是一个布尔值(True 或 False)。如果设置为 True,我们将使用异步磁盘 IO 库;默认情况下使用标准同步 IO 库。例如,在 Linux 上为 libmcofu98,在 Windows 上为 mcofw32.lib。请注意,Windows 仅支持同步 IO,因此对于此选项,True 不是有效的选择。
iot
这是一个布尔值(True 或 False)。如果设置为 True,将启用 IoT 通信(详情请参阅主动数据复制页面)。
典型的 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() 方法的调用方式与内存数据库完全相同,只是参数 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 以获取示例。