
上QQ阅读APP看书,第一时间看更新
2.7.2 无法控制处理的数据量
应用程序在无法控制大量数据或其允许的处理量时,行为会失常。这种问题经常源于在几个不同架构层无法实现统一控制,如图2-6所示。
用户输入一个查询,请求大量的数据,根本不知道此次请求中所涉及的巨大的数据规模。在逻辑层,没有提供分页或缓存机制来应对巨大的数据量的查询结果。数据访问方法被设置成eager读取方式,因此从所访问的表和所有依赖的表中获得所有相关数据,而不考虑数据量。经过长期使用,被访问的表急剧增长,所以给出的数据量比应用程序能够有效地应对的数据量多得多。结果是,应用程序行为失常:小数据量的查询正常,但在应用程序无法承受大数据量时不稳定。
这种潜在的失常行为无法在应用程序的单层范围内检测到。只有在将用户接口层的输入与数据层的表作比较,且检查逻辑层是否有控制返回数据量的机制时,才能检测到它。因此,我们必须分析应用程序是否有嵌入在其相互交互的层中的适当机制来控制其处理大量数据。