2019.9.7 concurrency control,replication control和scheduling

  第七章

  先讲的RPC(Remote Procedure Call)即远程过程调用,就是说一台机器上的函数要调用另外一台机器的函数,本质上就是远程通信。

  由客户端向服务端请求一大堆RPC,就组成了一个transaction,中文叫事务。当然,可能会有很多客户端同时向服务端请求事务,那么就会出现并发问题,因此单个事务是必须有原子性的,要么一次执行完,要么就回滚到执行前的样子。事务需要有ACID的属性。

  既然很多客户端同时向服务端请求事务的时候可能会出现并发问题,那么该怎么解决呢?两种方案:悲观算法和乐观算法。悲观算法就是加锁,常用的一种叫two phase locking,不过既然是加锁就可能出现死锁,那么跟单进程的情况一样,也有一些方法去检查和避免死锁。乐观算法的效果比加锁要好,利用到了时间戳。两种算法这里讲的稍微详细些https://www.jianshu.com/p/25d78bab9386。

  

  然后是replication control,就是说一个对象要在不同的机器里面保存副本,那么有两种方案,一种是集群中选出一个leader,由它处理读写和同步,另一种是没有什么leader,只要保存副本的都一直保持相同的读写和同步。比较常用的一种replication control叫two phase commit,可看这里https://www.cnblogs.com/sunddenly/articles/4072882.html。

   第八章

  先讲了一堆数据处理算法...然后是网络结构...我都没听。然后是scheduling,单机的scheduling算法FIFO,最小任务优先,最大有限局,round robin,具体这里可以看一下https://blog.csdn.net/u011774517/article/details/61420855

       然后是hadoop的scheduling,capacity scheduler和fair scheduler。最后讲了一个比较新的dominant resource fair scheduler。老实说这几个我困得不行一点没听...

  明天把第九章随便听听这门课就可以结束了...

  

 

转载于:https://www.cnblogs.com/dynasty919/p/11482771.html

你可能感兴趣的:(2019.9.7 concurrency control,replication control和scheduling)