每周所做

2017-08-18

  1. 多线程下的chdir是影响整个进程的,所以多线程协作需要注意这个问题;
  2. 花15分钟的时间用来定义问题,用30分钟的时间来分析问题,再用15分钟的时间来解决问题;
    • 首先把问题定义明白,再去看为什么问题会发生,最后再去解决它;
    • 这个道理同样适用于需求和设计;
  3. 项目中的会议是不中避免的,怎么样应对工作中的会议,需要一定的技巧;
  4. 提高工作效率的方式有两种,一种是花更多的时间,一种是提高单位时间内的工作输出;
  5. 做正确的事,正确地做事。归结为:正确地做正确的事;
  6. 不同类型的锁,适合于不同场景的并发。spin lock不适合于CPU操作较重的操作,它会影响并发度,同时也受并发度的限制;
  7. 资源的使用需要精细化,主要包括CPU、磁盘、网络、内存;性能优化的工作一个都避不过;

2017-06-10

  1. 这一周的时间主要都花在了数据导入的安全特性上了,主要涉及到了open ssl + libevent这两个比较有名的开源库上,但是对这两个开源库的理解和掌握还是比较浅的,后续还要对这两个东东进行深入的阅读和理解。

  2. 除此之外,就主要是阅读了《妹妹的坟墓》这本小说;这本书非常吸引人,我在看到开头的时候就一下子想到了一部电影《沉默的羔羊》,一口气花六个小时的时间把它阅读完,计划后面还会再花时间把它再次看一遍。

2017-06-16

  1. 本周的主要时间还是花在了数据导入的安全特性上,代码和测试基本完成了。另外,也根据问题看了一些openssl + libevent的文章,了解到了一些,但还不是很全面

  2. 阅读《恋情的终结》小说,只看到30页左右,还没有完全看进去的;

  3. 开始阅读网络知识方面的东西,所知甚少;

2017-06-24

  1. 本周主要的事情是把SCTP的代码整体上看了一遍,有了一个整体的认识;

  2. 定位并修复掉了一个内存leak的问题,并对此问题提出了一些可以改进的措施;

  3. 关于网络的问题,花了时间较多,并没有完全地定位到,最终应该是因为IP配置的问题;

  4. 花了一些时间来看网络通信的基本知识,感觉到linux内核学习的必要性,以及网络命令工具的使用重要性;

2017-07-01

  1. 定位了一个内存leak的问题,自己写的gdb统计脚本;

  2. 对最近分析和解决的3个问题总结了RCA文档,主要涉及了内存leak、死锁检测失效、缓存并发的相关问题;

  3. SCTP通信的代码,把如何调用数据发送send的这部分流程理顺了一把;

  4. 完成了一个关于length extension attack的安全文章;

  5. 遇到了glibc < 2.2 版本以下的一个bug, 主要是由bug12847引起的

  6. 另外还有一个关于CPU 100%的问题,当前没有有效的方法来判定它是正常的,还是不正常的 —— 这方面的经验还不足

2017-07-08

  1. 花2天的时间把sctp通信的建立连接过程好好地读懂了,并对这个过程写了一个较为详细的过程文档;

  2. 定位了一个与hd namenode通信的问题,竟然是由于有无符号整数的使用而造成的;

  3. 分析了一个coredump在getaddrinfo/strroul调用过程中的问题,水还比较深的。字符串类型转为数字类型的过程,在glibc底层还会调用到locale的相关信息; 而uselocale()接口是会修改线程化存储变量的指向内存的; 这样,如果堆内存地址已释放,就会直接coredump在这个函数中了,间接地说明了应用程序的bug。这一问题的分析过程中还顺便温习了一下寄存器、汇编指令和C调用过程这些东西,收获还是很大的。

  4. 写一点关于gdb+python脚本初入门的文章。

  5. 关于上周末CPU的问题终于定位清楚了,主要是由两点造成的: 锁分区中相同对象高并发访问的请求冲突; 行存表结构设计得不合理,定长列和变长列混合,并且在列解析过程中低效地总是从元组头开始搜索,导致了严重的CPU使用(80并发,最高使用是CPU 8000%)。短期只能够修复第2点,修复后CPU下降了2000%多。

2017-07-23

上周忘记记录了,习惯不能够丢,一旦丢了,就很难再坚持起来。

  1. sctp通信的数据发送和接收过程,文档梳理完成了;
  2. 性能问题单,依然还是一个比较难的题。DRRECT IO + 异步IO存在读写混合性能下降的问题,设计了较多的测试用例才发现了这一点,当前还无解;
  3. 另外,发现C语言的long jump机制与C++ 异常处理机制配合起来会存在一些总是,根因还不是很明了的。
  4. 经过三周的学习,终于完成了网络安全的自学课程,小考也过了。不过说实话,基础知识还比较薄弱的,需要自己平时继续努力;
  5. 可以关注一下postgresql 9.2以后对锁的优化;
  6. 最近两周发现了一些关于XFS文件系统方面的问题,包括allocsize预分配、dealloc、文件损坏、只在创建会话可以看到新建文件,等等,有些文件最终也无果。

2017-07-29

本周加班通宵了两个晚上,导致其实工作效率极其地低下,算上月末周六,实际工作时间也好像才四天:)

  1. 把sctp通信的错误处理以及所有重要的数据结构都看了一次,也有了较为深刻地理解,其中对uthash和binary semphore印象还是很深刻的,希望有时间地话可以学习并记录一下跟这二者相关的一些东西;
  2. 自己本地通过drop function/create function这两个DDL的并发操作,发现并定位了一些基线的缺陷,根因已定位,修复还未提交;
  3. 下午听defence答辩的时候,对于MVCC以及事务隔离这两个概念又有一些深入的认识,还需要搜索一些资料进入深刻理解;
  4. 想想自己也得赶紧准备下下月的defence了;

2017-07-11

上周又没有记录,习惯一丢就容易没。 幸好上周没有去普惠休检,报出来的事情太恶心了。

  1. 上周跟踪出历史版本的两个问题来,一个是hangup问题,另一个是PANIC问题,藏在代码中有两年以上了;
  2. 主要专心在看新需求,有一部分的问题还是没有完全想明白的。
  3. 在看Google SRE一书,印象比较深刻的是负代码指标,用来删除一些确实无用的代码;
  4. 对于科一的考题刷了一个周,还有一部分题未看完,还好,本周内里是可以看完的;

从下次开始,同内的记录将放到页头进行,减少滚动寻找的时间 。

Table of Contents