数据的一致性(大数据收集数据的方法)
数据一致性通常是指关联数据之间的逻辑关系是否正确完整,数据存储的一致性模型可以看作是存储系统与数据用户之间的一种约定。如果用户遵守这个协议,就可以得到系统承诺的访问结果。
常见的一致性模型有:
一、严格的一致性:
读取的数据总是最近写入的数据。这种一致性只有在全局时钟存在的情况下才有可能,在分布式网络环境下无法实现。
B.序列一致性:
所有用户都以相同的顺序看到对相同数据的操作,但顺序不一定是实时的。
C.因果一致性:
只有有因果关系的写操作需要所有用户以相同的顺序看到,而没有因果关系的写操作是并行进行的,没有顺序保证。因果一致性可以看作是顺序一致性性能的优化,但在实现时很难建立和维护因果图。
d、管道一致性:
因果模型的进一步弱化要求一个用户完成的写操作可以被所有其他用户有序感知,而来自不同用户的写操作不需要保证顺序,就像一个接一个的流水线一样。相对容易实现。
E.弱一致性:
只有访问共享数据结构才需要保证序列的一致性。同步变量的操作顺序一致且全局可见,只有在没有写操作等待处理时才能执行,以保证对关键区域的顺序访问。所有用户在同步过程中都可以看到相同的数据。
F.发布一致性:
弱一致性无法区分用户是要进入临界区还是要离开临界区,所以发布一致性通过两种不同的操作语句来区分。用户在需要写的时候得到对象,写完之后,在发布和获取-发布之间形成了一个临界区。提供发布一致性意味着所有用户都应该能够在发布操作发生后看到它。
G.最终一致性:
当没有新的更新时,更新最终会通过网络扩散到所有的副本点,所有的副本点最终都会保持不变,也就是说用户无法保证在某个时间点之前看到中间过程中新写入的数据。一个关键的要求是可以采用最终的一致性模型:读出过时的数据是可以接受的。
H.增量一致性:
系统将在德尔塔时间内达成协议。在此期间可能会出现不一致的窗口,这可能是由日志传输过程引起的。
下一篇:都是浮云是什么意思(我们都是浮云啥意思)上一篇:人的外貌真的很重要吗?