12. 主存数据库应用模式 -- 嵌入式系统模式
IBM
火车站
智能交通控制系统 电信通信交换系统 大型 IP 路由系统
嵌入式系统
应用 1 应用 2 应用 n
…
API API API
卫星通讯系统
航空航天系统
主存数据库
实时嵌入式操作系统
Copyright@2005, 南开创元 Introduction to 主存数据库 - 12
30. Altibase vs. Disk DBMS
Altibase Disk based RDBMS
Main Memory RDBMS
ion Pro grams
Applicat
Disk-Optimized
RDBMS Excess Features Overhead
Altibase DBMS “Engine”
Engine
Process or Shared Memory
Catalog Page Search Translation Overhead Memory Copy Overhead
Run-
Data Page T ime D
atab
ase
Buffer Mgmt Overhead
Memory Copy Overhead
• 硬盘 RDBMS 的 application 不能直接访问数据库内存缓存中的特定记录, 所以把记录拷贝到内存进行操作。
但 Altibase 的所有的数据都存在于内存,所以直接访问特定记录。
Buffer Management Overhead
• 硬盘 RDBMS 把数据读到内存缓存中使用时 , 需要内存缓存往硬盘写 old pages 和变更数据状态的工作。
Copyright@2005, 南开创元 Introduction to 主存数据库 - 30
31. Altibase vs. Disk DBMS
数据查询算法本身就很简单
( 减少 CPU Time 占有率 )
CPU 减少系统的负荷
CPU
Physical Memory Physical Memory
Database
访问内存最佳的索引结构
( 使用 T-Tree ) Buffer
Tables Indices
数据 caching 没 Database
有多余的数据拷贝 Data Control Redo
files files files
DBS LOGS (Disk I/O) ,减少
Logfile n 了系统负
Backup DB Log
Logfile1 荷, Recovery 时 System tablespace User tablespace
Datafile 1 只发生必需的,最 Table tablespace Index tablespace
Log anchor 少 I/O Rollback tablespace Temporary tablespace
Copyright@2005, 南开创元 Introduction to 主存数据库 - 31
32. Altibase vs. Disk DBMS (内存管理)
硬盘 DBMS 的查询最佳算法的基本在于减少硬盘 I/O 次数
硬盘 DBMS 不能排除数据存在于硬盘的假设,所以使用了假设数据存在于硬盘的
最坏 (worst case) 情况的算法
Altibase 的所有数据都存在于主存中,所以不需要考虑数据存在于硬盘的最坏情况,只需使用
最佳的算法访问数据
已有基于硬盘的 DBMS Altibase Main Memory DBMS
假设数据存在于磁盘 数据常驻主存
复杂的查询算法 简单的查询算法
增加 CPU Time 减少 CPU Time
Copyright@2005, 南开创元 Introduction to 主存数据库 - 32
33. Altibase vs. Disk DBMS (索引算法)
基于硬盘的 DBMS Altibase Main Memory DBMS
B-tree Index T-tree Index
• 逻辑地址变换成物理地址的工作 •无需把逻辑地址变换成物理地址
( 包含的数据页相当于入口的记录 ) ( 直接指向相当于入口的纪录的内存地址 )
B-tree Node T-tree node
B-tree Entry T-tree entry
Key-value RID
memory data block
Data page
Slot
Copyright@2005, 南开创元 Introduction to 主存数据库 - 33
35. Altibase vs. Disk DBMS (不间断服务构成方法)
Altibase Disk Based DBMS
Replication ( 利用 Network) RAC (Disk Clustering)
LG
LG
RAC
LG
LG
构成方法 Replication (OPS)
Disk Disk
Disk Clustering
体现难度 简单 复杂
比 Standalone server 比 Standalone server
性能低下程度
10% 不到 30 ~ 40%
高
低 (Disk Clustering H/W 费用 +
费用
( 无需另外费用 ) Clustering S/W 费用 +
RAC S/W 费用 )
特点 Table 单位 数据库全部
系统扩展性 容易 (N-way) 困难
容易体现多样的系统构成及 DR( 灾难恢复
出现 Cluster 的硬盘故障时没有应付方法 ,
优缺点 ) 系统 . 设计系统时 , 要考虑数据冲突 ( 提供
受到地域的限制 .
相应策略 )
Copyright@2005, 南开创元 Introduction to 主存数据库 - 35
36. Altibase vs. Disk DBMS (总结)
产品区分 Altibase DBMS Disk Based DBMS
数据模型 关系型 关系型
结构 Client/Server Client/Server
系统 服务器结构 Multi-Thread Process
使用了内存最佳访问算法
索引结构 使用 B*Tree
T-Tree
CPU 使用 使用简单的查询算法 使用复杂的查询算法
处理同量事 率 CPU 使用量最小化 CPU 使用率高
务时系统性 只在 Recovery 时发生最低限度的 I/O, Insert, Update, Delete 时发生直接的 Disk I/O ,
能 DISK I/O Insert, Update, Delete 时不发生直接的 Disk 数据 caching(Select) 时进行数据拷贝发生不必
I/O 要的 I/O
INSERT 5,740 350
事务处理性 UPDATE 5,898 323
能 (OLTP)
比较 SELECT 6,500 2,530
DELETE 5,502 340
利用 Network 的复制方法无需添加 RAC(OPS) 结构时 , 必须进行 DISK
体现方式
H/W ,可以容易的体现 Clustering ,体现起来比较复杂
性能 组成服务器的性能下降不到 10% 组成服务器的性能下降 30~40%
不间断服务
需另行购买 RAC(OPS), 还有对硬件的 Disk
费用 无需另外费用
Clustering 及 Clustering S/W 费用
缺点 设计系统时 , 要考虑数据冲突 被 Cluster 的硬盘故障时没有应付方法
服务扩展性 体现方式 利用 N-Way 复制在服务增加时容易扩展 服务增加时 , 可能要更换服务器 H/W
Copyright@2005, 南开创元 Introduction to 主存数据库 - 36
37. Taiwan Chunghwa Telecom 测试结果
测试部门
Telecommunication Laboratories BU8 PS Team
测试实验室环境
SUN E4500 ,2GB main memory, 2CPUs, SUN OS 5.8.
Access 100,000 records which include Number and Char type.
测试实验室结果
测试项目 Disk Based DBMS Altibase3 MMDB
Insert 100,000 records took 100 seconds 1,000 tps 7 seconds 14,286 tps
Update 100,000 records took 115 seconds 870 tps 5 seconds 20,000 tps
Delete 100,000 records took 123 seconds 813 tps 3 seconds 33,333 tps
Truncate Table took 2 seconds 1 second
Copyright@2005, 南开创元 Introduction to 主存数据库 - 37
38. Altibase 与商用磁盘数据库性能比较
测试环境: Server: sun E-450
memory: 4GB
CPU: 2 * 400Mz
测试部门:韩国 Altibase 公司和韩国三星电子
比较产品: Altibase DBMS 和 Disk Based DBMS
测试工具: TPC-B, TPC-H Benchmark
性能标准: TPS (Transaction Per Second) ,每秒事
务处理量
Copyright@2005, 南开创元 Introduction to 主存数据库 - 38
46. Altibase 复制特色
复制的内部结构
• 线程结构 与服务同步 & 减少处理开销
• 包括管理器,发送器,接收器线程 使占用的内部资源最小化
Altibase DBMS Server A REP_AB Altibase DBMS Server B
AB_Sender AB_Receiver
Active-Active Rep_Manager
AB_Receiver AB_Sender
Rep_Manager
Active-StandbyRep_Manager
AC_Sender AC_Receiver
REP_AC Altibase DBMS Server C
Copyright@2005, 南开创元 Introduction to 主存数据库 - 46
47. Altibase 复制技术
Point-To-Point Replication
Server A Server B Server C
Altibase Altibase Altibase
Table A 에
Insert, Update, Delete Table A Ta bl e A 의 X LO G 전 송 Table A Ta bl e A 의 XLO G 전송 Table A
Transaction 발생
※ Why Server B does not send XLOG transmitted from Server A to Server C?:
Because infinite loop can occur if Table A was replicated between Server A and Server C.
Solution using N-Way Replication
Server B Server A Server C
Altibase Altibase Altibase
Table A Ta bl e A 의 X LO G 전송 Table A Ta bl e A 의 XLO G 전송 Table A
If Table A is replicated among Server A, B, C Table A 에
Server A(Active) → Server B(Standby), Insert, Update, Delete
Server A(Active) → Server C(Standby) Transaction 발생
Copyright@2005, 南开创元 Introduction to 主存数据库 - 47
48. 如何使用 Altibase 复制技术
Altibase 的 DB 复制接口 与 SQL 是相同的结构 , 简单、容易使用 .
运营系统时 , 可以随意控制复制的 Create, Start, Stop ,所以容易运营及管理系统和服务 .
设计时尽可能的考虑到了客户的复制运营及管理的容易性 .
create replication rep1 复制对象 Creation
with remotehost, portno remotehost, portno
from localtableA to remotetableA,
from localtableB to remotetableB, …;
drop replication rep1; 复制对象 Drop
alter replication rep1 start; 复制 Start
alter replication rep1 stop; 复制 Stop
alter replication rep1 sync; 与被复制的服务器同步数据后 , Start
alter replication rep1 quickstart; 不考虑之前状况,只考虑当前复制点
Start – 快速 Start
alter replication rep1 drop table 停止复制后 , 删除复制 Table
( 对复制不能执行 DDL 语句 )
from user_name.table_name to user_name.table_name;
alter replication rep1 add table 停止复制后 , 添加复制 Table
( 对复制不能执行 DDL 语句 )
from user_name.table_name to user_name.table_name;
alter replication rep1 add host ‘remotehost’, portno; 停止复制后 , 添加 Host
alter replication rep1 drop host ‘remotehost’, portno; 停止复制后 , 删除 Host
alter replication rep1 Set host ‘remotehost’, portno; 停止复制后 , 变更 Host
Copyright@2005, 南开创元 Introduction to 主存数据库 - 48
49. Altibase Replication 配置方案
基于 DBMS 的功能划分
Altibase DBMS 2
( 当前 )
Retrieval
表 A 事务
Altibase DBMS 1 Active-Active 表 B 处理
发生
( 当前 ) 复制
Insert/Update 表 n
/Delete 数据
表 A
事务 表 B
Altibase DBMS 3
表 n Activ (Active)
e-Act Retrieval
复 制 ive 表 A 事务
表 B 处理
表 n
可扩展系统
• 通过基于 DB 服务器功能的划分很容易提供可伸缩性 .
• Altibase DBMS 1( 当前 ) -> Altibase DBMS 2( 当前 )
※ 很容易通过添加 Altibase DBMS 服务器来扩展服务来解决服务的 retrieval 负载增加的问题 .
• 很容易解决复制的数据冲突问题 .
Copyright@2005, 南开创元 Introduction to 主存数据库 - 49
50. Altibase Replication 配置方案
基于业务的功能划分
共享表管理服务器 A 专门的业务 A
DBMS 服务器
C D A
和共享表相关 Active-Standby E 共享表 : A
的 Insert/Update A C D 业务表 : C,D,E
/Delete 数据 B E
Active-Active
B 专门的业务 B
DBMS 服务器
A F G B
B Active-Standby
H
共享表 : B
F G 业务表 : F,G,H
H
• 分别管理共享表,将共享表按业务特性分类来配置灵活的系统 .
※ 共享表 : 被大多数应用频繁访问的表,也就是热表 (Hot Table).
Copyright@2005, 南开创元 Introduction to 主存数据库 - 50
51. 如何使用 Altibase 复制技术
Primary-Standby Architecture
Application Application Application
Program Program Program
Replication Sync &
Replication
Altibase Altibase Altibase Altibase Altibase Altibase
Prim a ry Serv er St a ndby Serv er Prim a ry Serv er Sta ndb y Serv er Prim a ry Server Stand by Server
Active-Active Architecture
Application Program Separate Business T1 into
Transaction Group T11 and T21
T11 T21
Modified data of T11
Altibase Altibase
Modified data of T21
Activ e Serv er 1 Activ e Serv er 2
P rim ary Serv er fo r T11 P rim ary Serv er fo r T21
Sta ndb y Serv er for T21 Sta ndb y Serv er for T11
Copyright@2005, 南开创元 Introduction to 主存数据库 - 51
52. 如何使用 Altibase 复制技术
Primary-Multi Standby Architecture
Application Application
Program Program
Replication Replication
Altibase Altibase Altibase Altibase Altibase Altibase
Sta ndby Serv er P rim ary Serv er St and by Serv er Sta ndb y Serv er P rim ary Server Fa il ure Sta ndby Server
Replication
Primary-Multi Standby Architecture using Propagator Server
Application Application Altibase
Program Program
Replication Replication Replication Replication
Altibase Altibase Altibase Altibase Altibase Altibase
P rim a ry Serv er P ro pa ga t or Serv er St a nd by Serv er P rim a ry Serv er P ro pa ga tor Server
Altibase
Stand by Server
Copyright@2005, 南开创元 Introduction to 主存数据库 - 52
Database loads involve index creation – index creation requires sorting. You need the fastest possible sorting algorithms and sort performance generally.
종합적인 시사점 및 결과 각 아이템 및 카테고리별로 상황 , 현상 혹은 원인을 설명하고 , 총체적으로 나타나는 결과를 보여주는 예