TSL设计的全局缓存是一套极为高效的内存缓存机制,其以COPYONWRITE的模式实现了设置和写入完全分离,允许存在多份使用中的版本,使得更新数据和读数据无冲突。
TSL的全局缓存主要是为了对公共类的数据进行全局优化,尤其是对那些准备效率低下的数据,例如存贮在数据库内的数据,又或者是需要经过大的计算的数据。这些数据的全局缓存化可以使得应用不再关注于数据准备的开销上。
TSL的全局缓存对于用户而言是一种新的数据类型,但这种数据结构和TSL原生数据结构完全相同,是在TSL的原生数据类型上扩展而成的,我们的开发使其不仅仅支持TSL的标准算符,例如四则运算,同时也支持矩阵计算,还支持子矩阵等算符,不仅仅如此,全局缓存还支持SELECT,绝大多数TSL的函数对于全局缓存也是透明的,在计算的使用上,用户完全不需要理会一个数据到底是全局缓存还是其他的类型,除非真的需要(例如缓存是否过期等)。
TSL的全局缓存对于用户的透明还有一个特性,我们对全局缓存的数据类型进行更改的时候(不是设置),系统会自动将用户使用的全局数据的引用实例化,也就是会将全局数据的相关内容复制到用户的运行环境中,然后进行修改的操作。
TSL的全局缓存主要应用于数组和矩阵两种类型,也支持其他简单类型,但仅仅对数组和矩阵两种类型采用引用的方式,而其余数据类型取出的时候就进行了实例化。
由于我们对TSL全局缓存的透明处理,因为普通函数无法分辨全局缓存还是标准数据类型,除非采用特殊的函数。