记一次RocksDB查询慢的问题定位

在HugeGraph Graph Database + RocksDB Backend环境中,以下gremlin语句查询慢(索引查询),消耗时间将近30s(正常是毫秒级),最终的结果4000条左右:

g.V().hasLabel('process')
 .has('timestamp', between('2020-05-09 06:00:00', '2020-05-09 06:05:00'))

查看堆栈信息(jstack),情况正常:
hugegraph jstack

查看profile,发现rocksdb的id get占据99%的时间:
hugegraph profile

进一步分析发现,是典型的删除墓碑导致查询慢问题:
hugegraph profile

解决方法:

  1. 避免对LSM-Tree系数据库进行大量删除操作。
  2. 或者在大量删除操作之后进行compaction,防止读取时遭遇大量墓碑导致性能低下。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章