从广义地角度讲,数据缓存技术的含义广泛,它指对一切广义数据的缓存。从狭义地角度讲,数据缓存技术专指对后台关系型数据库中数据缓存技术。
数据缓存技术的应用模型从广义地角度讲,数据缓存技术是基于 WWW 技术的,是对站点、网页、链接等等许多非结构化或半结构化内容的缓冲;从狭义地角度讲,数据缓存技术是基于传统的数据库应用领域,对索引文件和数据库数据等结构化内容的缓冲。在数据缓存技术的研究领域,根据数据缓存区的应用位置不同可以分为以下三种:客户机端数据缓存系统、集中式数据缓存系统、分布式数据缓存系统1。
客户端数据缓存系统在客户机/服务器模式中,客户端是指在网络中接收数据的一方,一般情况下,网络中每个节点都至少有一个客户端,而数据缓存区就建立在各个客户端的节点当中,对接收的数据进行缓存,这对于那些频繁访问某些特殊数据的应用很有益。其中客户端的数据缓存区可以是一个,只缓冲本地对服务器的访问数据;还可以是在客户端设置多个缓存区,并且它们之间互相联系、相互合作,对于高层用户来说,相当于一个大缓存区,即单端 LAN 级缓存系统,有关客户端缓存系统的典型例子就是“中国铁路客票发售和预定系统”。
集中式数据缓存系统集中式数据缓存系统是在某个关键节点上设置一些数据缓存区,依据设置缓存区的位置不同又可将集中式数 据缓存系统分为服务器端(Server-side caching)和网关代理级(Agent-side caching)的数据缓存系统。
服务器端数据缓存系统是将数据缓存区建立在服务器上,这种缓存系统只适用于局域网;网关代理级的数据缓存系统是在处理数据频繁的网关和代理服务器上设置数据缓存区,它适于局域网和远程网两种情况。服务器端缓存系统按其数据缓存区的呈现方式不同又分为文件级和内存级的缓存系统,前者的缓存区是以文件形式存在,后者是将缓存区建立在内存中。由于在内存中建立数据库应用系统的缓存区难度较大,不容易控制,实现起来困难,所以实际当中绝大多数检索系统都采用前者,即文件式缓存系统。
对于服务器式缓存系统,由于缓存区设在服务器中,该系统并不能真正减少用户对服务器端的访问请求次数,只是改善了服务器内部的输入输出频率,缓解了服务器的内部资源紧张状况。总之,集中式数据缓存技术的算法比较简单,容易控制和实现,只需对服务器和代理服务器中的程序或进程稍加调整即可,其实际应用例子也较多,如各种代理服务器的应用。
分布式数据缓存系统分布式是指数据缓存区在网络中的各个节点都有,这种节点不仅包含服务器,也包含各个客户机,通过合理分配、调度这些共享资源,可以有效地减少网络负载和平均延迟,加快检索时间,减少磁盘访问次数。与传统的缓存管理技术相比,分布缓存技术更能充分利用计算机软、硬件资源,调动一切可利用的手段和技术。关于分布式缓存系统,国内文献中存在多种模型,且大多处于理论探讨阶段。
在这些分布式缓存系统中,最复杂的当属虚拟数据缓存系统。虚拟数据缓存系统是一种特殊的分布式数据缓存系统。它适于那些在物理上较为紧密相连且具有较宽的网络系统,网上的各访问节点的访问行为有较大的相似性。为了提高存储和检索效率,把网络中的这些缓存区耦合成一个大的紧密的数据缓存块,控制和管理系统对这个逻辑上一体的数据缓存块进行管理,从而进一步提高缓存数据的利用率,减少主干网络或远程数据传输量以及刷新消耗。但这种缓存系统涉及问题较多,实现起来非常困难,在数据缓存技术领域还未见到实际的应用。
结 语缓存技术在其他领域已被广泛的使用,对提高存储和检索效率起到了不可替代的作用,但是缓存技术在传统的关系型数据库应用系统中的应用程度还不够深。鉴于此,在本文中对数据缓存技术在关系型数据库应用系统中的应用进行了详细的分析和阐述,同时对缓存一致性问题的解决也给出了相应的几种措施,实际开发当中可根据
具体需要选取相对应的解决方案。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学