首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  程序员

[实现方案]庞大数据规模系统的热加载的实现

  •  
  •   MOONLIGHTT · 27 天前 · 522 次点击

    假设我现在需要构建一个搜索引擎,并且搜索引擎背后的海量的数据我已经获取了。假设我的搜索引擎使用了 pagerank 类型的图排序算法,则系统可以先利用数据构成一个图(由于数据量较大,构图的代价较高),之后根据排序算法对图中的节点进行排序。为了避免用户在提交检索请求时的长时间等待,上述图的计算结果应该被保存(保存在内存或者磁盘中)

    那么,当搜索引擎所用的数据有所更新(例如增加新数据或者旧数据被修改)时,典型的处理方法是什么呢?

    BTW,我目前主要有两种想法:

    • 每隔一段时间(较长的时间,例如 3 天)重新构图,重新进行相关计算相关内容并将数据保存在数据库中
    • 将图保存在内存中,并且在构图的程序中监听文件系统的改变情况,当监听到文件改变时,程序自动修改图结构(修改图结构之后,又要重新进行排序算法,因此在进行排序的过程中,也要给之前的结果做备份)
    2 回复  |  直到 2019-11-15 09:10:21 +08:00
        1
    Raymon111111   27 天前
    两种方案都可以, 主要看业务对实时要求怎么样

    主要考虑数据一致性和重启加载的问题
        2
    farseeraliens   26 天前 via iPhone
    你看一下 solr cloud 或者 elastic search 怎么实现的不就完了。开源搜索引擎那么多。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4181 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 40ms · UTC 08:03 · PVG 16:03 · LAX 00:03 · JFK 03:03
    ♥ Do have faith in what you're doing.