换了个数据结构,一不小心把系统性能提升了10倍以上

本文通过Hadoop的文件契约监控算法优化案例,阐述了算法在大型系统性能提升中的关键作用。Hadoop通过使用TreeSet对契约进行排序,减少检查契约过期的遍历次数,从而在大规模集群场景下显著提升了性能。
摘要由CSDN通过智能技术生成

很多Java开发同学经常有一个疑惑,搞Java开发也需要懂算法吗?本文咱们就来谈谈这个问题。

其实如果你开发一个非常复杂而且有挑战的大型系统,那么必然会在系统中使用算法。同理,如果你可以将算法进行合理的优化,那么也可以将系统性能提升几十倍!

空口无凭,下面用真实案例来进行说明。我们一起来看看Hadoop在部署了大规模的集群场景下,大量客户端并发写数据的时候,文件契约监控算法的性能优化。

Hadoop是世界上最复杂的基于Java开发的分布式系统,因此我们选用它来进行举例。从它的算法优化对系统性能的提升,就可以看出算法对于Java程序员们开发系统的重要性。

首先看懂这篇文章需要一些Hadoop的基础知识背景,了解其架构原理,所以还不太了解的同学,先看看之前的文章:《干掉几百行的大SQL,我用Hadoop》


先给大家来引入一个小的背景,假如多个客户端同时要并发的写Hadoop HDFS上的一个文件,大家觉得这个事儿能成吗?

明显不可以接受啊,兄弟们,HDFS上的文件是不允许并发的写的,比如并发的追加一些数据什么的。

所以说,HDFS里有一个机制,叫做文件契约机制

也就是说,同一时间只能有一个客户端获取NameNode上面一个文件的契约,然后才可以写入数据,此时其他客户端尝试获取文件契约的时候,就获取不到,只能干等着。通过这个机制就可以保证同一时间只有一个客户端在写一个文件。

在获取到了文件契约之后,在写文件的过程期间&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值