传输大咖20|提升效率:优化文件服务器删除大文件夹过程的策略

引文|

文件服务器在删除大文件夹时,往往会比较耗时。如果在原有线程中同步等待删除结果,那么会阻塞原有线程的运行;如果在其它线程中异步删除文件夹,则虽不阻塞原有线程的运行,但对于那些关注删除结果的用户,仍需等待异步操作结果,从而在用户的角度上,删除操作还是较为缓慢。

一、如何改善这种现状?

注意到文件服务器中的文件夹对于用户而言,只要用户不可见了,就在用户端达到了已被删除的效果。因此如果我们能够在确保服务器成功删除文件夹的前提下,首先隐藏对该文件夹的显示,然后立即响应用户的删除请求,最后再完成实际的删除操作,那么在用户眼中,服务器的删除速度就有了很大的提升。

二、改善思路

如前所述,我们可以在实际删除文件夹前,先对其进行重命名,并加入一个特定的待删标识(可以是一串既定的字符串),再在服务器端隐藏对含有该待删标识文件夹的显示。不同于实际的删除操作,文件夹的重命名是非常迅速的,因此在用户眼中,我们快速的删除了目标对象。

而后为了确保文件夹能够被正确删除,我们可以建立一个数据库,将重命名后文件夹的实际路径记录下来,随后在特定的线程中实际删除对象。

三、镭速文件传输系统的做法

​镭速文件传输系统是一个基于自研的Raysync传输协议的文件系统,它亦在为用户提供一套安全、高效的文件传输及文件同步方案。在针对用户删除服务端大文件夹耗时的问题,镭速文件传输系统很好的将上述思想进行了实践,其做法如下:

1) 在接收到用户端的删除请求后,服务器端首先重命名目标文件夹,加上一串以.delete开头的特定字符串作为待删标识

2) 屏蔽用户端对含有待删标识的文件夹的显示

3) 响应用户端的删除请求

4) 将待删除文件夹的实际路径记录进专门的数据库中

5) 在专用线程中,定时读取数据库记录,完成对待删除文件夹的实际删除操作

6) 针对每个删除成功的文件夹,从数据库中删除对应记录;对于删除失败的文件夹,保留记录,等待下次删除

通过这种全异步的文件夹删除方式,镭速传输能够在确保服务器正确删除文件夹的前提下,快速响应用户的删除请求,做到既能不占用服务器的原有线程资源,又在用户角度实现文件夹被快速删除的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/507330.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日面经分享(pytest装饰器)

