标题：fastdb实时内存数据库
简介
FastDb是高效的内存数据库系统，具备实时能力及便利的C++接口。FastDB不支持client-server架构因而所有使用FastDB的应用程序必须运行在同一主机上。FastDB针对应用程序通过控制读访问模式作了优化。通过降低数据传输的开销和非常有效的锁机制提供了高速的查询。对每一个使用数据库的应用数据库文件被影射到虚拟内存空间中。因此查询在应用的上下文中执行而不需要切换上下文以及数据传输。fastdb中并发访问数据库的同步机制通过原子指令实现，几乎不增加查询的开销。fastdb假定整个数据库存在于RAM中，并且依据这个假定优化了查询算法和接口。此外，fastdb没有数据库缓冲管理开销，不需要在数据库文件和缓冲池之间传输数据。这就是fastdb运行速度明显快于把数据放在缓冲池中的传统数据库的原因。
fastdb支持事务、在线备份以及系统崩溃后的自动恢复。事务提交协议依据一个影子根页面算法来自动更新数据库。恢复可以执行得非常快，为临界应用提供了高可用性。此外，取消事务日志改进了整个系统的性能，并且使得可以更有效的利用系统资源。
fastdb是一个面向应用的数据库，数据库表通过应用程序的类信息来构造。fastdb支持自动的模式评估，使你可以只需要在一个地方更改-你的应用程序的类。fastdb提供一个灵活方便的接口来从数据库中获取数据。使用一个类SQL的查询语言进行指定的查询。通过一些后关系特性如非原子字段，嵌套数组，用户定义类型和方法，对象间直接引用简化了数据库应用程序的设计并使之更有效率。
尽管fastdb的优化是立足于假定整个数据库配置在计算机的物理内存中，但是也有可能出现使用的数据库的大小超过了系统物理内存的大小的情况，在这种情况下标准的操作系统交换机制就会工作。但是整个fastdb的搜索算法和结构是建立在假定所有的数据都存在于内存中的，因此数据换出的效率不会很高。
官方说明
License
Apache Software License
README from fastdb-3.49
FastDB is embedded main memory database.
It is intended to be used in your C/C++ application to provide 
fast access to persistent data. 
As far as FastDB is embedded database, there is need to start some server which
will handle client's requests. FastDB is just an library which is linked in client 
application and provide access to the persistent objects.
To build FastDB library you will need use the proper makefile.
At Linux and most of other popular Unixes with GCC it is enough to 
do "make". Alternatively you can look for specialized versions of makefile 
included in distributive (like makefile.sun), write you own makefile based
on standard FastDB makefile or customize some existed makefile.
At Windows with Microsoft Visual C++ you can just execute "make.bat" command.
If error message is printed that "nmake" or "cl" command is not recognized, then
MS Visual Studio environment variables are not properly set.
There are two ways to solve the problem:
1. Run from "Microsoft Visual Studio" menu in start panel, choose "Microsoft Visual Studio Tools", 
and in it - "Microsoft Visual Studio Command Prompt". The in this window change directory to FastDB home
and do "make.bat"
2. In "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin" directory there is vcvars32.bat file
(this is the path for VS 2003, but Visual C++ 6.0 has the similar file). Run it to setup environment in current 
window.
You can also use Microsoft Visual Studio project file (fastdb.sln or fastdb.dsw) and open it with Visual Studio.
In config.h you will find various options for choosing yet or another configuration of FastDB.
The preferable way of changing configuration is to edit this file (instead of specifying correspondent 
macros in compiler command line, because in last case there is a risk that you forget to specify somewhere this
option which cause inconsistency between different modules of your applications and/or FastDB library).
You can use SubSQL utility to inspect content of the database as well as for administration of database.
SubSQL can be started concurrently with you application. But please notice, that FastDB uses 
single-writer-multiple-readers database level locking, so if you have performed some modification in SubSQL 
and did perform commit after it, then application may be blocked until you release (commit or abort) transaction
in SubSQL.
FastDB distribution also includes a lot of examples and tests located in examples directory. 
Them are also build by make. These tests are used for three different purposes:
1. Illustrate FastDB programming approach.
2. Regression tests
3. Performance measurement
More information about FastDB can be found in FastDB.htm file which is located in this directory.