��ǰλ�ã�首页 > 集团企业

集团企业

放松时序约束

����:ʱ��:2019-04-13
最大限度地减少系统中的时序约束。如果要添加dong以使项目或对象处于用户操作之间的状态,请放宽业务原则中的约束。由于大多数RDBMS的ACID属性,扩展具有时序约束的系统非常困难。 TR TR 例如,当你需要添加关于东方时,让项目从用户看到它们直到用户购买它们,并认真考虑它们。虽然某些特殊情况可能使客户失望,但弥补客户比不能扩大规模要容易得多。 TR TR 在数学和机器学习(人工智能)领域,存在一组近似满足问题(CSP),其中对象必须满足某些约束。 CSP通常非常复杂,需要启发式搜索和组合搜索方法的组合来解决它们。两个经典的CSP难题是数独游戏和地图着色问题。数独游戏的目标是填充一个9平方的大网格。每行每列有9个单元格。大九平方网格可分为小九平方网格。在每个小的9平方网格中,填写从1到9的数字,这样大九个方块的每一行和每列中的数字都不会重复。地图着色的问题是为地图着色,以使相邻区域具有不同的颜色。 TR TR TR CSP问题还源自时序约束满足问题(TCSP),其中变量表示事件,约束表示两个事件之间可能的时序关系。这些问题的目标是确保变量之间的约束并确定满足约束的各种场景。在变量上实施局部一致性可确保问题中的所有节点,弧和路径满足大约East。机器学习和计算机科学中的许多问题可以建模为TCSP,例如机器视觉,调度,楼层布局设计,SaS系统中的用例等,可以看作是TCSP。 TR TR 公共SaS应用程序中的时序约束的示例是用户购买项目时。用户浏览该项目,将其放入购物车并结算,所有这些都需要一些时间。有些人认为,考虑到绝对最佳的用户体验,无论该项目是否存在,都必须在整个过程中保持统一的状态。为此,您需要在用户关闭页面之前将数据库中的项目标识为“已扣留”,或丢弃购物车或结算。如果我们网站上的用户不多,这种方法简单实用。用户在将它们添加到购物车之前浏览100个或更多项是常见的。我们的一位客户声称,在将商品添加到购物车之前,他们的用户正在查看500多个搜索结果。在这种情况下,我们的应用程序可能需要多个数据库的读取副本,允许更多人检索和浏览项目而不是购买项目。这会产生问题,并且大多数  RDBMS难以保持节点之间的所有数据完全一致。即使数据库或数据库的读取副本在数据一致性方面只有几秒钟,也存在特殊情况,例如两个用户想要查看项目,而它只有最后一个。我们稍后会解决这个问题,但首先让我们看看为什么数据库会导致这个问题。 TRTR 使RDBMS难以扩展分布的属性是一致的。 CAP定理,也称为Brewer定理,以计算机科学家  Eric  Brewer命名,它描述了在分布式环境中设计应用程序的三个核心要求,但这三个要求无法同时满足。这三点需要用缩写CAP表示。 TR TR 一致性(一致性) Q 客户端发现一组操作同时发生。 TR 可用性(可扩展性) Q 任何操作在收到计划的响应后终止。 TR TR 分区容忍性(分区  Tolerance) Q 即使单个组件不可用,操作也会完成。 TR   该问题的解决方案称为BASE,它是解析CAP体系结构的首字母缩写,通过宽松,一致的ACID表示基本可用(基本 可用),软状态( 软 状态)和最终一致性(最终 一致)属性。 ,您可以在可扩展性方面获得更大的灵活性。使用BASE架构可以使数据库最终保持一致。这可能只需要几分钟甚至几秒钟,但在前面的示例中,我们看到如果应用程序希望能够“锁定”数据,即使几毫秒的不一致也会导致问题。 TR TR 放宽时序约束可以重新设计我们的系统,以便它可以实现最终。用户刚刚查看了某个项目,无法保证该项目仍然存在。如果数据放在购物车中,应用程序仅锁定数据,并且在主写入副本或主数据库中执行锁定操作。由于我们具有ACID属性,我们可以确保如果交易完成,则可以将项目的记录标记为“已锁定”,然后用户可以继续购买,因为该项目已为其保留。对于浏览该项目的其他用户,可能存在也可能不存在。 TRTR 经常发现时间限制的另一个应用领域是转移物品(货币)或在用户之间进行通信。在单个数据库中,很容易确保用户A将钱,消息或项目转移到用户B的帐户。跨多个数据副本分发数据使得难以保持这种一致性。该问题的解决方案是在即时传输操作上没有时间。在看到用户B转移给他的钱之前,让用户A等待几分钟是非常简单的。双方转移的原因通常是物品不会在系统中同步转移。显然不同于同步通信,例如聊天。为您的网站设计系统添加时序约束很容易,因为它似乎提供了最佳的客户体验。但是,在添加时间之前,最好考虑由此引起的长期问题,因为这种东方可能会使系统扩展变得困难。 TR TR
���ű�ǩ: