1473630
本人 CNode 新人, GitHub 新人. 第一次在CNode发帖, 第一次在NPM上发开源项目. 求喷, 但请温柔点~
最近工作中遇到问题, 需要一个巨大无比的HashMap, 用来存放日志索引, 直接用 Object 很快 OOM, 后来尝试使用 Buffer 作为 Value 值, 发现无论Buffer大小, 最多也就能撑住 1000多万 key/value 对. (其实知道这种工作不适合 Node, 但还是想找出办法解决这个问题)
通过各种方法找解决方案未果.... 最后决定自己写个HashMap, 专为这种巨量数据用.
地址 : https://github.com/Chunlin-Li/Bigmap
目前第一版, 功能比较简单, 只能 set/get 键值对, 但是觉得用来解决项目中的问题是够用了.
存储空间支持自动增长, 可以选择性的进行 rehash. rehash 可以异步也可以同步. set/get 操作都是同步操作.
速度肯定要比 Object 要慢, 实测慢 5-10 倍左右.
数据库的方案之前确实想过, 但是真的不合适, 每次使用的时候数据都是一次性的, 而且数据库基本都是网络接口, 我不知道有没有可以直接进程通信的方式使用数据库, 加入网络IO的开销觉得实在是有些高了.