摘要: 自从我在博客上留下了qq之后,不时会有热心网友来询问我关于算法竞赛的经验。由于每次我都会想到哪儿说哪儿,导致遗漏一些比较关键的信息,所以我试图总结一些问的频率比较多的问题, 同时我也希望在我还尚未远离算法竞赛这个圈子的时候,对我两年来短暂的职业生涯做一些总结。 首先,我必须声明,以下的仅能作为一位即 阅读全文
posted @ 2019-11-28 22:43 Hugh_Locke 阅读(2492) 评论(8) 推荐(15) 编辑
摘要: 现场赛记录 19 CCPC湘潭邀请赛 11/Gold 19 ICPC 西安邀请赛 49/Silver 19 ICPC 南昌邀请赛 67/Silver 19 CCPC 秦皇岛站 55/Silver 19 CCPC 哈尔滨站 30/Silver 19 ICPC 银川站 7/Gold 19 ICPC 徐州 阅读全文
posted @ 2019-05-25 22:28 Hugh_Locke 阅读(1086) 评论(0) 推荐(1) 编辑
摘要: 1. 什么是缓存? 缓存(Cache)一般指的是一种具备高效读写能力的暂存区域,目的是让数据更接近用户,使得用户的访问速度更快或者访问成本更低。缓存的工作原理是先从缓存中获取数据,如果有数据则直接返回给用户,如果没有数据就从更远的设备上读取数据返回。 缓存在不同的场景下有不同的应用,例如: 客户端缓 阅读全文
posted @ 2023-02-12 21:17 Hugh_Locke 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 1.1 重复网页的类型 在互联网中,近似重复网页(Near Duplicate Web Page)的数量占网页总数的比例高达29%,完全相同的页面占全部页面的22%,其中根据内容和布局又可以分为四种。 | | 内容相同 | 部分重要内容相同 | | | | | | 布局相同 | 完全相同 阅读全文
posted @ 2022-12-15 00:39 Hugh_Locke 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 1. 为什么我们需要协程? 要解释协程的由来,需要从最早的进程说起。 1.1 非抢夺式任务与抢夺式任务 在比较早的操作系统中,使用的是非抢夺式任务,也叫协作式任务,在这种任务方式下,后台进程的执行依赖于当前线程主动让出执行权,如果当前进程一直不让(例如陷入了死循环、一直等待遇到故障的网络报文)等,就 阅读全文
posted @ 2022-12-08 00:01 Hugh_Locke 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 0. 背景 在开发分布式高并发系统时,有三种常用的保护系统的手段:缓存、降级、限流 缓存:在访问数据库之前引入缓存,对一部分热度高的请求直接从缓存中获取目标数据,从而减少计算量,提升吞吐。 降级:当服务器压力剧增的情况下,通过根据当前业务情况和流量对一些服务和页面有策略的降级来保证核心任务的正常运行 阅读全文
posted @ 2022-12-06 00:44 Hugh_Locke 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 0 背景 Map/Reduce是Google针对海量信息处理提出的非常著名的云计算模型,包括Hadoop等众多开源系统都采纳了这一方法,成为了主流的云计算模型。 Map/Reduce是一个计算模型的同时,也是一个计算框架,负责将计算任务分配到众多机器上,并对机器失效等情况自动跟踪,使得应用开发者只要 阅读全文
posted @ 2022-12-03 22:45 Hugh_Locke 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 0. 背景 BigTable是一个负责管理海量结构化或者半结构化数据的分布式存储系统。在Google的云存储体系中处于核心地位,起到了承上启下的作用。之前说的GFS是一个分布式的海量文件管理系统,其对于存储的文件没有任何假定,而BigTable是在GFS的基础上建立了数据的结构化解释。BigTabl 阅读全文
posted @ 2022-12-03 17:47 Hugh_Locke 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 在分布式系统中,不同机器的进程之间往往需要协调动作,如果不同的进程之间共享了同一个或者同一组资源,就需要对他们的行为进行互斥来保证一致性,这个时候就需要使用到分布式锁。 分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在传统的单体应用中,我们也会使用锁来解决线程之间共享资源访问 阅读全文
posted @ 2022-12-01 23:43 Hugh_Locke 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 之前说过,搜索引擎需要将互联网上百亿级别的网页内容存到本地磁盘上,基于这一存储海量数据的需求,Google开发了GFS。GFS(Google File System)为了能够存储百亿级的海量网页信息专门开发的文件系统。在Google整个云存储与云计算技术框架中,GFS是其他相关技术的基石 阅读全文
posted @ 2022-11-30 00:32 Hugh_Locke 阅读(791) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 什么是跳表?跳表是SortedMap的一种具体实现,是一种概率性的数据结构。跳表拥有SortedMap的所有功能,定位和红黑树类似,其和红黑树的区别在于 优点: 跳表的实现更加简单 跳表在范围查询的时候效率是要高于红黑树 红黑树的插入和删除可能引发子树的调整,逻辑比较复杂,跳表只要维护相 阅读全文
posted @ 2022-11-29 01:01 Hugh_Locke 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 为什么需要云存储和云计算?对于商业搜索引擎来说,需要处理的数据超过百亿,并且不部分数据都是互联网页面这样的无结构化或者半结构化数据。云存储和云计算平台的目的,就是为了存储和管理这些海量数据变得简单化。目前来看,一套高效的云存储和云计算平台,已经成为了搜索引擎的核心竞争力。 这本书主要是通 阅读全文
posted @ 2022-11-27 22:56 Hugh_Locke 阅读(192) 评论(0) 推荐(0) 编辑