• 增加缓存优化消息队列在特定情况下读取性能下降的问题


    写者持续的写入数据到磁盘上,读者1实时读区写者最新保存的数据,读取数据的时候一般都会在page_cache中找到,不用从磁盘获取。

    但是如果有另外一个读者要读区很早的数据,应为较早的数据在page_cache中已经不存在,所以系统在从磁盘获取到数据后,回把数据保存到page_cache中,以方便后续读取该数据到请求直接从cache中获取减少磁盘IO。但是这样会导致写着新保存到page_cache中的数据被挤掉,想获取新数据只能从磁盘获取,反而让之前的读者的读取性能下降。

    解决办法就是在内存中增加缓存,让写着在磁盘后,另外在保存一份在内存,所有读者读区数据时,线在内存中查找是否存在,如果存在直接返回,否则不存在,再走正常的流程获取数据。这样就避免了上述情况导致的读区性能下降的问题。

    参考:

    https://www.infoq.cn/article/Q0o*QzLQiay31MWiOBJH

  • 相关阅读:
    BZOJ4238:电压
    BZOJ4566:[HAOI2016]找相同字符
    BZOJ4530:[BJOI2014]大融合
    BZOJ1912:[APIO2010]patrol巡逻
    BZOJ3998:[TJOI2015]弦论
    CNBlogs 样式修改
    POJ-3321 Apple Tree 【DFS序+树状数组】
    BZOJ-2152 聪聪可可 【点分治】
    POJ-1741 Tree 【点分治】
    Treap实现名次树
  • 原文地址:https://www.cnblogs.com/zcqkk/p/10949403.html
Copyright © 2020-2023  润新知