Berkeley DB(libdb)是一个编程工具包,可为传统的和客户端/服务器应用程序提供嵌入式数据库支持。
伯克利数据库包括b +树,队列,扩展线性散列,固定和可变长度记录访问方法,事务,锁定,日志记录,共享内存缓存,高可用性系统的数据库恢复和复制。
此版本中的新功能:
- 新功能
- 添加了一种称为blob的备用存储格式,可以提高非常大的数据项的读取和更新性能。通过C,C#,C ++和Java API提供的接口。 [#19332]
- 向配置和提供HA SQL应用程序的信息(例如复制组中的站点数量)或配置站点的选择优先级的SQL层添加了几个编译指示。 [#20227]
- 向SQL API添加了一个BDBSQL_CONCURRENT_CONNECTIONS标志,以允许禁用数据库锁定。当数据库中只有读者时很有用。 [#20928]
- 在多个进程中运行Replication Manager时,如果复制进程退出并且有可用的从属进程,则下级进程将自动接管作为复制进程。 [#20969]
- 添加了复制视图/部分复制功能。功能可通过C,C#,C ++和Java API。 [#21062]
- DPL增强功能与JDK7配合使用。 [#21101]
- 为Android JDBC驱动程序添加了加密支持。 [#21129]
- 在许多情况下,使用快照隔离和长时间运行的事务的应用程序将看到缓存的使用减少。这可以通过减少对临时冻结文件的需求来提高性能。 [#21324]
- 将mpool stat字段st_mvcc_resued,st_oddfsize_detect和st_oddfsize_resolve添加到C#。 [#21325]
- 在C#API中增加了支持数据库分区。 [#21474]
- 为存储锁定标识符(如事务ID)或DB_ENV-> lock_id()返回的锁定器ID的锁定结构添加了一条线程缓存。这可以提高使用DB_ENV-> set_thread_count()的程序的并发性。 [#21591]
- 增加了对UTF-8字符的本地化错误消息的支持,并在“程序员参考指南”中添加了有关如何构建本地化库和ICU示例的部分。 [#21280]
- 数据库环境更改:
- 在与目录有关的DB_CONFIG行中,忽略冗余的空格。 [#20158]
- 修复了在尝试打开非数据库文件时的错误,就像它们是数据库一样。如果加密处于活动状态,则会发生断言失败。如果加密未激活,则错误消息“BDB0178加密数据库:无加密标志”将错误地暗示需要密码。 [#21408]
- 访问方法更改:
- 修复了在区域创建已被撤销后可以在区域中分配堆数据页面的错误。 [#20939]
- 修复了堆中的错误,阻止它在混合端配置中工作。 [#21016]
- 当密钥共享公共前缀时,增强Btree访问方法的搜索性能。 [#21216]
- 修正了堆页字节交换的错误。现在堆数据库可以在小端和大端架构之间移动。 [#21387]
- 修正竞争条件,其中被清理过程中的游标可以被另一个控制线程访问。 [#21714]
- 在分区数据库上复制光标的位置将不再导致崩溃。 [#22195]
- 修复关闭连接的光标时的断言错误。 [#22398]
- API变更:
- 更改序列的cachesize,并将DB_SEQUENCE->的增量参数设置为u_int32_t类型而不是int32_t。 [#21552]
- 修正了DB_MPOOLFILE-> set_maxsize API的错误。在以前的版本中,该文件允许增加一个大于配置限制的页面。 [#21867]
- 更改DB-> set_bt_compare,DB-> set_dup_compare和DB-> set_h_compare中的比较功能,以接受额外的'size_t * locp'参数。 [#22235]
- 特定于SQL的API更改:
- 添加了PRAGMA large_record_opt,启用时可以提高非常大的记录的读取和更新性能。 [#19332]
- 增加了对SQL HA应用程序中对数据库的多进程访问的支持。 [#21050]
- 现在可以创建内存数据库,而不传递标志SQLITE_OPEN_CREATE。 [#21456]
- 修复SQL API中的错误,将页面大小设置为64 K会导致错误。还修复了SQL联机备份中的相关内存泄漏。 [#21460]
- 添加bdbsql_log_buffer pragma以允许设置日志缓冲区大小。 [#21471]
- 将SQLite升级到版本3.7.13。 [#21641]
- 修复了在SQL HA应用程序中对数据库进行多访问访问的互斥漏洞。 [#21714]
- 修复了可能导致jdbc构建在使用gnueabi gcc的ARM-Linux上失败的错误。 [#22123]
- 将SQLite升级到版本3.7.16.2。 [#22349]
- 将ADO.NET升级到版本1.0.85.0。 [#22405]
- 特定于Tcl的API更改:
- 在Tcl中支持blob存储API [#19332]
- 特定于Java的API更改:
- 修正了EnvironmentConfig.setCreateDir()没有正确配置环境的错误。 [#21127]
- 修正了Database.verify()没有正确配置数据库的错误。 [#22401]
- 修复了在Java中复制客户机上创建事务时可能会打印的错误信息。 [#21671]
- C#特定的API更改:
- 修复了C#界面的SWIG typemap定义。 [#18509]
- 复制更改:
- 修复了在使用failchk和复制时可能导致的几个断言失败。 [#19765]
- 在内部初始化期间定义的本地站点与较早的定义不一致时提供错误。 [#20870]
- 修正了指定DB_TXN_WRITE_NOSYNC标志时复制客户端正在正确刷新日志的错误。 [#20964]
- 修复了在提供无效nthreads参数值的上一次调用后,DB_ENV-> repmgr_start()方法的有效调用将失败的错误。 BDB3640错误被错误地生成。 [#21289]
- 修正了一个错误,即计算所需的主租约资金的数量,强制交易必须存在于绝大多数复制组网站上。在至少一半的复制组网站上存在交易就足够了,这在某些情况下减少了所需的租赁授权数量。 [#21329]
- 修复了客户端上的一个恢复问题,其中正在检查点被选中,导致恢复到不正确的点。 [#21342]
- 修正了一个错误,可能导致因刚刚获得选举的网站重新请求错误而导致崩溃。 [#21344]
- 修复了如果存在2个站点和各种故障组合的日志不会被归档的错误。 [#21448]
- 修正了一个错误,我们没有检测到DB_TXN_SNAPSHOT与HA客户端一起使用的事实。客户端按照定义只读,因此不允许快照事务。 [#21601]
- 修正了一个错误,确定站点是否是对等体是否被错误地确定。 [#21722]
- 修复了在从其他站点接受过时的组成员网站列表之后,Replication Manager主人可能停止运行的错误。 [#21804]
- 如果重新申请时间短于在客户端站点切换日志文件或执行检查点所需的时间,则减少有时可能会发生的多个数据流。 [#21843]
- 修复了当复制组在主更改期间丢失旧主机添加站点的确认时,修复了从复制组中意外删除站点的错误。 [#21875]
- 修复了在主站完成操作的最后步骤之前,如果删除的站点关闭其连接,则主站点在删除站点时可能会崩溃的错误。 [#22050]
- 修正了当主租约被使用之后,主人遗失之后绝对不会发生的错误。 [#22120]
- 锁定子系统更改:
- 修复了在打开数据库时发生锁定超时时可能导致陷阱的错误。 [#21098]
- 如果没有更多的储物柜空间,修复了可能发生的挂起。 [#21774]
- 修复了在极少的情况下可能导致无效地址故障的死锁检测图形的潜在竞争条件。 [#22261]
- 记录子系统更改:
- 修正了在DB_ENV->打开之前调用DB_ENV-> log_get_config无法正常工作的错误。 [#21359]
- 内存池子系统更改:
- 修正了DB_ENV-> get_cache_max API中的错误,导致它在DB_ENV-> set_cachesize API中返回错误的值,并导致在更改现有缓存大小时导致错误行为的错误。 [#21146]
- 修正了当尝试获取有关文件的信息并且该文件被操作系统扩展时发生的竞争条件。 [#21193]
- 在几个内存池配置功能中更正了错误消息。 [#21779]
- 修复了由Purify运行标识的几个内存泄漏项。 [#22283]
- 互斥体子系统更改:
- 修正DB_ENV-> failchk()和互斥体分配之间的竞争条件。 [#21796]
- 将默认互斥转数限制在200以下,以避免在具有数百个超线程的系统上过度旋转。 [#21463]
- 测试套件更改:
- 增加了对get / set_heapsize的支持。 [#21510]
- 实用程序更改:
- 修复了使用密钥数组调用DB-> set_partition的问题,要求用户保持内存数组有效,直到数据库打开为止。 [#18350]
- 修正了DB_ENV->备份如果未设置DB_BACKUP_FILES并且非数据库文件位于数据目录中的早期停止的错误。 [#21076]
- 修复了db_hotbackup的-F选项的问题,这可能会导致分段违例。也替换了一个不清楚的错误消息。 [#21184]
- 修复了db_hotbackup备份事务日志的三个问题。热备份没有使用任何配置的日志目录,但会尝试在环境中打开日志。第二个修复修正了错误路径,其中内存被错误的功能释放,可能导致保护字节错误。第三个修复程序解决了当只有“-l”时将显示错误的消息的问题。被指定。 [#21313]
- 修正了一个虚假的“没有这样的文件或目录” (ENOENT)在具有空队列数据库的环境中运行db_archive时出错。 [#21541]
- 修正了在btree的较高级别压缩大键的错误。 [#21569]
- 大多数实用程序不再在正在自动初始化的复制客户机上运行。现在返回DB_REP_LOCKOUT错误。 [#21593]
- 修复了btree的db-> verify()函数中的资源泄漏。该错误会减慢验证速度,并可能导致内存不足。 [## 21917]
- 修复了在尝试压缩堆数据库时我们没有返回错误的错误。 [#22063]
- 修复了db_log_verify的错误处理中的错误,如果没有足够的空间创建其临时数据库,则会导致分段违规。 [#22187]
- 配置,文档,示例应用程序,可移植性和构建更改
- 修复odbc配置问题,导致ODBC构建失败与SQL API。 [#21490]
- 默认情况下,在Linux上的SQL API中禁用加密,在Linux,Windows和Android上的SQL和SQL JDBC中完成用于加密的构建选项,以及“安装指南”中三个平台的更新构建过程。 [#21872]
- 使用“-xO2”作为Sun Workshop编译器的默认优化级别。 [#22057]
- 为Unix上的db,sql,jdbc库提供一致的打开/关闭加密方式。 [#22158]
- 示例更改:
- 其他错误修正:
- 修正了一个竞争条件,如果2个进程同时打开同一个SQL数据库,可能导致崩溃。 [#21041]
- 修正了btree比较功能中的断言失败,导致内存被分配给错误的线程。 [#21232]
- 修正了SQL句柄缓存锁定代码中的竞争条件。 [#21265]
- 修正了SQL代码中阻止在定义BDBSQL_FILE_PER_TABLE时创建表的错误。 [#21417]
- 修正了从DB-> get_partition_keys返回的分区键DBT的某些字段可能未被初始化的错误。 [#21474]
- 修复了阻止在DB-> set_create_dir中标识的目录下创建子数据库的错误。 [#21603]
- 修正了dbenv-> mp_mtxcount未正确使用的错误。 [#21768]
- 清理了在64位Windows上导致故障的几个变量初始化问题。 [#21850]
- 改进了Windows上20字节唯一的fileid生成器的随机性。 [#22470]
- 修复了XA事务管理器功能中可能的断言失败。 [#22450]
- 已弃用的功能:
- 不支持Tornado 2.0,不支持6.9以上版本的VxWorks。 [#21877]
将实用工具端口连接到Windows Mobile。 [#21636]
将新的repmgr stat值和新的DB_REPMGR_SITE标志值公开到C#和Java API。 [#21687]
清理许多C#构建警告。 [#22285]
使用--enable-diagnostic --disable-mutexsupport进行配置时,修正了未定义的符号错误(MUTEX_IS_OWNED)。 [#21145]
修正了当应用程序配置了一个对齐方式时,我们没有正确对齐DB_PRIVATE区域中的互斥体的错误。 [#21491]
在压缩具有多个重复数据库的数据库时,删除了潜在的挂起。 [#21975]
修正“不支持的操作码”汇编程序默认为MIPS1指令集的MIPS平台上的错误。 [#22065]
在db_csharp Windows项目中使用调试模式时,添加了编译选项CONFIG_TEST,以便与db Windows项目保持一致。 [#22300]
将C大容量示例连接到C ++。 [#19541]
版本12.1.6.0.20中的新功能:
- 新功能
- 添加了一种称为blob的备用存储格式,可以提高非常大的数据项的读取和更新性能。通过C,C#,C ++和Java API提供的接口。 [#19332]
- 向配置和提供HA SQL应用程序的信息(例如复制组中的站点数量)或配置站点的选择优先级的SQL层添加了几个编译指示。 [#20227]
- 向SQL API添加了一个BDBSQL_CONCURRENT_CONNECTIONS标志,以允许禁用数据库锁定。当数据库中只有读者时很有用。 [#20928]
- 在多个进程中运行Replication Manager时,如果复制进程退出并且有可用的从属进程,则下级进程将自动接管作为复制进程。 [#20969]
- 添加了复制视图/部分复制功能。功能可通过C,C#,C ++和Java API。 [#21062]
- DPL增强功能与JDK7配合使用。 [#21101]
- 为Android JDBC驱动程序添加了加密支持。 [#21129]
- 在许多情况下,使用快照隔离和长时间运行的事务的应用程序将看到缓存的使用减少。这可以通过减少对临时冻结文件的需求来提高性能。 [#21324]
- 将mpool stat字段st_mvcc_resued,st_oddfsize_detect和st_oddfsize_resolve添加到C#。 [#21325]
- 在C#API中增加了支持数据库分区。 [#21474]
- 为存储锁定标识符(如事务ID)或DB_ENV-> lock_id()返回的锁定器ID的锁定结构添加了一条线程缓存。这可以提高使用DB_ENV-> set_thread_count()的程序的并发性。 [#21591]
- 增加了对UTF-8字符的本地化错误消息的支持,并在“程序员参考指南”中添加了有关如何构建本地化库和ICU示例的部分。 [#21280]
- 数据库环境更改:
- 在与目录有关的DB_CONFIG行中,忽略冗余的空格。 [#20158]
- 修复了在尝试打开非数据库文件时的错误,就像它们是数据库一样。如果加密处于活动状态,则会发生断言失败。如果加密未激活,则错误消息“BDB0178加密数据库:无加密标志”将错误地暗示需要密码。 [#21408]
- 访问方法更改:
- 修复了在区域创建已被撤销后可以在区域中分配堆数据页面的错误。 [#20939]
- 修复了堆中的错误,阻止它在混合端配置中工作。 [#21016]
- 当密钥共享公共前缀时,增强Btree访问方法的搜索性能。 [#21216]
- 修正了堆页字节交换的错误。现在堆数据库可以在小端和大端架构之间移动。 [#21387]
- 修正竞争条件,其中被清理过程中的游标可以被另一个控制线程访问。 [#21714]
- 在分区数据库上复制光标的位置将不再导致崩溃。 [#22195]
- 修复关闭连接的光标时的断言错误。 [#22398]
- API变更:
- 更改序列的cachesize,并将DB_SEQUENCE->的增量参数设置为u_int32_t类型而不是int32_t。 [#21552]
- 修正了DB_MPOOLFILE-> set_maxsize API的错误。在以前的版本中,该文件允许增加一个大于配置限制的页面。 [#21867]
- 更改DB-> set_bt_compare,DB-> set_dup_compare和DB-> set_h_compare中的比较功能,以接受额外的'size_t * locp'参数。 [#22235]
- 特定于SQL的API更改:
- 添加了PRAGMA large_record_opt,启用时可以提高非常大的记录的读取和更新性能。 [#19332]
- 增加了对SQL HA应用程序中对数据库的多进程访问的支持。 [#21050]
- 现在可以创建内存数据库,而不传递标志SQLITE_OPEN_CREATE。 [#21456]
- 修复SQL API中的错误,将页面大小设置为64 K会导致错误。还修复了SQL联机备份中的相关内存泄漏。 [#21460]
- 添加bdbsql_log_buffer pragma以允许设置日志缓冲区大小。 [#21471]
- 将SQLite升级到版本3.7.13。 [#21641]
- 修复了在SQL HA应用程序中对数据库进行多访问访问的互斥漏洞。 [#21714]
- 修复了可能导致jdbc构建在使用gnueabi gcc的ARM-Linux上失败的错误。 [#22123]
- 将SQLite升级到版本3.7.16.2。 [#22349]
- 将ADO.NET升级到版本1.0.85.0。 [#22405]
- 特定于Tcl的API更改:
- 在Tcl中支持blob存储API [#19332]
- 特定于Java的API更改:
- 修正了EnvironmentConfig.setCreateDir()没有正确配置环境的错误。 [#21127]
- 修正了Database.verify()没有正确配置数据库的错误。 [#22401]
- 修复了在Java中复制客户机上创建事务时可能会打印的错误信息。 [#21671]
- C#特定的API更改:
- 修复了C#界面的SWIG typemap定义。 [#18509]
- 复制更改:
- 修复了在使用failchk和复制时可能导致的几个断言失败。 [#19765]
- 在内部初始化期间定义的本地站点与较早的定义不一致时提供错误。 [#20870]
- 修正了指定DB_TXN_WRITE_NOSYNC标志时复制客户端正在正确刷新日志的错误。 [#20964]
- 修复了在提供无效nthreads参数值的上一次调用后,DB_ENV-> repmgr_start()方法的有效调用将失败的错误。 BDB3640错误被错误地生成。 [#21289]
- 修正了一个错误,即计算所需的主租约资金的数量,强制交易必须存在于绝大多数复制组网站上。在至少一半的复制组网站上存在交易就足够了,这在某些情况下减少了所需的租赁授权数量。 [#21329]
- 修复了客户端上的一个恢复问题,其中正在检查点被选中,导致恢复到不正确的点。 [#21342]
- 修正了一个错误,可能导致因刚刚获得选举的网站重新请求错误而导致崩溃。 [#21344]
- 修复了如果存在2个站点和各种故障组合的日志不会被归档的错误。 [#21448]
- 修正了一个错误,我们没有检测到DB_TXN_SNAPSHOT与HA客户端一起使用的事实。客户端按照定义只读,因此不允许快照事务。 [#21601]
- 修正了一个错误,确定站点是否是对等体是否被错误地确定。 [#21722]
- 修复了在从其他站点接受过时的组成员网站列表之后,Replication Manager主人可能停止运行的错误。 [#21804]
- 如果重新申请时间短于在客户端站点切换日志文件或执行检查点所需的时间,则减少有时可能会发生的多个数据流。 [#21843]
- 修复了当复制组在主更改期间丢失旧主机添加站点的确认时,修复了从复制组中意外删除站点的错误。 [#21875]
- 修复了在主站完成操作的最后步骤之前,如果删除的站点关闭其连接,则主站点在删除站点时可能会崩溃的错误。 [#22050]
- 修正了当主租约被使用之后,主人遗失之后绝对不会发生的错误。 [#22120]
- 锁定子系统更改:
- 修复了在打开数据库时发生锁定超时时可能导致陷阱的错误。 [#21098]
- 如果没有更多的储物柜空间,修复了可能发生的挂起。 [#21774]
- 修复了在极少的情况下可能导致无效地址故障的死锁检测图形的潜在竞争条件。 [#22261]
- 记录子系统更改:
- 修正了在DB_ENV->打开之前调用DB_ENV-> log_get_config无法正常工作的错误。 [#21359]
- 内存池子系统更改:
- 修正了DB_ENV-> get_cache_max API中的错误,导致它在DB_ENV-> set_cachesize API中返回错误的值,并导致在更改现有缓存大小时导致错误行为的错误。 [#21146]
- 修正了当尝试获取有关文件的信息并且该文件被操作系统扩展时发生的竞争条件。 [#21193]
- 在几个内存池配置功能中更正了错误消息。 [#21779]
- 修复了由Purify运行标识的几个内存泄漏项。 [#22283]
- 互斥体子系统更改:
- 修正DB_ENV-> failchk()和互斥体分配之间的竞争条件。 [#21796]
- 将默认互斥转数限制在200以下,以避免在具有数百个超线程的系统上过度旋转。 [#21463]
- 测试套件更改:
- 增加了对get / set_heapsize的支持。 [#21510]
- 实用程序更改:
- 修复了使用密钥数组调用DB-> set_partition的问题,要求用户保持内存数组有效,直到数据库打开为止。 [#18350]
- 修正了DB_ENV->备份如果未设置DB_BACKUP_FILES并且非数据库文件位于数据目录中的早期停止的错误。 [#21076]
- 修复了db_hotbackup的-F选项的问题,这可能会导致分段违例。也替换了一个不清楚的错误消息。 [#21184]
- 修复了db_hotbackup备份事务日志的三个问题。热备份没有使用任何配置的日志目录,但会尝试在环境中打开日志。第二个修复修正了错误路径,其中内存被错误的功能释放,可能导致保护字节错误。第三个修复程序解决了当只有“-l”时将显示错误的消息的问题。被指定。 [#21313]
- 修正了一个虚假的“没有这样的文件或目录” (ENOENT)在具有空队列数据库的环境中运行db_archive时出错。 [#21541]
- 修正了在btree的较高级别压缩大键的错误。 [#21569]
- 大多数实用程序不再在正在自动初始化的复制客户机上运行。现在返回DB_REP_LOCKOUT错误。 [#21593]
- 修复了btree的db-> verify()函数中的资源泄漏。该错误会减慢验证速度,并可能导致内存不足。 [## 21917]
- 修复了在尝试压缩堆数据库时我们没有返回错误的错误。 [#22063]
- 修复了db_log_verify的错误处理中的错误,如果没有足够的空间创建其临时数据库,则会导致分段违规。 [#22187]
- 配置,文档,示例应用程序,可移植性和构建更改
- 修复odbc配置问题,导致ODBC构建失败与SQL API。 [#21490]
- 默认情况下,在Linux上的SQL API中禁用加密,在Linux,Windows和Android上的SQL和SQL JDBC中完成用于加密的构建选项,以及“安装指南”中三个平台的更新构建过程。 [#21872]
- 使用“-xO2”作为Sun Workshop编译器的默认优化级别。 [#22057]
- 为Unix上的db,sql,jdbc库提供一致的打开/关闭加密方式。 [#22158]
- 示例更改:
- 其他错误修正:
- 修正了一个竞争条件,如果2个进程同时打开同一个SQL数据库,可能导致崩溃。 [#21041]
- 修正了btree比较功能中的断言失败,导致内存被分配给错误的线程。 [#21232]
- 修正了SQL句柄缓存锁定代码中的竞争条件。 [#21265]
- 修正了SQL代码中阻止在定义BDBSQL_FILE_PER_TABLE时创建表的错误。 [#21417]
- 修正了从DB-> get_partition_keys返回的分区键DBT的某些字段可能未被初始化的错误。 [#21474]
- 修复了阻止在DB-> set_create_dir中标识的目录下创建子数据库的错误。 [#21603]
- 修正了dbenv-> mp_mtxcount未正确使用的错误。 [#21768]
- 清理了在64位Windows上导致故障的几个变量初始化问题。 [#21850]
- 改进了Windows上20字节唯一的fileid生成器的随机性。 [#22470]
- 修复了XA事务管理器功能中可能的断言失败。 [#22450]
- 已弃用的功能:
- 不支持Tornado 2.0,不支持6.9以上版本的VxWorks。 [#21877]
将实用工具端口连接到Windows Mobile。 [#21636]
将新的repmgr stat值和新的DB_REPMGR_SITE标志值公开到C#和Java API。 [#21687]
清理许多C#构建警告。 [#22285]
使用--enable-diagnostic --disable-mutexsupport进行配置时,修正了未定义的符号错误(MUTEX_IS_OWNED)。 [#21145]
修正了当应用程序配置了一个对齐方式时,我们没有正确对齐DB_PRIVATE区域中的互斥体的错误。 [#21491]
在压缩具有多个重复数据库的数据库时,删除了潜在的挂起。 [#21975]
修正“不支持的操作码”汇编程序默认为MIPS1指令集的MIPS平台上的错误。 [#22065]
在db_csharp Windows项目中使用调试模式时,添加了编译选项CONFIG_TEST,以便与db Windows项目保持一致。 [#22300]
将C大容量示例连接到C ++。 [#19541]
5.3.21版中的新功能:
- 。主要亮点之一是支持Android平台。 5.3.21是第二个版本。这主要是一个错误修复版本,但它确实包含一个可能非常有趣的功能,支持Oracle JDK7。
评论没有发现