-
zookeeper:一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。
-
Raft、Paxos:分布式系统一致性算法。
-
OCR:印刷文字识别
-
RPC与RMI
-
RPC 跨语言,而 RMI只支持Java。
-
RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型,而RPC 不支持对象的概念,传送到 RPC 服务的消息由外部数据表示 (External Data Representation, XDR) 语言表示,这种语言抽象了字节序类和数据类型结构之间的差异。只有由 XDR 定义的数据类型才能被传递, 可以说 RMI 是面向对象方式的 Java RPC 。
-
在方法调用上,RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。
-
在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为 “classname”的类中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。
-
-
CocurrentHashMap
-
优势:
-
采用分段锁,对数据集进行分段加锁,控制争夺同一把锁的线程数
-
get方法无需加锁,因为其共享变量采用volatile修饰,保证线程间的可见性
-
-
结构:
-
Segment(可重入锁)数组+HashEntry(链表结构的元素)数组
-
利用hash算法从HashEntry得到元素索引,以确定归属表段。
-
-
-
incast拥塞:RTOmin超市重传时间 :
-
应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU)。只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向多个存储服务器发起并发TCP请求,且所有服务器同时向客户端发送SRU。
-
出现的问题:
-
这种多对一的服务器向客户端并发传输数据的模式,很容易造成与客户端相连接交换机端口的缓冲区溢出,从而导致丢包及随后的TCP重传。在丢包严重的情况下,TCP将经历一个最少持续200ms的超时期,这由TCP最小重传超时(RTOmin)确定。
-
在并发传输过程中,当某个服务器发生了传输超时但其他服务器完成了传输,则客户端在接收到剩余SRU之前必须等待至少RTOmin,而等待期间客户端的链路很有可能处于完全空闲状态,这就导致在应用层的可见吞吐量与链路容量相比较显著下降且总的请求延迟将高于RTOmin。
-
-
-
facebooke对mamcached的重做:https://www.csdn.net/article/2013-03-07/2814383-facebook-new-memcache-mcdipper
-
一致性hash:https://blog.csdn.net/gerryke/article/details/53939212
- 聚簇索引:当表有聚族索引时,它的数据行存放在索引的叶子页中。术语“聚族”表示数据行和相邻的键值紧凑的存储在一起。因为无法同时把数据行放在两个不同的地方,所以一个表只能有一个聚族索引。
-
Redis的两种持久化模式:
-
AOF:保持数据的增量,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件,以此达到记录数据库状态的目的。
-
RDB:保存二进制的数据快照,每次有数据修改,都将全量的数据保存下来,
-
随记
最新推荐文章于 2019-06-11 15:50:15 发布