Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

davidhacking/fast_local_cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

3 Commits

Repository files navigation

fast_local_cache

img

使用场景

  • 推荐打分时需要item特征数据,为了实时性,会将item特征缓存起来,运算的时候通过本地计算即可

目标

  • 全缓存保证读性能

数据结构

  • cache key->value
  • datafiles
    • 版本号:递增,merge后例如10个datafile merge成了5个,则这5个datafile的版本都为10
    • entry ksz key del_flag vsz value ts crc

接口

  • SyncDB同步最新数据
    • 输入:远端版本号
    • 输出:server版本号 datafiles

问题

  • 如何进行merge?
    • merge选取一部分file进行merge,此时读取内存中的key,比较ts,如果大于则更新内存中的key,并且写磁盘新entry,如果等于则只写磁盘新entry,如果小于则直接丢弃
    • 多久触发一次?几个datafile进行merge?可配
    • merge需要加全局锁?
    • 如果merge后的版本是最新的版本,那远端每次更新最新的版本时会导致更新多个文件,所以远端需要更新轮询时间需要小于merge时间
  • datafile如何load?
    • load data file mmap
  • 如何进行get?
    • 读内存返回
  • 如何进行put?
    • 追加式写磁盘,再写内存
  • delete?和put类似

相关链接

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /