Salesforce
在 Jerry 的其他文章曾经提到,Salesforce 里运行时对象均是通过静态存储的元数据,经过 Runtime engine 加工而成的。
Because metadata is a key ingredient of Force.com applications, the system’s runtime engine must optimize access to metadata; otherwise, frequent metadata access would prevent the service from scaling.
既然元数据在 salesforce 平台中扮演了如此重要的角色,那么运行时引擎对元数据的高效访问就成为一个重中之重的话题,如果达不到这个目标,频繁的元数据低效访问将无法保证平台上提供服务的高扩展性 high scalability。
With this potential bottleneck in mind, Force.com uses massive and sophisticated metadata caches to maintain the most recently used metadata in memory, avoid performance-sapping disk I/O and code recompilations, and improve application response times.
Salesforce 平台设计了很多复杂的元数据缓存机制,确保最近访问过的元数据驻留在内存里,避免了磁盘 IO 的开销和代码的重编译,从而确保整个应用的响应时间不会影响元数据访问受到影响。
SAP
ABAP Netweaver 也有类似的设计,把很多需要高效访问的数据特别是应用程序的元数据存储到应用服务器的 shared memory 共享内存里。
使用事务码 SHMM 查看 shared memory 内容:
SAP HANA 里还能通过系统视图 system view M_METADATA_CACHE_STATISTICS 来对元数据的缓存访问进行分析:
要获取更多 Jerry 的原创文章,请关注公众号 ” 汪子熙 ”: