Netflix最近推出了Hollow,一款Java库和工具包,旨在有效缓存不属于“大数据”的数据集。这些数据集可能是电子商务和搜索引擎的元数据,或者是Netflix电影和电视节目的元数据。处理这种数据集的传统方法包括数据存储或串行化,但这可能会有可靠性和延迟问题。Hollow的入门指南中总结了核心概念和命名方法:
\\\\\Hollow管理由单个生产者构建的数据集,并向一个或多个消费者传送以用于只读访问。数据集会随着时间而改变。改变的数据集的时间线可以分为离散的数据状态,每个状态都是那个特定时间点数据的完整快照。
\\生产者和消费者通过在数据状态之间转换的状态引擎来处理数据集。生产者使用写状态引擎,而消费者使用读状态引擎。
\
Hollow取代了Netflix原先的内存数据集框架Zeno。数据集现在用紧凑的、固定长度的、强类型的数据编码表示。这种编码最小化了数据集占用的空间,并将编码记录“打包在JVM堆上合并的可重用内存条中,以避免影响繁忙的服务器上的GC行为。”
\\入门\\
要开始使用Hollow示例,请参考以下POJO:
public class Movie {\long id;\String title;\int releaseYear;\\public Movie(long id,String title,int releaseYear) {\ this.id = id;\ this.title = title;\ this.releaseYear = releaseYear;\ }\}\
\\
上述POJO上简单的数据集可以这样填充:
\\List\u0026lt;Movie\u0026gt; movies = Arrays.asList(\new Movie(1,\"The Matrix\