当前位置: 首页 > news >正文

Lightweight Robust Size Aware Cache Management——论文泛读

TOC 2022 Paper 论文阅读笔记整理

问题

现代键值存储、对象存储、互联网代理缓存和内容交付网络(CDN)通常管理不同大小的对象,例如,Blob、不同长度的视频文件、不同分辨率的图像和小文件。在这种工作负载中,大小感知缓存策略的性能优于忽略大小的算法。但现有的大小感知算法往往过于复杂且计算成本高昂。

现有方法局限性

现有的处理可变大小对象的缓存策略有一些缺陷:

  • 用对象的序列化字节数组表示,将它们划分为大小相等的块或块,类似于操作系统管理内存和文件的方式。但会导致空间利用率低,或记录开销高,或序列化反序列化开销高。

  • 将缓存划分为多个块,其中每个板块用于大小相似的对象,并且独立于其他块进行管理。但会导致次优的缓存利用率,因为对象的流行程度各不相同,没有单一的最佳静态块分区。

  • GDSF策略[14]在命中率和字节命中率方面都非常有效,但计算开销过高。其他方法AdaptSize [11]、LHD [6]和最近的 LRB [44],也受限于计算开销高。

本文方法

本文扩展了流行的(忽略大小的)W-TinyLFU缓存策略,来处理可变大小的项目。

原始W-TinyLFU缓存策略:

本文主要修改了3个方面:

  • 新项目可能比Window Cache大,这时新项目跳过Window Cache,立即提交给TinyLFU过滤器,以确定它是否可以进入Main Cache。

  • 需要考虑多个潜在的Window受害者,他们的总大小足以为新项目腾出空间。本文使用的原型中,在每个缓存区域中,使用优先级队列跟踪LRU,并且给定缓存区域的受害者是相应队列中的最后一个项目。

  • 在TinyLFU中,针对Main受害者测试Window受害者。可能有多个Window受害者,每个Window受害者都与(一个或多个)Main受害者进行比较。比较方法如图6。

修改后的W-TinyLFU缓存策略:

实验表明,与AdaptSize、LHD、LRB和GDSF等最先进的大小感知算法相比,本文的算法有更好的命中率和字节命中率。运行时比较表明,与最佳替代方案相比,本文的实现速度快了3倍,即CPU开销低得多。

总结

针对不同大小的对象,如何使用统一的低开销缓存策略进行管理。本文扩展了忽略大小的W-TinyLFU缓存策略,来处理可变大小的项目。修改了3个部分:(1)新对象可能比Window Cache大,则直接提交给TinyLFU过滤器,以确定它是否可以进入Main Cache。(2)需要考虑多个潜在的Window受害者,他们的总大小足以为新对象腾出空间。(3)在TinyLFU中,可能有多个Window受害者,每个Window受害者都与总和大于其大小的(一个或多个)Main受害者进行比较。

相关文章:

Lightweight Robust Size Aware Cache Management——论文泛读

TOC 2022 Paper 论文阅读笔记整理 问题 现代键值存储、对象存储、互联网代理缓存和内容交付网络(CDN)通常管理不同大小的对象,例如,Blob、不同长度的视频文件、不同分辨率的图像和小文件。在这种工作负载中,大小感知…...

搜索自动补全-elasticsearch实现

1. elasticsearch准备 1.1 拼音分词器 github地址:https://github.com/infinilabs/analysis-pinyin/releases?page6 必须与elasticsearch的版本相同 第四步,重启es docker restart es1.2 定义索引库 PUT /app_info_article {"settings": …...

连接远程的kafka【linux】

# 连接远程的kafka【linux】 前言版权推荐连接远程的kafka【linux】一、开放防火墙端口二、本地测试是否能访问端口三、远程kafka配置四、开启远程kakfa五、本地测试能否连接远程六、SpringBoot测试连接 遇到的问题最后 前言 2024-5-14 18:45:48 以下内容源自《【linux】》 仅…...

简单的 Cython 示例

1&#xff0c; pyx文件 fibonacci.pyx def fibonacci_old(n):if n < 0:return 0elif n 1:return 1else:return fibonacci_old(n-1) fibonacci_old(n-2) 2&#xff0c;setup.py setup.py from setuptools import setup from Cython.Build import cythonizesetup(ext_mod…...

Laravel时间处理类Carbon

时间和日期处理是非常常见的任务。Carbon 是一个功能强大的 PHP 扩展包&#xff0c;它为我们提供了许多方便的方法来处理日期和时间。在 Laravel 中&#xff0c;你无需单独安装 Carbon&#xff0c;因为 Laravel 默认已经包含了它。如果你正在使用 Laravel&#xff0c;那么你已经…...

2024年5月软考架构题目回忆分享

十年架构两茫茫 &#xff0c;Redis , UML 夜来幽梦忽还乡 &#xff0c; 大数据&#xff0c; Lambda 选择题 1.需求分析和架构设计面临这两个不同对象&#xff0c;一个是问题空间&#xff0c;一个是解空间 这是英文题&#xff0c;总共五个题目&#xff0c;只记得这么多 2. …...

香橙派 AIpro开发板初上手

一、香橙派 AIpro开箱 最近拿到了香橙派 AIpro&#xff08;OrangePi AIpro&#xff09;&#xff0c;下面就是里面的板子和相关的配件。包含主板、散热组件、电源适配器、双C口电源线、32GB SD卡。我手上的这个是8G LPDDR4X运存的版本。 OrangePi AIpro开发板是一款由香橙派与华…...

如何使用DotNet-MetaData识别.NET恶意软件源码文件元数据

关于DotNet-MetaData DotNet-MetaData是一款针对.NET恶意软件的安全分析工具&#xff0c;该工具专为蓝队研究人员设计&#xff0c;可以帮助广大研究人员轻松识别.NET恶意软件二进制源代码文件中的元数据。 工具架构 当前版本的DotNet-MetaData主要由以下两个部分组成&#xf…...

LeetCode---栈与队列

232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int pee…...

【教程】利用API接口添加本站同款【每日新闻早早报】-每天自动更新,不占用文章数量

本次分享的是给网站添加一个每日早报的文章&#xff0c;可以看到本站置顶上面还有一个日更的日报&#xff0c;这是利用ALAPI的接口完成的&#xff01;利用接口有利也有弊&#xff0c;因为每次用户访问网站的时候就会增加一次API接口请求&#xff0c;导致文章的请求会因为请求量…...

僵尸进程,孤儿进程,守护进程

【一】僵尸进程 1.僵尸进程是指完成自己的任务之后&#xff0c;没有被父进程回收资源,占用系统资源,对计算机有害&#xff0c;应该避免 """ 所有的子进程在运行结束之后都会变成僵尸进程(死了没死透)还保留着pid和一些运行过程的中的记录便于主进程查看(短时间…...

Nuxt3 中使用 ESLint

# 快速安装 使用该命令安装的同时会给依赖、内置模块同时更新 npx nuxi module add eslint安装完毕后&#xff0c;nuxt.config.ts 文件 和 package.json 文件 会新增代码段&#xff1a; # nuxt.config.ts modules: ["nuxt/eslint" ] # package.json "devDep…...

【Jmeter】性能测试之压测脚本生成,也可以录制接口自动化测试场景

准备工作-10分中药录制HTTPS脚本&#xff0c;需配置证书 准备工作-10分中药 以https://www.baidu.com/这个地址为录制脚本的示例。 录制脚本前的准备工作当然是得先把Jmeter下载安装好、JDK环境配置好、打开Jmeter.bat&#xff0c;打开cmd&#xff0c;输入ipconfig&#xff0c;…...

Go 编程技巧:零拷贝字符串与切片转换的高效秘籍

前言 ​ 在深入探讨Go语言中字符串与切片类型转换的高效方法之前&#xff0c;让我们先思考一个关键问题&#xff1a;如何在不进行内存拷贝的情况下&#xff0c;实现这两种数据类型之间的无缝转换&#xff1f;本文将详细解析Go语言中字符串&#xff08;字符类型&#xff09;和切…...

音视频开发—FFmpeg 音频重采样详解

音频重采样&#xff08;audio resampling&#xff09;是指改变音频信号的采样率的过程。采样率&#xff08;sample rate&#xff09;是指每秒钟采集的音频样本数&#xff0c;通常以赫兹&#xff08;Hz&#xff09;或每秒样本数&#xff08;samples per second&#xff09;表示。…...

统计本地端口占用情况

要查看MongoDB是否正在备份&#xff0c;可以通过以下几种方法&#xff1a; 查看MongoDB的进程列表&#xff1a; 使用命令ps -ef | grep mongo&#xff0c;这将列出所有正在运行的MongoDB进程。在输出的列表中&#xff0c;你可以查看是否有与备份相关的进程或任务正在运行。 查…...

【MySQL精通之路】SQL优化(1)-查询优化(9)-外部联接优化

主博客&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 上一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(8)-嵌套联接优化-CSDN博客 下一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(10)-外部联接简化-CSDN博客 外部联接包括LEFT JOIN和…...

Python应用开发——30天学习Streamlit Python包进行APP的构建(1)

