Greenplum Database 管理员指南 6.2.1查询固定的数据,或者外部表的数据有周期性变化,编者认为,通过物化视图来加速外 部表的访问并不是物化视图特有的功能,在外部表上创建物化视图同样需要读取外部表 的全部数据,这与,把数据加载到一张普通的数据表,没有任何差异。而物化视图的刷 新与普通数据表的TRUNCATE并重新INSERT效果相同。 如果一种SQL查询只是在个别语句中用到,可以使用SELECT命令的WITH子句来实 现,可能不需要为此而创建一张很少用到的视图。编者再次提醒,不要乱用视图,更不 完全放 弃了filerep的机制,使用了WAL同步策略,这将从根本上避免了损毁page被同步到 Mirror的情况发生。 GP数据库对数据的修改操作是在内存中完成的,之后,数据会被刷入磁盘,在将 数据刷入磁盘时,数据库会自动计算checksum的值,并与数据一同保存到page中, checksum的值将会作为page的header被一同存储到磁盘上。当从磁盘读取page时, 会根据chec 损 坏影响数据库的正常运行,因为并不是所有的异常都能够被磁盘管理系统或者操作系统 检测到。尤其是机械盘这种机械原理的硬件设备,异常是时有发生的,所以,厂商都会 设置一个经验性的阈值,只有异常比例超过预设的阈值时才被认为设备有故障,而在此 之前,可能已经有很多的异常发生,且已经影响到操作系统和数据库的正常运行。 目前的5版本和6版本,在使用gpinitsystem初始化数据库集群时,都是缺省打0 码力 | 416 页 | 6.08 MB | 1 年前3
Greenplum分布式事务和两阶段提交协议No-Force Force: 事务提交时,所修改的页面必须强制刷回到持久存储中 No-Force: 事务提交时,所修改的页面不需要强制刷回到持久存储中 ■ Steal / No-Steal Steal: 允许Buffer Pool里未提交事务所修改的脏页刷回到持久存储 No-steal: 不允许Buffer Pool里未提交事务所修改的脏页刷到持久存储中 缓冲区管理策略Buffer Management 有更好的性能,但是怎么保证事务的原子性和持久 性? ❏ No-Force: 事务提交,所修改的数据页没有刷回至持久存储,如果发生断电 或者系统崩溃。 ❏ Steal: Buffer Pool中未提交的事务所修改的脏页刷回到持久存储,如果发生 断电或者系统崩溃。 缓冲区管理策略 14 ■ No-Force → Redo Log 事务提交时,数据页不需要刷回持久存储,为了保证持久性,先把Redo Log写 入日志文件。Redo 入日志文件。Redo log记录修改数据对象的新值(After Image, AFIM) ■ Steal → Undo Log 允许Buffer Pool未提交事务所修改的脏页刷回到持久存储,为了保证原子性, 先把Undo Log写入日志文件。Undo Log记录修改数据对象的旧值(Before Image, BFIM) Solution: Logging 15 缓冲区管理策略和事务恢复的关系 Force0 码力 | 42 页 | 2.12 MB | 1 年前3
共 2 条
- 1













