在我的应用程序中,我使用 ehcache 和几个由 terracotta 服务器支持的缓存。
我注意到保存在服务器中的数据大小与在客户端创建缓存管理器实例所需的时间之间存在相关性(大小越大,所需的时间越长)。
我找不到有关创建缓存管理器时实际发生的情况的任何信息。据我了解,只有在实际请求时才会提取数据,而不是在创建管理器时才提取数据,那么开销是多少?
任何有关相关阅读的想法或参考将不胜感激。
在我的应用程序中,我使用 ehcache 和几个由 terracotta 服务器支持的缓存。
我注意到保存在服务器中的数据大小与在客户端创建缓存管理器实例所需的时间之间存在相关性(大小越大,所需的时间越长)。
我找不到有关创建缓存管理器时实际发生的情况的任何信息。据我了解,只有在实际请求时才会提取数据,而不是在创建管理器时才提取数据,那么开销是多少?
任何有关相关阅读的想法或参考将不胜感激。
事实上,当您创建一个 CacheManager 时,它具有参与 terracotta 集群的缓存,您可能会看到它加载的时间有所不同。缓存管理器将与配置中指定的服务器建立连接。如果有任何预缓存加载器,例如扩展类,BootstrapCacheLoader
也会影响加载时间。参与集群的缓存中的缓存一致性属性也会影响加载时间。根据设计,Terracotta 服务器会将命中率最高的数据推送到客户端,以减少本地缓存未命中以及缓存被识别为固定的情况。
首先,CacheManager 与任何数据推送或拉取无关,它创建包含元素作为名称值对的缓存,并保存用于 put/get 和其他操作的数据。实际上 CacheManager 做缓存的创建、访问和删除。