look what I did

以下为看 Google MapReduce 论文的笔记,后续有实践和看其他资料会慢慢补全。0. 介绍因为有大量的任务需要分布式运行,为了避免编写分布式程序需要在程序中引入大量的任务分发和容错处理的代码,MapReduce 诞生了。计算、容错、数据分布、负载均衡等复杂的细节都被封装在一个库中。执行过程

1. 性能优化代码细节Spark 是惰性求值的,只有当必要的时候才会读入数据,当然一个数据可能读入多次。这样可以方便语法分析器优化执行的方案。PySpark 中,当用类包装 Function 的时候,不要传入 self.xxx,而是需要把 self.xxx 转成一个局部变量然后传入,避免把整个类都传

失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了失败了

读薄《高性能MySql》(一)MySql基本知识读薄《高性能MySql》(二)Scheme与数据优化读薄《高性能MySql》(三)索引优化读薄《高性能MySql》(四)查询性能优化对MySql进行优化,必须对Scheme,索引,查询语句一同优化。通过前面的章节我们掌握了Scheme和索引的优化,最后

深入java并发包源码(一)简介深入java并发包源码(二)AQS的介绍与使用深入java并发包源码(三)AQS独占方法源码分析AQS本文章会讲解AQS的使用方法,然后通过DEBUG跟踪AQS执行的一系列操作来分析源码,读者跟着文章DEBUG跟踪源码能更容易理解。AQS是什么?AbstractQue

读薄《高性能MySql》(一)MySql基本知识读薄《高性能MySql》(二)Scheme与数据优化读薄《高性能MySql》(三)索引优化读薄《高性能MySql》(四)查询性能优化#1基础知识为了看懂这一篇博文,请先看懂B+树。因为MySql中大多数的引擎都是用这个数据结构作为索引的,特别是Inno

AQS的实现原理学完用AQS自定义一个锁以后,我们可以来看一下刚刚使用过的方法的实现。分析源码的时候会省略一些不重要的代码。AQS的实现是基于一个FIFO队列的,每一个等待的线程被封装成Node存放在等待队列中,头结点是空的,不存储信息,等待队列中的节点都是阻塞的,并且在每次被唤醒后都会检测自己的前

读薄《高性能MySql》(一)MySql基本知识读薄《高性能MySql》(二)Scheme与数据优化读薄《高性能MySql》(三)索引优化读薄《高性能MySql》(四)查询性能优化选择更优的数据类型当我们设计数据类型的时候应该选择最优的数据类型,因为好的数据类型会使数据库性能提升很多,特别是在使用O