前言 好久没写博客,我一直都觉得写博客说明最近很在学习状态阿。也说明确实很久都没在状态了。 终于穿上了秋裤,冬天和暖气都小跑着赶来了,我的大学时光也所剩无多,我在这里随便记下两三言,愿之后依然能想起此刻的心情。 秋招 8月中从深圳回到学校,一边等转正的结果,一边投了几家别的,开学之后,因为小组地方都没了,在东区三楼咖啡店答了N场笔试。 本来打算中秋回家了,因为9月中已经收到了转正意向书,并且被两个B司虐的不要不要的,然而美好的双假(中秋加国庆)被墨迹的体侧拖累了。再回家已经是中秋之后了。 从回家的路上开始补Produce101,心情是真的很放松呢,毕竟7个月没回家了。然而到家的第一顿饭还没吃上,广州的猪场便打来电话要求去面试,一番和HR的墨迹,最终约在了国庆之后的工作日。 放假在家的我彻底转换为咸鱼状态,101,电影,吃,买衣服,串门,这中间熊厂又给了面试机会,北京的现场面,时间安排在了10月中旬。那时心里已经有点感觉了,我的10月注定没有那么轻松。 国庆之后便是 家–>学校–>广州–> 继续阅读 >>


康艺杰 18/11/04 18:10:14
好久不用就会忘系列 查看表结构 DESC table_name 简单的更新语句 UPDATE table_name SET field_name1=value1 ... where xxx=xxx 重命名表 RENAME TABLE old_name TO new_name 重命名数据库(这个比较鸡贼) 适合于innoDB,并且没有什么触发器之类 比较简单的表 CREATE DATABASE new_db RENAME TABLE old_db.old_table1 TO new_db.new_table1 …. DROP DATABASE old_db 作者:XiyouLinux_Kangyijie 发表于 2018/07/22 15:39:46 原文链接 https://blog.csdn.net/XiyouLinux_Kangyijie/article/details/8115521 继续阅读 >>


康艺杰 18/07/22 15:39:46
汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪。 没保存啊,都是泪啊。 前言 心好累啊,又要写一遍。 从去年初次接触Zookeeper到现在,正好一年了,一直没总结,一方面也是因为自己对分布式系统理解很少,没有什么可说的,如果只是描述一下zk提供的几个原语实在没什么意义。(另一方面就是懒)。 感觉自己终于对分布式可以说是有一定的入门了,所以赶紧记录下自己的成长。 正文 我接触zk相对来说是挺缘分的,因为C++出身,对于Hadoop家族了解甚少,只是在项目中对于模糊的“分布式协同”而找到了zk。就像一场仓促的恋爱,摸不准对方的脾气, 闹出了很多尴尬(够了)。 明天继续。。。 什么是zk zk是hadoop全家桶的一员,后来独立为apache的顶级项目,是google的chubby的开源实现。 很高大对吧。。。但是说了好像没说。。。 通俗的理解,在一个分布式系统的开发中,我们会面对很多共同的问题,比如leader选举/分布式锁,集群管理等等等等,就像后台开发 继续阅读 >>


康艺杰 18/06/30 22:51:57
前言 《深圳男子图鉴》 继续搬砖ing,今天(4天前)看到某面向SSD的项目,赶紧学习了一下SSD的基础知识。 主要是从存储系统、DB开发的角度来看SSD,并非专业搞硬件的,完全初学者。 正文 SSD的寿命 首先是我对SSD最初了解的一点,SSD是有寿命的。由于SSD的物理性质,导致了它是有一定使用寿命的,当每个单元被读写一定次数之后就将不可用。 而主要有3种材质的 SLC MLC TLC 这三种材质最大的区别就是单元存储的bit数不同 SLC1个 TLC3个, 随着存储的bit多,性能(读取、写入延时)越来越高,寿命越来越短,当然成本也越来越低。 损耗均衡 正因为有寿命的影响,所以我们希望整块SSD最好可以达到一个损耗均衡的效果(一个512G的SSD,每天IO数目相同,总寿命有5年,那么我肯定不希望2。5年时只有256G可用。。),所以会有一定的策略来保证损耗均衡。 具体参数可见下图(出自coding for ssd–Part 2)     继续阅读 >>


康艺杰 18/06/17 17:38:26
前言 《深圳男子图鉴》搬砖ing,但是还是不要忘了学习啊。 Linux安装软件一直是一个难以形容的东西,记得刚进小组的Linux知识技能大赛就是安装一个软件(ntfs-3g?)。那么对于Linux下除了方便的包管理系统rpm yum apt-get 等等等等,可以让我们轻松愉快的安装软件之外,还有一种很重要的安装方式,就是源码编译安装。 对于C/C++这种 一次编写,反复调,啊不是,一次编写,到处编译运行的代码,用源码编译来安装几乎是最完美的方式了(ABI问题等等)。 最近在耗时好久完成一次源码编译安装+链接开发之后,又收获了很多知识,赶紧总结一下。 正文 需要安装的软件是ProtoBuffer,因为开发环境很麻烦,所以直接上传源码包安装。 照例我们需要执行 ./configure make make install Ok,那么问题来了。 我们需要编译出的可执行程序protoc,还有他的so库libprotobuf。 但是目前呢,按照这个流程会将protoc放在/usr/bin l 继续阅读 >>