关于 #30天学Streamlit #30天学Streamlit 是一个旨在帮助你学习构建 Streamlit 应用的编程挑战。 你将学会: 如何搭建一个编程环境用于构建 Streamlit 应用构建你的第一个 Streamlit 应用学习所有好玩的、能用在 Streamlit 应用里的输入输出组件🗓️ 天 1 设置本地开发环境…...

轻兔推荐 —— 一个好用的软件服务推荐平台

给大家推荐一个好用的的软件服务推荐平台&#xff1a;轻兔推荐 网站界面简洁大方&#xff0c;没有太多杂七杂八的功能和页面&#xff0c;有明暗主题色可以选择&#xff0c;默认为亮色&#xff0c;可在网站上方手动切换。 每工作日都会推荐一款软件&#xff0c;有时会加更&…...

LeetCode hot100-57-G

17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。不会&#xff0c;放IDEA里执行了一下大概理解了流程 …...

PlugY:重塑暗黑破坏神2单机体验的技术突破

PlugY&#xff1a;重塑暗黑破坏神2单机体验的技术突破 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 一、问题篇&#xff1a;暗黑破坏神2单机模式的技术痛点 作为一…...

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

避开PSRR仿真三大坑&#xff1a;用Cadence psspxf分析分频器时&#xff0c;这些设置错了白忙活 在模拟电路设计的精密世界里&#xff0c;电源抑制比&#xff08;PSRR&#xff09;仿真是评估电路抗干扰能力的关键环节。许多工程师在完成基础仿真流程后&#xff0c;常会遇到结果异…...

手把手教你用PassFab for Office 8.5.1找回遗忘的Word/Excel密码(保姆级图文教程)

办公文档密码遗忘急救指南&#xff1a;PassFab for Office全流程实战解析 你是否经历过这样的场景&#xff1a;周一早晨准备修改季度报表时&#xff0c;突然发现去年设置的Excel密码怎么试都不对&#xff1b;或是毕业论文答辩前夜&#xff0c;重要参考文献的Word文档因密码错误…...

前端Word文档生成革命:3分钟掌握纯JavaScript专业文档导出创新方案

前端Word文档生成革命&#xff1a;3分钟掌握纯JavaScript专业文档导出创新方案 【免费下载链接】DOCX.js Generate Microsoft Word DOCX files in pure client-side JavaScript. Try in Chrome 项目地址: https://gitcode.com/gh_mirrors/do/DOCX.js 还在为Word文档导出…...

效率倍增器:利用快马AI自动生成网络设备批量巡检与健康报告脚本

最近在深圳做网络运维的朋友跟我吐槽&#xff0c;每天要手动巡检几十台网络设备&#xff0c;检查CPU、内存、接口状态这些指标&#xff0c;不仅耗时还容易出错。于是我尝试用InsCode(快马)平台帮他解决这个问题&#xff0c;效果出奇的好。今天就把这个自动化巡检脚本的实现过程…...

BilibiliDown:基于Java的B站视频下载技术方案与实现解析

BilibiliDown&#xff1a;基于Java的B站视频下载技术方案与实现解析 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors…...

AI赋能浏览器:通过快马平台生成智能扩展,实现网页内容自动总结与代码智能解释

最近在做一个很有意思的尝试&#xff1a;用AI给浏览器装上"智能大脑"。具体来说&#xff0c;是开发一个谷歌浏览器扩展&#xff0c;能够智能分析网页内容。这个扩展最酷的地方在于&#xff0c;它能自动识别你选中的是普通文本还是代码&#xff0c;然后分别给出摘要总…...

免费开源的质谱分析革新工具:从数据到发现的完整路径

免费开源的质谱分析革新工具&#xff1a;从数据到发现的完整路径 【免费下载链接】OpenMS The codebase of the OpenMS project 项目地址: https://gitcode.com/gh_mirrors/op/OpenMS OpenMS作为一款免费开源的质谱数据分析平台&#xff0c;为科研人员提供了从原始质谱数…...

SEO优化文章标题需要注意的重点有什么

SEO优化文章标题需要注意的重点有什么 在当前数字营销的环境中&#xff0c;SEO优化文章标题是吸引目标用户点击的重要因素之一。拥有一个高效的标题不仅可以提升文章的曝光率&#xff0c;还能提高用户的参与度和转化率。SEO优化文章标题需要注意的重点有哪些呢&#xff1f;本文…...

保姆级教程:手把手教你下载SEED-VIG脑电数据集(附Gitee国内镜像地址)

从零到一&#xff1a;SEED-VIG脑电数据集的完整获取与解析指南 第一次接触SEED-VIG数据集时&#xff0c;我花了整整三天时间才搞明白如何正确下载和解析这个2.9GB的庞然大物。作为研究驾驶疲劳检测的重要资源&#xff0c;这个数据集的价值毋庸置疑&#xff0c;但获取过程却让不…...