可扩展XML协作编辑与撤销及P2P系统视图选择与放置
1. 可扩展XML协作编辑与撤销
在XML协作编辑中,为了实现可扩展性和撤销功能,提出了一种支持撤销操作的可扩展XML协作编辑方法。
1.1 操作与效果计数器
存在多个副本(Replica 1、Replica 2、Replica 3),有插入(Add)、删除(Del)和撤销(undo)等操作。通过效果计数器来记录操作的效果,例如:
Add(idp,id)
Del(id,ts)
undo(Add(idp,id))
undo(Del(id,ts))
在渲染XML文档时,若属性
@add
的计数器至少为1,且属性
@del
的所有值的效果计数器至多为0,则该边可见。若边为文本,将其值写入XML文档;若边可见但非文本,则写入对应标签和属性。需计算属性的当前值,即值列表中最新的未撤销值。
1.2 正确性
为确保数据类型是CRDT(冲突无感知复制数据类型),保证最终一致性,需证明所有操作可交换。对于无撤销功能的XML CRDT,确保一致性的唯一要求是在插入节点后接收删除操作;有撤销功能时,此约束不再必要,删除操作会直接生成墓碑(tombstone)。
1.3 垃圾回收
- 无撤销的XML CRDT :根据Thomas Write Rule,需要为属性设置墓碑。
-
有撤销的XML CRDT
:需要记录对XML文档应用的每个操作的信息。可设计垃圾回收机制,每个副本
i维护一个向量vi,记录从其他副本(包括自身)收到的最后时钟时间戳,计算这些时钟的最小值mi,并定期将其发送给其他副本。每个副本根据收到的最小值维护另一个向量Vi,其最小值为Mi。若通信是FIFO的,副本可知道所有副本都已收到时间戳小于等于Mi的所有潜在消息,因此可安全移除时间戳小于等于Mi的墓碑。
可安全清除的元素包括: -
属性值
v,v.timestamp < Mi且v.effect ≤0 -
属性值
v,v.timestamp < Mi,且存在v′,v.timestamp < v′.timestamp < Mi且v′.effect > 0 -
无值或所有值
v满足v.timestamp < Mi且(v.effect ≤0 或 v.value = nil)的属性 -
存在删除值
d,d.timestamp < Mi且d.effect > 0,或添加值a,a.timestamp < Mi且a.effect ≤0的边
以下是垃圾回收流程的mermaid流程图:
graph TD;
A[每个副本维护vi向量] --> B[计算mi];
B --> C[发送mi给其他副本];
C --> D[每个副本维护Vi向量];
D --> E[计算Mi];
E --> F[移除时间戳<=Mi的墓碑];
2. P2P系统视图选择与放置
P2P系统在数据共享方面越来越受欢迎,但在P2P数据仓库系统中使用物化视图的工作有限。提出了一种动态选择有效视图集并将其放置在P2P系统关键点的方法,以实现良好查询性能和低视图维护成本的最佳组合。
2.1 问题提出
在数据仓库和云计算系统中,合适的物化视图可显著提高查询性能。传统的视图选择是静态的,存在查询工作量不可预测和难以快速调整等弱点,因此发展了动态视图选择方法。
在P2P环境中,视图物化问题可分为视图选择和数据放置两个子问题。具体贡献如下:
- 提出一个综合考虑查询处理成本、视图维护成本和网络传输成本的成本模型,用于选择候选视图。
- 提供一种视图方法,决定哪些候选视图进行物化,并在达到存储限制时,用更有益的视图替换较不有益的视图。
- 提出两种数据放置策略:
- 隔离策略(Isolated Policy):将视图放置在最常访问的位置附近。
- 自愿策略(Voluntary Policy):尽量使替换已物化视图的损失最小,近似理想策略。
2.2 视图选择问题
视图是由查询定义的派生关系,分为物化视图(extent已计算并持久存储)和虚拟视图。在P2P系统中,假设有
N
个对等节点,每个节点
nj
有存储
Bj
和查询工作量
Q
,每个查询
Qji
有访问频率
fji
,节点对之间有数据传输成本
Ct(ns, nt)
。问题是动态物化一组视图
M
,并将其放置在合适节点,以提供高查询性能和低视图维护成本,同时考虑空间约束和节点间的传输成本。
使用多视图物化图(Multi View Materialization Graph,MVMG)框架表示要物化的视图,该图是一个二分有向无环图(DAG),由AND节点(操作节点)和OR节点(视图节点)组成。MVMG增量构建,使用规则识别公共子表达式,同时考虑图中每个节点的元数据(如频率)。
视图选择方法分三步进行:
1. 选择候选视图进行物化。
2. 决定哪些视图进行物化或非物化。
3. 将物化视图放置在合适的对等节点上。
以下是视图选择方法的步骤列表:
1.
选择候选视图
:从视图查询中预选一组候选视图
VC
,这些视图应是对指定集群的对等节点最有益的视图,通过以下公式计算:
-
goodness(VC) = ∑v∈VC goodness(v, VC)
最大
-
| VC |
最小
2.
最终选择
:候选视图有物化的潜力,但因存储空间有限,只有对集群对等节点足够有益的视图才会被物化。若候选视图
v
要在对等节点
pj
物化,若
pj
有足够空间,则立即物化;若达到存储限制,只有当
v
比已存储的视图更有益时才会被物化。
2.3 成本分析
在MVMG中,定义了以下成本相关参数:
| 参数 | 含义 |
| ---- | ---- |
|
Cm(v)
| 视图
v
物化时基于基关系
r
的变化的视图维护成本,考虑增量维护,包括计算差异和传输到指定集群的成本 |
|
Ce(v)
| 视图
v
在其数据起源的计算成本,即平均处理时间 |
|
Cn(pi →pj)
| 两个对等节点
pi
和
pj
之间的网络传输成本,即每单位数据传输的成本 |
|
Ct(v, pi →sp)
| 从数据起源
pi
获取视图
v
到集群对等节点
sp
的总成本,包括处理和传输成本,
Ct(v, pi →sp) = Ce(v) + Cn(pi →sp) * size(v)
,其中
size(v)
是物化视图
v
的估计大小 |
集群对等节点为MVMG中的每个视图
v
分配一个值
goodness(v)
,计算公式为:
CS(v) = ∑q∈Qv f(q) * Ct(v, pi →sp)
CM(v) = ∑r∈Iv fu(r) * Cm(v)
goodness(v) = CS(v) - CM(v)
其中,
Qv
是使用视图
v
的查询集,
Iv
是用于生成视图
v
的基关系实例集,
f(q)
是查询
q
在集群内所有对等节点的频率。
可扩展XML协作编辑与撤销及P2P系统视图选择与放置
3. 视图选择策略详解
3.1 预选择阶段
预选择阶段的主要目的是筛选出那些能够为系统带来实际效益的视图。具体来说,一个视图被认为是有益的,当且仅当它在显著降低查询处理成本的同时,不会大幅增加视图维护成本。
此阶段会从视图查询中预选一组候选视图
VC
。这些候选视图需要满足两个条件:
-
goodness(VC) = ∑v∈VC goodness(v, VC)
达到最大值,这意味着该组视图的整体效益要尽可能高。
-
| VC |
达到最小值,即在保证效益的前提下,尽量减少候选视图的数量。
这个过程可以用以下mermaid流程图表示:
graph TD;
A[获取视图查询] --> B[计算每个视图的goodness值];
B --> C[筛选出满足条件的视图组成VC];
C --> D[确保goodness(VC)最大且| VC |最小];
3.2 最终选择阶段
经过预选择得到的候选视图,虽然有物化的潜力,但由于存储空间的限制,并非所有候选视图都会被物化。只有那些对集群对等节点足够有益的视图才会被选中进行物化。
具体操作如下:
1. 假设候选视图
v
要在对等节点
pj
进行物化。
2. 检查
pj
的存储空间:
- 如果
pj
有足够的空间来存储视图
v
,则立即将视图
v
物化在
pj
上。
- 如果
pj
的存储已达到限制,需要比较视图
v
与已存储视图的效益。只有当视图
v
比已存储的视图更有益时,才会将视图
v
物化在
pj
上,同时可能需要移除一些较不有益的视图。
以下是最终选择阶段的步骤列表:
1.
确定候选视图和目标节点
:明确要物化的候选视图
v
和目标对等节点
pj
。
2.
检查存储空间
:查看
pj
的剩余存储空间是否足够存储
v
。
3.
决策物化操作
:
- 若空间足够,直接物化
v
。
- 若空间不足,比较
v
与已存储视图的效益,决定是否物化
v
并移除部分视图。
4. 数据放置策略
在确定了要物化的视图后,需要将这些视图放置在合适的对等节点上,以实现良好的查询性能和低视图维护成本。前面提到了两种数据放置策略,下面详细介绍。
4.1 隔离策略(Isolated Policy)
隔离策略的核心思想是将视图放置在最常访问的位置附近。这样做的好处是可以减少数据传输的距离,从而降低网络传输成本,提高查询性能。
例如,假设某个视图
V
在节点
n1
上的访问频率最高,那么根据隔离策略,就会将视图
V
放置在节点
n1
或者其附近的节点上。
4.2 自愿策略(Voluntary Policy)
自愿策略的目标是尽量使替换已物化视图的损失最小,近似理想策略。在实际操作中,当需要替换已物化的视图时,会综合考虑多个因素,如视图的使用频率、维护成本、存储成本等,以确保替换操作对系统的影响最小。
以下是两种数据放置策略的对比表格:
| 策略名称 | 放置原则 | 优点 | 缺点 |
| ---- | ---- | ---- | ---- |
| 隔离策略 | 将视图放置在最常访问的位置附近 | 降低网络传输成本,提高查询性能 | 可能导致某些节点存储压力过大 |
| 自愿策略 | 尽量使替换已物化视图的损失最小 | 对系统的整体影响较小 | 决策过程相对复杂,计算成本较高 |
5. 总结与展望
通过上述方法,我们实现了可扩展XML协作编辑中的撤销功能,以及P2P系统中视图的动态选择和合理放置。在XML协作编辑方面,通过效果计数器和垃圾回收机制,保证了系统的一致性和可扩展性;在P2P系统视图处理方面,通过成本模型、视图选择策略和数据放置策略,提高了查询性能并降低了视图维护成本。
然而,还有一些工作需要进一步开展。例如,需要进行实验来验证这些方法在处理大量数据时的实际可扩展性和效率。此外,研究XML数据在DTD或XSD类型下的复制问题也是一个具有挑战性的任务,有待后续深入探索。
整个流程可以用以下mermaid流程图总结:
graph LR;
A[XML协作编辑] --> B[操作与效果计数器];
B --> C[正确性保证];
C --> D[垃圾回收];
E[P2P系统视图处理] --> F[视图选择问题];
F --> G[成本分析];
G --> H[视图选择策略];
H --> I[数据放置策略];
J[总结与展望] --> A;
J --> E;
综上所述,这些方法为XML协作编辑和P2P系统视图处理提供了有效的解决方案,但仍有改进和完善的空间。
超级会员免费看
1512

被折叠的 条评论
为什么被折叠?



