Elasticsearch网站上的最新博客文章正在讨论其新的1.4 beta版本的功能。
我对它们如何利用文件系统缓存非常好奇:
最新版本增加了对文档值的支持。本质上,doc值提供与内存中字段数据相同的功能,但是它们在索引时间写入磁盘。他们提供的好处是他们只占用很少的堆空间。从磁盘而不是从内存读取Doc值。虽然磁盘访问速度很慢,但是doc值受益于内核的文件系统缓存。与JVM堆不同,文件系统缓存不受32GB限制的约束。通过将字段数据从堆转移到文件系统缓存,可以使用较小的堆,这意味着可以更快地进行垃圾回收,从而获得更稳定的节点。
在此版本之前,doc值比内存中的现场数据要慢得多。此版本中的更改显着提高了性能,使其几乎与内存中的字段数据一样快。
这是否意味着我们可以操纵文件系统缓存的行为,而不是被动地等待来自操作系统的影响?如果是这样,我们如何在正常的应用程序开发中利用文件系统缓存?说,如果我正在编写Python或Java程序,该怎么做?