mapdb的适用场景介绍


  对于大部分系统来说,mapdb(而且新版本还依赖于kotlin,增加了不少额外的jar)并无太大价值,而且增加了成本。但是如果一级缓存巨大例如数以十GB级别,或占据了整个JVM的1/2以上,mapdb的价值就会体现出来。正如其官网介绍:

  MapDB provides Java Maps, Sets, Lists, Queues and other collections backed by off-heap or on-disk storage. It is a hybrid between java collection framework and embedded database engine.

  使用MapDB存储map后,jvm gc的压力就会大大减少(在大数据中,gc甚至可能停顿超过1分钟,没看错,导致应用完全无响应)。但是因为堆外存储的都是字节形式,所以会增加序列化和反序列化的资源消耗,这个时候二进制而非json的序列化算法就非常重要了,包括性能以及大小,如flatbuffer、kryo。所以,更好的做法是常用的在堆内存储、不常用的在堆外存储,可能这个时候ehcache就是一种更好的选择。

  具体使用可参考:http://www.mapdb.org/down/mapdb-manual-20.pdf,https://labs.consol.de/java-caches/,https://hazelcast.com/resources/benchmark-infinispan/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM