上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: 本文(OSDI 18')主要介绍一种新的副本复制协议:SAUCR(场景可感知的更新与故障恢复)。它是一种混合的协议: 在一定场景(正常情况)下:副本复制的数据缓存在内存中。 故障发生时(多个节点挂掉,处于系统无法正常运行的边缘):副本复制的数据缓存同步刷入磁盘。 该协议在保证高性能的同时,保证了很强 阅读全文
posted @ 2020-08-05 13:35 晓乎 阅读(349) 评论(0) 推荐(0) 编辑
摘要: LRU cache LRU(最近最少使用)是一种常用的缓存淘汰机制。当缓存大小容量到达最大分配容量的时候,就会将缓存中最近访问最少的对象删除掉,以腾出空间给新来的数据。 实现 (1)单线程简单版本 ( 题目来源:力扣(LeetCode)链接:leetcode题目) 题目: 设计和构建一个“最近最少使 阅读全文
posted @ 2020-07-27 09:57 晓乎 阅读(904) 评论(0) 推荐(0) 编辑
摘要: 在多线程并发的情况下,单个节点内的线程安全可以通过synchronized关键字和Lock接口来保证。 synchronized和lock的区别 Lock是一个接口,是基于在语言层面实现的锁,而synchronized是Java中的关键字,是基于JVM实现的内置锁,Java中的每一个对象都可以使用s 阅读全文
posted @ 2020-06-10 18:38 晓乎 阅读(713) 评论(0) 推荐(0) 编辑
摘要: 1.1 背景知识 1.1.1 红黑树 二叉查找树可能因为多次插入新节点导致失去平衡,使得查找效率低,查找的复杂度甚至可能会出现线性的,为了解决因为新节点的插入而导致查找树不平衡,此时就出现了红黑树。 红黑树它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(B 阅读全文
posted @ 2020-06-06 23:09 晓乎 阅读(340) 评论(0) 推荐(3) 编辑
摘要: 本文主要解决的是基于内存的K-V存储引擎在实际应用中出现的热点问题,设计了一个热点可感知的KV存储引擎,极大的提升了KV存储引擎对于热点数据访问的承载能力。 Introduction 热点问题,可以理解为在一个严重倾斜的工作负载下,频繁的访问和操作某一小部分数据。 如图,是阿里的不同业务中数据访问分 阅读全文
posted @ 2020-05-31 23:09 晓乎 阅读(1558) 评论(0) 推荐(0) 编辑
摘要: a. 特性 两个接口都是继承自Collection​,是常用来存放数据项的集合,主要区别如下: ① List和Set之间很重要的一个区别是是否允许重复元素的存在,在List中允许插入重复的元素,而在Set中不允许重复元素存在。 ​ ② 与元素先后存放顺序有关,List是有序集合,会保留元素插入时的顺 阅读全文
posted @ 2019-12-30 22:36 晓乎 阅读(14510) 评论(0) 推荐(3) 编辑
摘要: 一、对象头 通常在java中一个对象主要包含三部分: 对象头 主要包含GC的状态、、类型、类的模板信息(地址)、synchronization状态等,在后面介绍。 实例数据:程序代码中定义的各种类型的字段内容。 对齐数据:对象的大小必须是 8 字节的整数倍,此项根据情况而定,若对象头和实例数据大小正 阅读全文
posted @ 2019-11-22 20:57 晓乎 阅读(1017) 评论(0) 推荐(0) 编辑
摘要: 1. 最简单的网络通信——同步阻塞通信(BIO) 首先来看一个传统简单的网络通信案例,该案例是基于同步阻塞的I/O,服务端代码如下 客户端代码如下: 看到当假设100个客户端同时连接服务器的时候,单线程下服务端对接收的请求只会一个一个去处理,导致很多客户端请求被阻塞,处于等待情况,这个时候,通常的服 阅读全文
posted @ 2019-11-14 18:44 晓乎 阅读(627) 评论(0) 推荐(1) 编辑
摘要: 1. 问题的引出 线程安全归根结底可以说是内存安全,在jvm内存模型中,有一块特殊的公共内存空间,称为堆内存,进程内的所有线程都可以访问并修改其中的数据,就会造成潜在的问题。因为堆内存空间在没有保护机制的情况下,你放进去的数据,可能被别的线程篡改。如下代码: public class ThreadS 阅读全文
posted @ 2019-10-23 19:46 晓乎 阅读(579) 评论(0) 推荐(1) 编辑
摘要: 1. 进程与线程 通常,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个Word就启动了一个Word进程。大多时候一个进程需要同时干很多件事情,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务 阅读全文
posted @ 2019-10-21 18:59 晓乎 阅读(506) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
总访问: counter for blog 次