康艺杰 18/06/08 21:40:51
前言 空窗期(这个词是不是很专业)的几天,没什么事做。手边从图书馆借的Ceph的书快到期了,赶紧拿出来看看。 好哒 Ceph 启动! 。。。。。。。。 enmmmmm 明天继续部署 不过在部署的过程中学到了很多ssh的小技巧,改变了这两年很low的操作。赶紧M一下 正文 ssh登录远程主机 这个几乎是很常用的操作了。 $ ssh root@192.168.30.2 但是每次要输入这么长一大串很麻烦,于是我就用了一个很low的办法实现 修改.bashrc alias sshbmw='ssh root@xxx.xx.xx.xx' 之前做分布式爬虫时,要管理3+3台腾讯/阿里云,于是在bashrc里面alias了一堆。。。 现在才知道,可以通过修改ssh的config文件 $ vim ~/.ssh/config (针对不同用户,config不同,需要新建,and设置权限,具体权限我也不太清楚给个744是ok的) 添加 Host agent HostName 19 继续阅读 >>


康艺杰 18/05/23 11:13:24
前言 银行家算法,是我们OS课上的一个非常重要的知识点,感觉可以说是必考题了,但是考试嘛,考过了以后不用就会忘,每次都要重新复(yu)习一遍,又非常麻烦,正好前段时间有机会实现了一遍,赶紧总结下,避免以后又忘了。 正文 银行家算法简介 银行家算法(Banker’s Algorithm)是一个避免死锁(Deadlock)的著名算法,是由艾兹格·迪杰斯特拉在1965年为T.H.E系统设计的一种避免死结产生的演算法。它以银行借贷系统的分配策略为基础,判断并保证系统的安全运行。 (来自wiki) 这里的重点是避免!!! 避免!!! 避免!!! 针对死锁这种坑爹的情况有预防和避免两种大的解决思路,之前总是傻傻分不清楚。这里我们还是通过一个生动的例子来解释吧。 女朋友:康康啊,预防感冒,冲杯板x根吧。 康康:好滴。 女朋友:康康啊,出门系上我给你织的围巾吧,避免感冒。 康康:好几。 感受到预防和避免的差异了嘛,预防就是提前做好准备,而避免则是在实际操作中小心翼翼。 回到死 继续阅读 >>


康艺杰 18/05/21 16:09:33
前言 写简历时,很害怕自己没什么特点,与别人没啥区分度,而平时又感觉改bug比较多。。。于是在自我评价一栏大胆的写上 热爱trouble-shooting ChangeLog: 2018-6-10 update vmstat 从此走上被虐之路。。。 正文 因为我自己主要是Linux 下 C/C++ ,所以enmmm 还是这方面做的比较多。之前也写过一篇类似的博客,主要简述的是改bug的思想(见这篇),这篇主要是从实际工具出发,简单介绍工具的使用及思路。(当然反手一个printf也算是一种工具。。) 主要工具 GDB strace pstack valgrind iotop netstat/ss wireshark/tcpdump 辅助性的 top ps 一运行就段错误的。直接生成coredump文件,生成的方法见这篇 如果堆栈的信息完好,可以之间看到问题出在哪里,一般 print 变量,看看是否是地址越界之类的。 运行起来不动的。 可能是死循环/死锁。 对于多 继续阅读 >>


康艺杰 18/04/02 21:03:23
正文 What 引用一下知乎@骆梁宸的文章Google 编程之夏(GSoC):海量优质项目,丰厚报酬,你竟然还不知道? 这个问题,我们先来看看 Google 官方是怎么说的:(出自 What is Google Summer of Code?) Google Summer of Code (GSoC) is a global program that matches students up with open source, free software and technology-related organizations to write code and get paid to do it! The organizations provide mentors who act as guides through the entire process, from learning about the community to contributing code. The id 继续阅读 >>


康艺杰 18/02/20 20:38:19
前言 半夜登到云服务器上测代码,结果一个tab补全 bash: 无法为立即文档创建临时文件: 设备上没有空间 行了,代码也不测了,先改bug吧。 正文 出现的问题就是tab无法正常补全 这里也很明显,就是磁盘空间不足。 于是用df 命令查看 额。。。GG 磁盘满了 之前暑假的时候就遇到过这种问题,当时是学姐的电脑,开机无图形界面(我这云服务器不需要图形),查看了一下磁盘就是写满了,当时解决的不好,这次赶紧记下来。 最简单的方式就是排除法,顺着目录树从/开始找大文件。 我们切换到root用户然后到/下看看哪个目录占用空间比较大 # du -h --max-depth=1 --max-depth=1就是递归查看深度为1,我感觉也可以不加直接筛选大文件,但是一开始思路比较简单,就是看看哪个目录占用的空间大。 找了几次之后成功定位某大文件,6个多G,rm之。 可是问题依然没有解决。 在/下du查看只有14G 但是df查看依然是20G满了 文件删除的原理 继续阅读 >>


康艺杰 18/02/14 15:21:04