undo-redo需要备忘录模式和命令模式做支撑,之前有学习过了command模式和memento模式的一些基本知识。这里要结合两个模式实现一个undo-redo操作的模块,巩固所学的知识。
系统框图:
命令分发控制器主要有四个任务:
1.系统初始化,加载系统配置参数并把这些数据缓存起来,这些应用程序级别的配置参数可以使用序列化机制,把数据缓存而不用每次去读...
分类:
其他好文 时间:
2014-12-13 17:57:23
阅读次数:
218
在应用程序设计过程中,一些具体操作需要能够支持撤销(undo),例如最近在写的一个文件管理系统。文件的一些基本操作如:rename、copy、cut等,需要支持undo、redo操作来提供更好的用户体验。总所周知,undo、redo操作需要两个模式支撑:备忘录模式(memento)保存对象操作数据状态、命令模式(command)封装用户请求。结合起来可以提供良好的撤销、重做操作。命令模式可以参考上...
分类:
其他好文 时间:
2014-12-12 13:26:52
阅读次数:
167
RAC环境中。每个实例对应相应的redolog集(至少2个)和相应的undo表空间。实例恢复:单实例数据库的实例恢复:redo:所有已经提交和未提交的操作做前滚undo:所有未提交的操作做回滚RAC环境的实例恢复:当节点A实例崩溃后,则节点B自动根据redolog前滚在undo回滚(立即进行),..
分类:
其他好文 时间:
2014-12-12 01:30:11
阅读次数:
206
备忘录模式,翻译成标记模式好一些,因为这种设计模式的目的是为了反悔:GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 在之前的命令模式中,我们曾经提到利用中间的命令角色可以实现undo、redo ...
分类:
其他好文 时间:
2014-12-09 17:31:00
阅读次数:
180
一.Data Guard架构 整个Data Guard体系就是围绕三个关键点展开:日志发送(Redo Send)日志接收(Redo Receive)日志应用(Redo Apply)二.日志发送Primary Database产生的redo日志需要发送到standby Database。发送动作由p....
分类:
其他好文 时间:
2014-12-08 12:13:20
阅读次数:
223
Choosing a good InnoDB log file size is key to InnoDB write performance. This can be done by measuring the amount of writes in the redo logs. You can ...
分类:
数据库 时间:
2014-12-07 21:35:33
阅读次数:
274
Memcached的内存算法: 1. 传统的内存管理方式是,使用完通过malloc分配的内存后通过free来回收内存,这种方式容易产生内存碎片并降低操作系统对内存的管理效率。 2. Memcached利用slab allocation机制来分配和管理内存,它按照预先规定的大小,将分配的内存...
分类:
系统相关 时间:
2014-12-05 18:59:22
阅读次数:
200
- 页是 SQL Server 中数据存储的基本单位,大小为 8KB。- 区是空间管理的基本单位,8个物理上连续的页的集合(64KB)。- 页的类型包括: 1. Data 2. Index 3. Text/Image 4. Global Allocation Map 5. Shared G...
分类:
数据库 时间:
2014-12-05 18:43:44
阅读次数:
356
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要...
分类:
数据库 时间:
2014-12-05 17:19:30
阅读次数:
303
数据库通常借助日志来实现事务,常见的有undo log、redo log,undo/redo log都能保证事务特性,这里主要是原子性和持久性,即事务相关的操作,要么全做,要么不做,并且修改的数据能得到持久化。假设数据库在操作时,按如下约定记录日志:1. 事务开始时,记录START T2. 事务修改...
分类:
其他好文 时间:
2014-12-05 17:14:26
阅读次数:
195