`
tower
  • 浏览: 244855 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

FastDB程序崩溃后的锁清理

阅读更多

本文原创作品,如需转载请注明来源,作者:姜涛, towerjt@gmail.com

 

FastDB在为了保证数据同步,使用了sem作为锁机制,同时还使用了shm作为记录读写操作计数器,所以如果程序异常中止,没有正常的close、commit数据的话,同时访问该库的程序将会被挂死。

在自带的文档中,作者提出如果出现这种情况,把所有使用这个库的程序退出后,重新启动就好了。这个基本能解决问题,在unix/linux环境下,借助fuser把所有使用库的程序停掉即可。

但是,在实际业务中,遇到这种情况,如果把其他程序都停掉是相当不可取的。实际上,作者在database.cpp中有一个watchdog的功 能,只是在默认的情况下,是不编译的。所以,只要修改一下database的编译选项,加上-DAUTO_DETECT_PROCESS_CRASH的 话,就能够解决这个问题。

重新编译后,fastdb会自动起来一个线程,来检测异常退出的情况,如果出现异常退出的话,程序将自动将锁清理

分享到:
评论
1 楼 david.joe2005 2009-09-27  
兄台,你用了fastdb的稳定性如何?

相关推荐

    fastdb心得

    FastDB心得 FastDB是一种高性能的数据库管理系统,它提供了高速的数据存储和查询功能。在本文中,我们将对FastDB的心得进行详细的说明,包括功能归纳、工作原理、部署方法和接口调用方法。 一、功能归纳 FastDB的...

    内存数据库 fastdb源码

    FastDB 实现了锁机制或其他并发控制策略,以确保在并发环境下正确地读写数据。 3. 缓存管理:内存数据库需要高效地利用有限的内存资源。FastDB 可能会采用LRU(最近最少使用)或其他缓存替换策略来管理内存中的数据...

    fastdb,开源的内存数据库

    FastDB采用C++编写,同时也提供了与Java平台的接口,使得它能方便地融入Java应用程序中。 **一、FastDB核心特性** 1. **内存存储**:FastDB将所有数据保留在内存中,这极大地提升了数据存取速度,适合需要快速响应...

    fastdb源码 (一个高效率的内存数据库系统)

    这些非原子字段、嵌套数组、用户自定义类型和方法、直接指向对象内部的指针等后关系性能,简化了数据库应用程序的设计,并且使得它们更加高效。  虽然FastDB的优化是基于整个数据库都存放在机器的物理内存的这个...

    fastdb 3.58开发包

    FastDB提供了C++接口,使得与应用程序的集成变得简单。开发者可以利用丰富的API进行数据的增删改查、事务处理、索引操作等。同时,FastDB还支持脚本语言如Python,通过脚本接口进行数据库操作。 6. **持久化机制**...

    fastdb 2.55 源代码

    在解压后的文件"fastdb"中,你将找到FastDB项目的源代码文件,包括头文件、源文件、示例程序、测试用例等。通过编译和运行这些代码,你可以验证FastDB的功能并进行调试,进一步熟悉其工作原理。对于想要深入研究...

    FASTDB应用开发指南

    不同于传统的客户端/服务器架构,FASTDB要求所有应用程序与数据库共处于同一主机,从而消除了数据传输的延迟,提升了查询执行速度。 #### 二、高速查询执行机制 FASTDB的高效性源于其独特的设计思路: 1. **内存...

    fastdb.rar

    - **数据持久化**:尽管FastDB主要基于内存,但其支持数据的定期持久化到磁盘,确保在系统崩溃后仍能恢复数据。 - **事务支持**:FastDB提供了ACID(原子性、一致性、隔离性和持久性)事务,保障了数据的一致性和...

    fastdb-375源码

    在VC6环境下编译通过,表明FastDB源码兼容老版本的Microsoft Visual Studio编译工具,这有利于那些仍在使用旧开发环境或者需要向后兼容的项目。VC6虽然已经较为老旧,但它在某些场合下仍然被广泛使用,因为其稳定性...

    fastdb数据库最新版本

    FastDB是一款高性能的C++内存数据库系统,专为嵌入式C++应用程序设计。它以其高效、轻量级和强大的特性在众多数据库系统中脱颖而出。作为一个专业的IT大师,让我们深入探讨FastDB的核心特性和使用场景。 1. **内存...

    可以使用的fastdb用例

    可以使用的fastdb用例,方便学习,包括fastdb的安装,和一个简单用例,包括一些资料说明。 fastdb个人使用心得.doc fastdb-361 FastDb 使用说明.txt FastDB.doc FastDB_应用开发指南.docx FastDB+很难得的一篇分析+....

    fastdb3.85

    3. **嵌入式设计**:FastDB作为一款嵌入式数据库,可以直接编译进应用程序,无需独立服务器,降低了系统的复杂度,特别适合于嵌入式设备和分布式系统。 4. **灵活的数据模型**:FastDB支持动态类型,允许用户定义...

    fastDB Csharp实例

    **fastDB Csharp实例详解** `fastDB`是一款高性能、轻...通过理解和掌握上述知识点,开发者能够更好地利用fastDB构建高性能的应用程序。在实际项目中,还需要结合具体需求,灵活运用这些功能,确保系统的稳定和高效。

    fastdb中文

    - **非客户端/服务器架构**: 所有使用FastDB的应用程序必须在同一台主机上运行。 #### 二、FastDB的核心功能与特性 1. **实时性能**:由于其内存驻留特性,FastDB能够提供非常低的延迟和高速的数据访问速度,非常...

    FastDB 很难得的一篇分析

    ### FastDB:深入解析与应用 FastDB是一种高性能、基于C++的数据库系统,它以其独特的设计理念和高效性,在数据库领域占据了一席之地。本文旨在深入解析FastDB的关键特性、接口设计以及数据类型,帮助读者更好地...

    FastDb内存数据库调用源码例子-fastdb.dll(delphi)

    fastdb.dll标准DLLapi, 346k,比较迷你很值的学习。里面有好几个工程,几个模块,外国网站上找的。在中国想找几个简单点的FASTDB例子都难。好多都要编绎,结果又失败。还有更好的欢迎联系我一起学习(Q:527524938)...

    fastdb-arm.tar.gz

    fastdb的代码无法在tx2或者说arm架构的开发板上直接使用,编译也无法通过,我这里是在tx2上编译通过的版本,生成的libfastdb.so在fastdb的src/下的隐藏目录.libs下,生成的4个可执行文件就在src下。请参考我的csdn...

    FastDB和SQLite的性能测试。

    详细介绍在这里: http://blog.csdn.net/RookieRock/archive/2010/12/06/6057338.aspx

Global site tag (gtag.js) - Google Analytics