pytest装饰器 a. pytest.mark.parametrize:这个装饰器用于标记测试函数,并为其提供多组参数进行参数化测试。可以使用元组、列表、字典等形式来指定参数组合。 import pytestpytest.mark.parametrize("num1, num2, expected", [(2, 2, 4), (5…

力扣热门算法题 217. 存在重复元素,223. 矩形面积,225. 用队列实现栈

217. 存在重复元素,223. 矩形面积,225. 用队列实现栈,每题做详细思路梳理,配套Python&Java双语代码, 2024.04.01 可通过leetcode所有测试用例。 目录 217. 存在重复元素 解题思路 完整代码 Java Python 223…

Discuz采集发布插件

Discuz(简称DZ)是一款知名的开源论坛系统,广泛应用于各类网站社区。对于许多站长来说,保持论坛内容的更新是一项挑战,特别是在内容量庞大的情况下。为了解决这个问题,有一类特殊的插件是用于在Discuz论坛中…

惟客数据《2024泛零售行业大会员经营实践与案例》正式发布

对于多业态、多品牌、多渠道经营的泛零售企业而言,如何改变过去会员经营过程中“各自为政”的状态? 如何让企业内不同业务之间的会员经营“瞄得准、看得穿、打得透、流得通、触得动”,充分发挥多业态、多品牌、多渠道优势,最大化挖…

transformers微调模型后使用pieline调用无法预测列表文本

初学transformers框架 使用trainer简单训练一个文本分类模型三个epoch后 使用piepline调用model 和tokenizer后 发现 传入列表文本后 输出就变得不正常了,为么子哇 如下图

简单说清楚什么是SQL Injection?

最近看完了《The Pragmatic Programmer: 20th Anniversary Edition, 2nd Edition: Your Journey to Mastery》,在第7章:While You Are Coding的footnotes中,提到了一幅漫画: 这不仅用简单的方式说清楚了什么是SQL Injection&#…

【御控物联】JSON结构数据转换在物联业务中应用(场景案例二)

文章目录 一、物联网业务场景现状二、物联网业务场景数据交互格式三、JSON格式数据转换案例四、JSON数据格式转换DEMO 一、物联网业务场景现状 目前,市场上多数物联网关与物联平台捆绑售卖,网关采集到设备数据只能按照指定的协议和规定的数据格式传输到…

蚂蚁测试可控制天气的“龙王”系统

关注卢松松,会经常给你分享一些我的经验和观点。 所有伟大的发明,都来自最初不切实际的幻想。 4月1日,不少互联网大厂都发布一些新产品,例如:淘宝测试用火箭送快递,蚂蚁集团推出可以控制天气的技术系统畅…

【学习笔记】java项目—苍穹外卖day03

文章目录 苍穹外卖-day03课程内容1. 公共字段自动填充1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 1.4 功能测试1.5 代码提交 2. 新增菜品2.1 需求分析与设计2.1.1 产品原型2.1.2 接口设计2.1.3 表设计 2.2 代码开发2.2.1 文件上传实现2.2.2 新…

MySQL 进阶-----索引使用规则

目录 前言 一、验证索引效率 二、最左前缀法则 三、范围查询 四、索引失效情况 1.索引列运算 2.字符串不加引号 3 .模糊查询 4.or连接条件 5 .数据分布影响 前言 本期我们学习MySQL索引的使用方法,在讲解索引的使用原则之前,先通过一个简单的…

【漏洞复现】通天星CMSV6弱口令漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

探索 Redis 数据库:一款高性能的内存键值存储系统

目录 引言 一、非关系型数据库 (一)什么是非关系型数据库 (二)非关系型数据库的主要特征 (三)关系数据库与非关系型数据库的区别 二、Redis 简介 (一)基本信息 (…

哪一款个微管理助手比较好用?

私域流量兴起,社群运营成为热门,越来越多的行业进入社群的圈子。但是社群管理是个超麻烦、巨琐碎的活儿,方法不对,很容易无限陷入死循环。 此时,一个合适的管理工具可以帮我们高效管理,达到事半功倍的效果…

构建第一个ArkTS应用(Stage模型)

创建ArkTS工程 若首次打开DevEco Studio,请点击Create Project创建工程。如果已经打开了一个工程,请在菜单栏选择File > New > Create Project来创建一个新工程。选择Application应用开发(本文以应用开发为例,Atomic Servi…

云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理

方案概述 现在绝大多数客户都有很多非结构化的数据存在 OSS 中,以图片,视频,音频居多。举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式、分辨率要求也不同,所以一张图片往往会有很多张…

泰迪智能科技高职人工智能专业人才培养方案

人工智能专业坚持以立德树人为根本,立足社会经济发展,面向信息技术行业,培养德智体美劳全面发展的人工智能领域的高素质工程型专门人才。毕业生具备扎实的数学、自然科学、工程技术、人文社科的基本理论, 系统深入的人工智能专业知识和实践能…

云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权

方案概述 MSE 网关可以为后端服务提供转发路由能力,在此基础上,一些敏感的后端服务需要特定认证授权的用户才能够访问。MSE 云原生网关致力于提供给云上用户体系化的安全解决方案,其中 JWT 认证能力是在 Json Web Token 这种结构化令牌的基础…

递归究竟是什么?如何快速编写正确的递归代码? —— 力扣经典面试题详解

递归究竟是什么?如何快速编写正确的递归代码? —— 力扣经典面试题详解 一、递归1.1 什么是递归?1.2 为什么会用到递归?1.3 如何快速编写正确的递归代码? 二、力扣相关笔试题解析[面试题 08.06. 汉诺塔问题](https://l…

【C++】list介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. list介绍2. list的构造3. ist iterator的使用4. capacity5. element access6. modifiers7. 迭代器失效8. Operations8.1 reverse8.2 sort8.3 unique8.4 splice 1. list介绍 list是可以在常数范围内在任意位置进行插…

关闭搜狗输入法的输入框广告

使用搜狗输入法输入内容时,下面总是会有广告显示 可以通过如下方式关闭该广告显示 通过以上的设置,可以发现输入框不会再显示广告了