SPO升级计划

Date: 2019/05/28 Categories: 工作 Tags: SPO janusgraph



需要的数据

  1. 统计一天spo log

需要做的统计

  1. 统计加入name_index后对sp_name查询的加速比
  2. 统计po查询的性能, 和对总体性能有多大影响

需要的功能

  1. SPO服务
    1. 人物关系查询, 如”刘德华和朱丽倩什么关系” (图数据库无法支持, 需要内存存储)
    2. name_index: name/alias_name -> type/popular/properties/uuid的映射, (移植C++代码) 用于 1) 加速SP/NAME查询 2) 支持按照实体是否有属性查询实体id
  2. SPO数据文件
    1. 人物关系
    2. name_index (移植C++代码)
  3. 更新流程
    1. 根据三元组diff更新janusgraph
    2. 根据janusgraph库更新数据文件(name_index/人物关系…)
    3. 数据的备份和回滚
  4. 其他SPO支持的查询

    1. 红高粱中九儿的扮演着是谁 (含condition查询)

      {"Type":"LIST","is_intercept":"0","keys":[{"condition":[{"major_prop":"演员","minor_prop":"角色","value":"九儿"}],"name":"红高粱","prop_name":"表演.角色","type":"sp\tname","type_name":"视频类_电视剧"}]}
    2. 非查询

      {"Type":"LIST","is_intercept":"0","keys":[{"name":"刘德华","prop_name":"歌曲","type":"sp\tname","type_name":"人物类_人物","nor_prop":"语言","nor_value":"粤语"}]}
    3. 交集查询

      {"Type":"INTERSECTION","is_intercept":"0","keys":[{"name":"叶倩文","prop_name":"歌曲","type":"sp\tname","type_name":"人物类_人物","nor_prop":"语言","nor_value":"粤语"},{"name":"林子祥","prop_name":"歌曲","type":"sp\tname","type_name":"人物类_人物","nor_prop":"语言","nor_value":"粤语"}]}
  5. 部署janusgraph测试集群和上海集群

Timetable

每个点初步定1周时间

  • 准备性能评估 (andyfei) (due by 2019/06/03):

    1. 统计spo log中的各类查询的分布
    2. 使用实际的log测试每一类查询在spo服务和graph_service中对应的性能
    3. 建立性能测试集和相应的代码, 用于评估性能和比较结果
  • 名字索引 (andyfei) (due by 2019/06/10):

    1. 移植原SPO服务中的name_index模块到python
    2. graph_service中添加name_index模块加速sp/name的查询
  • 其他未实现查询 (jasonjlv) (dye by 2019/06/15):

    1. 添加人物关系查询的索引
    2. graph_service中添加人物关系查询
    3. 支持condition查询/非查询/交集查询
  • 服务部署 (andyfei & jasonjlv) (due by 2019/06/24):

    1. 部署上海集群/测试scylladb/janusgraph/spark/graph_service集群
    2. 编写使用janusgraph OLAP功能导出全量数据的脚本
    3. 串联导出数据和生成各种数据文件的流程
  • 其他 (andyfei) (due by 2019/06/28):

    1. 编写备份和恢复流程
    2. 结果对比和性能测试