Questions tagged «databases»

6
为什么必须以倒序取消未提交的事务?
我有一个数据库日志,其中有一些事务获胜(它们在崩溃之前已提交)和一些事务(尚未提交)。我们在课堂上了解到,失败者的行为必须向后撤消。 有什么理由倒退吗?谁能给出一个简单的日志示例,其中正向撤消操作将导致错误的结果?

3
谁需要线性化?
我一直在阅读可序列化性和线性化性之间的差异,这两者都是复制系统(如复制数据库)的一致性标准。但是,我不知道在什么情况下需要线性化,即使它比可序列化要强。 您能否提出实际上需要这种强大属性的方案?

2
良好的快照表数据结构可用于内存索引
我正在为一个非常特殊的用例设计内存对象数据库。它是单个编写器,但必须支持有效的并发读取。读取必须隔离。没有查询语言,数据库仅支持: 通过属性/属性集获取对象(例如,可能支持表达式x.count < 5) 获取对象的属性 查询是命令脚本,由任意数量的上述操作组成。数据大小将是<< <<内存,因此大多数属性上的所有对象和索引都应舒适地容纳而无需交换。 我需要的是对象属性索引的数据结构,该数据结构在写入时可以为O(n),不支持写入并发,但理想情况下应支持O(1)快照(可能在写入时进行复制)和O(logN)访问。理想情况下,这将允许读取时具有高并发性,并在版本之间实现最大的结构共享。 我当时在看CTries,并发BST和并发Splay 树,但是我不确定我是否真的在朝正确的方向看。上面的结构非常关注我不关心的插入物的复杂性。 问题:是否有一个现成的数据结构适合我的用例? 编辑:经过更多思考之后,似乎持久的BST / Splay树将起作用。编写者将更新“主”副本,查询将在执行开始时获得该树,并在完成后将其丢弃。但是,我仍然对是否有更好的解决方案感兴趣。

1
固定长度的类似决策树的特征选择,以最大程度地降低平均搜索性能
我有一个复杂的查询用于搜索数据集以查找。每个查询花费平均时间因此线性搜索的总时间为。我可以将查询分解为更简单的子查询q_i并找到 和其中。每个子查询计算速度都快得多,因此总的来说,找到然后使用来找到更快。QQQSSS吨吨·&| S | ħ 约 = { 小号∈ 小号| ∀ q Ĵ(小号)为真} ħ 确切 ⊆ ħ 约q 我ħ 约 Q ħ 确切Hexact={s∈S∣where Q(s) is True}Hexact={s∈S∣where Q(s) is True}H_\text{exact} = \{s \in S \mid \text{where $Q(s)$ is True}\}tttt⋅|S|t⋅|S|t\cdot |S|Happrox={s∈S∣∀qj(s)is True}Happrox={s∈S∣∀qj(s)is True}H_\text{approx} = \{s\in S \mid \forall q_j(s) \text {is True}\}Hexact⊆HapproxHexact⊆HapproxH_\text{exact}\subseteq …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.