- 0
- 0
- 约小于1千字
- 约 1页
- 2026-08-25 发布于北京
- 举报
(1)pull模型
pull模型,不会对NameNode造成太大的影响,去接收请求,每次最多就是在内存里缓
存一小块的数据,供BackupNode来拉取;如果BackupNode有问题,那么他是不会影响到
NameNode
NameNode主动push给BackupNode,很可能会被BackupNode一些异常的情况给影响,导
致NameNode可能会有不稳定的问题;pull模型,BackupNode一旦异常,大不了就是不发
送请求过来拉取日志,但是对NameNode是没影响的
(2)批量拉取editslog
批量拉取,这个你可以结合具体的情况,比如说我们这里设定的是每次批量拉取10条数据,
但是你也可以搞的大一些,每次批量拉取20条,30条,可配置化的,就可以提升editslog
同步的性能
(3)缓存机制
每次NameNode端都会在内存里缓存一块数据,要么是内存缓冲里的数据,要么是某个磁
盘文件的数据,每个磁盘文件也就25kb,所以最多就是缓存25kb的数据。大部分的拉取,
都是直接从缓存里走
不用频繁的磁盘文件,也不用频繁的申请锁去内存缓冲的数据
(4)低成本解决并发问题
大部分的请求都是走内存缓存,避免去竞争锁拉取内存缓冲的数据;对于ArrayList写
原创力文档

文档评论(0)