目前海狗的内存使用都是大块大块的(每个field约40~50MB),当查询一个较大的时间范围或者较多的列的时候,由于内存大小限制,要不断的进行LRU,把过期的数据从内存中淘汰出去。
淘汰的数据会被gc回收,也意味着会发生full gc,full gc的时候程序会暂停。
故 新的改进思路是这样的,像memcache那样,预先申请好固定大小块的内存,每次用的时候,直接从固定大小块的内存中取一个过来,标记为有人使用,不用的时候在放回去,标记为空闲,空闲的下次可以被其他对象使用。
但是有可能程序出现异常 ,这个放回去的操作没有执行,故采用WeakHashMap 依然进行回收管理。
申请固定的块会有一些内存的浪费,但是可以减少full gc的次数。
相关推荐
《Mdrill项目在Lucene改进的深度解析》 在大数据检索领域,Lucene作为一款强大的全文搜索引擎库,被广泛应用。然而,随着数据量的爆炸性增长,原生Lucene在处理大规模数据时暴露出一些问题,如内存占用过高、创建...
由于Mdrill已经停止开发,这是最新的版本了。 编译后,超过了文件大小限制,只好把源代码上传了,大家自己动手编译吧。 mdrill是由阿里妈妈开源的一套数据的软件,针对TB级数据量,能够仅用10台机器,达到秒级响应...
mdrill是由阿里妈妈开源的一套数据的软件,针对TB级数据量,能够仅用10台机器,达到秒级响应,数据能实时导入,可以对任意的维度进行组合与过滤。 mdrill作为数据在线分析处理软件,可以在几秒到几十秒的时间,分析...
mDrill中lib缺少的jar文件。 将alimama.part1.rar、alimama.part2.rar两个文件下载下来之后解压出来将里面的lib中的jar复制到mdrill lib中
延云的核心技术团队成员来自阿里巴巴和腾讯,他们是阿里巴巴Mdrill和腾讯Hermes的主要设计者与实践者。这些项目已经在实际应用中处理了超过数万亿条数据,证明了其在大规模数据处理方面的能力。 **2. YDB架构** ...
录信的分布式索引技术经历了阿里巴巴的Mdrill和腾讯的Hermes等项目的实战检验,已经在超过200套生产系统中稳定运行,包括十几个超万亿规模的系统。相比于传统的数据库分库分表方案,如Oracle和MySQL,以及固定分片数...
- **分布式索引**:在HDFS之上构建分布式索引,这是技术的关键,经过阿里Mdrill和腾讯Hermes的验证,支撑超大规模数据库。 - **全栈数据库设计**:同一份数据,多种索引格式,系统自动选择适应的索引,以满足不同...