GOPA 放弃 SQLite

目前支持3种任务信息持久化,
是默认的持久化数据库,主要原因是小巧和内嵌,不用安装外部依赖,直接就能用。
但是确定也很明显,不支持大量数据下的聚合,100w 条任务日志,只是简单的要统计每个域名的 url 次数,已经就打不开任务列表了。而 MySQL 也基本上类似,除了增加一个外部依赖之外。Elasticsearch 作为持久化存储相比数据库,主要缺点在于数据更新上面的效率差很多,尤其是需要大量频繁的获取任务的属性,Elasticsearch 经常 500。也尝试过用 kv 数据库来存,但是缺点就是没法做到很方便的进行查找和聚合。

回到原点,GOPA 的目标是轻量级,内存占用小,支撑足够大的数据,可分布式。

另外一个让我放弃 SQLite 的原因是编译的问题,引入它之后,就得考虑平台的问题,同样是 Mac 环境,我换了新本之后,发现就编译不过了,坑,我想这个是我主要下定决心移除 SQLite 的原因。

怎么办,还是回到 Elasticsearch 做长时间存储的路子上去,任务和索引统一。尽量降低对 Elasticsearch 的访问,大量利用本地缓存,持久层干掉关系型数据库,目前的 ORM 层。