全内存数据库管理系统
SmartEDB 数据库管理系统最初被设计并优化为一种内存数据库系统(IMDS),支持直接数据操作。在创建数据库管理系统时,其设计和实现方式决定了它要么是内存数据库系统,要么是磁盘数据库管理系统。这一初始选择会影响嵌入到数据库系统代码中的基本优化策略。(关于为何这很重要,更深入的解释请参阅 McObject 白皮书《真正的内存数据库请站出来》中的相关内容。)SmartEDB 是一种可靠的内存数据库系统,在全球范围内被应用于从军事系统到核电站等各种不能容忍故障的系统中。
内存数据库性能
优化磁盘数据库就是要减少磁盘 I/O,因此其设计会利用额外的 CPU 周期和额外的内存来减少或消除 I/O。相反,内存数据库系统(IMDS)的定义就是消除所有磁盘 I/O。换句话说,其优化主要是为了在给定的处理能力水平下实现最高性能。对于内存数据库而言,重点在于减少对 CPU 周期的需求。由于内存是 IMDS 的存储,因此减少内存开销(即除存储数据外消耗的 RAM)也是一个关键目标。 在嵌入式平台(例如 ARM、PowerPC)上使用 SmartEDB 时,典型的写入访问时间在几微秒或更短,只读访问时间则低于微秒。在工作站或服务器平台上使用时,性能也低于微秒。(访问此页面可阅读我们的内存数据库基准测试之一。) 当 SmartEDB 用作嵌入式数据库系统时,引擎是可重入的,允许多个执行任务或线程并发访问。在多任务平台(例如 Linux 和 VxWorks RTP)上使用时,数据库可以创建在共享内存中,以供多个进程并发访问。SmartEDB 事务支持 ACID 属性,确保数据完整性。SmartEDB 还可以作为客户端/服务器数据库系统运行。客户端应用程序可以是本地的(在与 SmartEDB 服务器相同的系统上执行),也可以是远程的(在通过 TCP/IP 连接到 SmartEDB 服务器系统的不同系统上执行)。系统可以是异构的,例如服务器在 PowerPC 上,而远程客户端在 x86 上。
更快的混合数据存储
与其它即时数据库系统不同,SmartEDB 能够融合磁盘数据库系统和内存数据库系统的优点。换句话说,SmartEDB 数据库可以是全内存型、全持久型,或者同时包含内存表和持久表。这种无与伦比的灵活性使开发人员能够根据需要定制数据管理,从而优化应用程序的速度和持久性。系统开发人员可以在性能、成本效益、功耗和节省物理空间的数据存储硬件之间做出明智的权衡。
可扩展的数据管理
SmartEDB 数据库可以通过水平分区(“分片”)实现可扩展性。此功能通过将数据和数据处理分配给多个 SmartEDB 服务器实例,利用了多台服务器和/或多核 CPU 的处理能力。SmartEDB 的分布式查询引擎将客户端应用程序与拓扑结构的细节隔离开来。当此技术应用于多台服务器时,单台服务器对内存数据库大小的限制便得以克服。换句话说,如果单台服务器的最大内存容量为 768GB,那么五台服务器的总容量为 3.84TB。 SmartEDB 提供了不同的分布式数据库选项以满足不同的目标。此表总结了每个分布式数据库选项的主要用途和特点(其中一些选项可以组合使用,例如分片、集群和高可用性)。了解有关 SmartEDB 分布式数据管理的更多信息。
