交流第一站

今天下午到了美国,安顿好以后就去旧金山的Terracotta公司做技术交流。会议内容大致如下:
1.我们先介绍了淘宝的整体架构,包括业务层,biz层(TC等),数据层(UIC等),底层中间件(Tair,TFS,CDN等),以及各个层的数据量和机器数。
2.主要侧重做了数据缓存在淘宝的应用介绍,同时也提出了复杂数据结构在前端通过Local Cache的方式缓存对象,存在对于数据存储浪费和反复序列化带来性能损耗的问题。
3.探讨了jboss cache,Terracotta的EHcache,memcached的设计差别。
4.Terracotta的工程师介绍了EHCache的分层设计。

最后双方有了这次交流的结论:1.我们对Terracotta产品感兴趣,同时后续会继续跟进了解,需要时可以和美国工程师交流。2.会尝试使用Terracotta的体验版,比较与其他的分布式缓存的区别。

总的来说,这次主要目的是希望去听一下这种传统意义上的distribute cache的设计思想,同时对于分区,集群负载如何考虑。Terracotta的EHcache主要是利用jvm启动时在heap外分配一块预留内存作为外部缓存,在一个jvm中将需要缓存的对象分别存储在jvm heap memory,no heap memory和disk(可配置)中,通过配置可以设置各个层次的数据内容大小,主要是第一第二层,最后一层其实是通过异步固化来实现内存数据在重启后丢失的问题(避免大量重新构建)。EHCache支持数据分片存储和集群负载分摊和冗余,不过设计和早先我写过的memcached的客户端类似,是通过客户端做集群同步,同时服务端节点是等价的,没有通过jgroup来维护集群组,而是通过他们自己实现的多播http协议和必要的心跳来保证集群节点的管理。

后续可以去了解一下,当然淘宝现在前端迁移到64位后,内存已经不是问题,cpu是瓶颈,不过对于在一个java进程中对heap外内存的高效管理可以学习一下,不过据说这块没有开源,因此这点不是很好,不过后续在看看,也可以多问问交流一下。

你可能感兴趣的:(jvm,数据结构,集群,cache,memcached,存储)