了解紧凑型缓存存储格式
ArcGIS Server 10.0 引入了紧凑型缓存存储格式,这种新方法将地图缓存切片归组到大文件中,而不是以单独的文件形式存储切片。分组存储切片具有以下优势:
- 减少了文件数,因此更易于复制缓存。
- 降低了缓存所占的总磁盘空间。
- 由于在切片创建过程中减少了磁盘 I/O,因此切片的创建速度通常会更快。
- 降低了网络流量,因此采用多机部署方式创建切片时可提高可伸缩性。
紧凑型缓存的工作原理
紧凑型缓存将多个切片同时分组到一个大文件(称为包)中。一个包最多包含 16,384 个切片。因此,一个缓存包含数十或数百个文件,而不是数千或数百万个文件。如果查看磁盘上的紧凑型缓存,可以看到扩展名为 .bundle 的包文件。还会看到一些扩展名为 .bundlx 的相应索引文件。
小的缓存在每个级别可以只有一个包。更常见的情况是,包边界与某个地理部分相交,这样,一个级别就会有多个包(虽然在地理部分很小时,包可能不会包含所有的 16,000 个切片)。大的缓存通常会包含多个包。
包的边界由切片方案的原点确定,并且不可调整。以下内容仅供参考:在邻近地区/街道级别比例为 1:4096 时,一个完整的包大约覆盖美国东部一个中等规模县的面积。
通过包创建切片
在切片创建过程中,每个包都会被分配给一个 ArcSOC.exe 进程(正在运行的服务实例),由该进程为包创建切片。两个 ArcSOC.exe 决不会同时处理同一个包。
如果您的缓存很小,或者您正在基于小要素边界执行缓存,您可能会发现可用的 ArcSOC.exe 进程得不到充分利用。这是因为 ArcSOC.exe 数多于可用的包数,因此,有些 ArcSOC.exe 必然处于空闲状态。
如果由于未充分利用 ArcSOC.exe 而导致大缓存的切片创建时间延长,您需要使用更大的要素来分解缓存作业。
紧凑型缓存的更新原理
在更新紧凑型缓存中的切片时,并不会重新创建整个包。而是更新 4096 x 4096 像素(无抗锯齿功能)或 2048 x 2048 像素(带抗锯齿功能)的细粒度面积。在 ArcGIS 文档中,有时将此面积单位称为“超级切片”。
从包获取切片
ArcGIS 客户端(包括 Web API)知道如何读取紧凑型缓存格式所生成的包文件。在 Web 环境下,客户端会请求服务器提供切片的具体级别、行和列。ArcGIS Server 收到请求后会返回包中的相应切片。
ESRI 并未公开发表包的内部架构。如果您自己编写了逻辑代码,用于从虚拟目录提取切片,则应继续使用“松散型”格式,此格式以单个文件形式存储每个切片,并且也是 ArcGIS Server 9.3.1 及更早版本中的唯一格式。