动态库
在安装根目录下的\target\bin.so
目录中有许多许多动态链接库(.dll
)。可以在运行时加载到C/C++、Java、Python和.NET应用程序中。
正如静态库,动态库中每个库都包含调试和发布模式两种形式。下述仅显示发布模式文件名。
核心库
为了动态链接,以下两个库是必需的:
mcoplatform.dll - 包含系统独立层和基本体。
mcoloader.dll - 包含一个用于SmartEDB核心的加载器,以选择合适的运行时变量动态加载。
下列库为运行时变量,可以通过以下方式之一调用:
- 在调用
mco_roruntime_start()
之前显式调用****mco_core_load()
。 - 通过在
mco_rent_start_ex()
的调用中隐式调用****mco_core_load()
。 - 通过在
mco_roruntime_start()
调用中,检测到的以下环境变量:MCO_STORAGE
- 必填参数;IM
- 加载内存运行时;MEMORY
- 加载磁盘运行时。
MCO_TRANSMGR
- 可选参数;MURSIW
- 加载MURSIW事务管理器;null
- 否则将加载MVCC事务管理器。
MCO_MEMDEV
- 可选参数;SHARED
- 加载共享内存设备;null
- 加载传统内存设备。
MCO_RUNTIME_PATH
- 覆盖SmartEDB库搜索路径。
运行时变量库包括:
- mcocore_mursiw.dll - 传统内存数据库的MURSIW事务管理器。
- mcocore_mursiw.shm.dll - 共享内存数据库的MURSIW事务管理器。
- mcocore_disk_mursiw.dll - 使用传统内存存储元数据的持久数据库MURSIW事务管理器。
- mcocore_disk_mursiw.shm_.dll - 使用共享内存作为元数据的持久数据库MURSIW事务管理器。
- mcocore_mvcc.dll - 传统内存数据库的MVCC事务管理器。
- mcocore_mvcc_shm.dll - 共享内存数据库的MVCC事务管理器。
- mcocore_disk_mvcc.dll - 使用传统内存存储元数据的持久数据库MVCC事务管理器。
- mcocore_disk_mvcc_shm_.dll - 使用共享内存作为元数据的持久数据库MVCC事务管理器。
可选特性库
除了上面列出的库外,还可以使用mco_core_load()
动态加载以下库以支持可选功能:
序列数据类型支持
这些库提供基本的序列数据类型操作,如读取和插入序列数据。所有使用sequence数据类型的应用程序必须链接到以下库之一。
- mcoseq.dll - 序列数据类型API支持。
- mcoseqrle.dll - RLE压缩序列数据类型API支持。
分析函数库
如果除了基本的序列操作外,还需要对序列进行操作的数学和统计函数,则应用程序必须链接以下库之一。
- mcoseqmath.dll - 对数列进行运算的数学和统计函数。
- mcoseqrlemath.dll - 用RLE压缩对序列进行运算的数学和统计函数。
主动复制结构支持
主动复制结构包提供以下库。所有使用ARF (IoT) API的应用程序必须与以下两者链接。
- mcoiotcomm.dll - 物联网通信库。
- mcoiotrepl.dll - 物联网复制库。
事务日志接口
- mcolog.dll - 事务日志API实现。所有使用事务日志API的应用程序必须链接。
注意
所有使用事务日志API的应用程序必须与文件系统包装器库链接(请参阅上面的持久数据库支持部分)。
备份
- mcobackup.dll - 使用增量备份特性在持久介质上备份和恢复数据库的应用程序。
序列化
- mcoseri.dll - 使用
save/load
(保存和加载)在持久介质上存储和检索数据库或类快照程序提供全内存数据库的序列化。
注
此功能不需要文件系统包装器。save/load
特性通过应用程序将数据传输到操作系统。
统一数据访问
- mcouda.dll - 对于使用统一数据访问功能(UDA接口)的应用程序需要配置。
HTTP数据库查看器
- mcoews.dll - HTTP服务器实现。
- mcohv.dll - HTTP数据库查看器(不具备SQL功能)。
数据库加密
数据库加密功能目前已集成到mcoplatform.dll
(mcoplatform \_debug.dll
)中。
扩展库
除了以上库之外,下列为扩展模块的动态库。
Python库
在\target\bin\Python
目录中为Python提供了额外的磁盘管理器DLL文件。其中包含以下Python动态加载库:
- smartedb_disk_mursiw.pyd - 使用常规内存的持久和混合数据库MURSIW事务管理器。
smartedb_disk_mursiw_shm.pyd
- 使用共享内存的持久和混合数据库MURSIW事务管理器。smartedb_disk_mvcc.pyd
- 使用常规内存的持久和混合数据库MVCC事务管理器。smartedb_disk_mvcc_shm.pyd
- 使用共享内存的持久和混合数据库MVCC事务管理器。
Java库
根据数据库在运行时加载以下Java DLL。参数设置:
smartedbjni_mursiw.dll - 使用常规内存的内存数据库应用程序的MURSIW事务管理器。
smartedbjni_mursiw_shm.dll - 使用共享内存的内存数据库应用程序的MURSIW事务管理器。
smartedbjni_disk_mursiw.dll - 使用常规内存的持久性和混合型数据库应用程序的MURSIW事务管理器。
smartedbjni_disk_mursiw_shm.dll - 使用共享内存的持久性和混合型数据库应用程序的MURSIW事务管理器。
smartedbjni_mvcc.dll - 使用常规内存的内存数据库应用程序的MVCC事务管理器。
smartedbjni_mvcc_shm.dll - 使用共享内存的内存数据库应用程序的MVCC事务管理器。
smartedbjni_disk_mvcc.dll - 使用常规内存的持久性和混合型数据库应用程序的MVCC事务管理器。
smartedbjni_disk_mvcc_shm.dll - 使用共享内存的持久性和混合型数据库应用程序的MVCC事务管理器。
.NET库
.NET框架包装器实现了大部分的SmartEDB内存数据库功能,
- smartedb4net.dll - 包含以下所有.NET框架应用程序需的基本库。
此外,根据数据库,在运行时加载以下.NET框架动态库之一。参数设置:
- smartedb4net_mursiw.dll - 使用常规内存的内存数据库应用程序的MURSIW事务管理器。
- smartedb4net_mursiw_shm.dll - 使用共享内存的内存数据库应用程序的MURSIW事务管理器。
- smartedb4net_disk_mursiw.dll - 使用常规内存的持久性和混合型数据库应用程序的MURSIW事务管理器。
- smartedb4net_disk_mursiw_shm.dll - 使用共享内存的持久性和混合型数据库应用程序的MURSIW事务管理器。
- smartedb4net_mvcc.dll - 使用常规内存的内存数据库应用程序的MVCC事务管理器。
- smartedb4net_mvcc_shm.dll - 使用共享内存的内存数据库应用程序的MVCC事务管理器。
- smartedb4net_mvcc_shm.dll - 使用常规内存的持久性和混合型数据库应用程序的MVCC事务管理器。
- smartedb4net_disk_mvcc_shm.dll - 使用共享内存的持久性和混合型数据库应用程序的MVCC事务管理器。
扩展库
除了基本库之外,安装根目录下的/target/bin.so
目录还包含依赖于扩展模块(如果可用)的其他内容。
提示
与基本库一样,本机C库以调试模式和发布模式两种形式提供。下列扩展模块库只显示发布模式文件名。
SQL支持
SmartEDB SQL提供了几个库,xSQL可以根据命令行参数或配置文件参数按需加载这些库。
mcosql_mursiw.dll - 对于使用常规内存的内存数据库MURSIW事务管理器。
- 通过指定命令行选项
-mursiw
加载。 - 或配置参数
transaction_manager: mursiw
加载。
- 通过指定命令行选项
mcosql_mursiw_shm.dll - 对于使用共享内存的内存数据库MURSIW事务管理器。
- 通过指定命令行选项
-mursiw -shared
加载。 - 或配置参数
transaction_manager: mursiw
和shared_memory : true
加载。
- 通过指定命令行选项
mcosql_disk_mursiw.dll - 对于使用传统内存的混合存储数据库MURSIW事务管理器。
- 通过指定命令行选项
-mursiw -disk
。 - 或配置参数
transaction_manager: mursiw
和disk_support : true
加载。
- 通过指定命令行选项
mcosql_disk_mursiw_shm.dll - 对于使用共享内存的混合存储数据库MURSIW事务管理器。
- 通过指定命令行选项
-mursiw -shared -disk
。 - 或配置参数
transaction_manager: mursiw
,shared_memory : true
和disk_support : true
来加载。
- 通过指定命令行选项
mcosql_mvcc.dll - 对于使用常规内存的内存数据库MVCC事务管理器。
- 通过指定命令行选项
-mvcc
加载。 - 或配置参数
transaction_manager: mvcc
加载。
- 通过指定命令行选项
mcosql_mvcc_shm.dll - 对于使用共享内存的内存数据库MVCC事务管理器。
- 通过指定命令行选项
-mvcc -shared
加载。 - 或配置参数
transaction_manager: mvcc
和shared_memory : true
加载。
- 通过指定命令行选项
mcosql_disk_mvcc.dll - 对于使用传统内存的混合存储数据库MVCC事务管理器。
- 通过指定命令行选项
-mvcc -disk
。 - 或配置参数
transaction_manager: mvcc
和disk_support : true
加载。
- 通过指定命令行选项
mcosql_disk_mvcc_shm.dll - 对于使用共享内存的混合存储数据库MVCC事务管理器。
- 通过指定命令行选项
-mvcc -shared -disk
。 - 或配置参数
transaction_manager: mvcc
,shared_memory : true
和disk_support : true
来加载。
- 通过指定命令行选项
具有SQL功能的HTTP查看器
可用于在HTTP查看器中提供SQL功能。
- mcohv_sql.lib - 带有SQL接口的HTTP查看器。
提示
如果使用这个库,还必须链接其他SQL支持库。
远程SQL
- mcorsql.lib - 远程SQL应用程序。
高可用性支持
- mcoha.lib - 高可用性API。
传输层库可选择以下任一库或者自定义。
- mconwpip.lib - PIPE传输层。
- mconwtcp.lib - TCP/IP传输层。
- mconwudp.lib - UDP 传输层。
- mcoiter.lib - 用于发布所有数据库更改的详细信息以及副本端操作。
更多请参阅高可用性API开发文档
集群支持
mcocluster.lib - 集群核心实现(在高可用性包内提供)。
mcocltcp.lib - TCP/IP传输层。(可自定义)
性能监视器
性能监控API可以在自定义应用程序中实现(只包括mcoperf
库),或者同时使用两个库(mcoperf
与mcohvperf
)提供的HTTP实现。
- mcoperf.lib - 性能监视器实现。
- mcohvperf.lib - HTTP接口。
Web服务
使用Web服务的C和C++应用程序必须与以下库链接。
- mcorest.lib - 嵌入式Web服务REST API。
- mcoews.lib - HTTP服务器实现。
公网访问Web服务的应用程序将链接以下库及其依赖项。