29
f6XF
2936462bda8612e290f17231fddca9a658b472680cb661b537b1121d5b3d683b
f6XF

我也是在这段找工作的时间才发现学校学的东西跟社会脱钩太严重了,都互联网泡沫了,学校还教 pascal 和汇编语言,也多亏我跑人才市场看到招聘需求后快速自学了 java 和 jsp,然后去公司报道第二天就出差进项目组搞一个 php 项目,组里有两个同事准备离职急找人补上,看我会 jsp 转 php 快才要的。

@zhh-4096

人还是得经历一点痛苦的事才会成熟。19岁以前我是一个妥妥的社牛,会经常跑去同学的家里住一段时间,我都学会了几种土话。

我开始变得内向就是19岁毕业找工作的那大半年,因为找工作困难,父母认为我这种学习好的人怎么可能找不到工作就是在贪玩不想找工作,所以把我的伙食费都断了,最后真的导致我没有钱吃饭。跟几个同学挤在一间没有厕所的出租房里,他们在出版社找到了搬运工的活我还是无业游民,那段时间真的感觉低人一等。跑去帮我姐摆摊做生意也经常被她骂。那大半年真的觉得自己是个没用的人,以前的傲气全没了。

如果不是因为有这段痛苦的经历,我绝对比现在更狂傲。从2002年年初正式工作到现在一直挺顺的,加上长时间宅在房里独自研究技术,最后变得越来越不喜欢交际。

人还是得经历一点痛苦的事才会成熟。19岁以前我是一个妥妥的社牛,会经常跑去同学的家里住一段时间,我都学会了几种土话。

我开始变得内向就是19岁毕业找工作的那大半年,因为找工作困难,父母认为我这种学习好的人怎么可能找不到工作就是在贪玩不想找工作,所以把我的伙食费都断了,最后真的导致我没有钱吃饭。跟几个同学挤在一间没有厕所的出租房里,他们在出版社找到了搬运工的活我还是无业游民,那段时间真的感觉低人一等。跑去帮我姐摆摊做生意也经常被她骂。那大半年真的觉得自己是个没用的人,以前的傲气全没了。

如果不是因为有这段痛苦的经历,我绝对比现在更狂傲。从2002年年初正式工作到现在一直挺顺的,加上长时间宅在房里独自研究技术,最后变得越来越不喜欢交际。

华为跟阿里确实是两种截然不同的管理风格,有一年我在阿里负责 tomcat 升级替换 jboss 的工作,为了测试各种应用的兼容性,我几乎把整个淘宝网的子系统的代码都拿到了。在阿里可以用自己的电脑可以随意联网,怎么就不担心自己的核心技术被泄露呢?离职时是我主动把自己电脑中跟公司相关的代码删除的。 ​​​

我不是一个循规蹈矩的人,如果去读博我很有可能也会退学。哪怕一家公司有太多约束我也不想去,就比如华为,很多年前他们有个

2012实验室找过我,邮件里沟通了几次,后来一想到去南京跟他们合作一个大数据项目的事,不到一周我就跑了,自己的电脑都不能用也不能联网。最后我就在邮件里说不去了。 ​​​

而且更气人的是,我都不知道自己优秀,学生时代我根本就不像个读书人,特爱玩。得奖对我来说无关紧要,印象最深的一次,期末上台从校长手中领奖状很随意,然后校长当着全校师生的面把我臭骂了一顿。那又如何,最后学校参加各种比赛还不是要派我去。所以我这种人从小就不在乎别人怎么看我的。

@zhh-4096

每个人的成长经历是不同的,像梁博这种常把百司不录挂在嘴边的人当然会努力去证明自己让别人认可。我这人就没遇到多少难事,也就毕业赶上互联网泡沫找了大半年工作,最后还是能进一家国企做专业对口的工作。从小就比全村的小孩聪明,读书10几年文理科在全年级又常拿第一。在论坛上发篇文章就能被推荐进阿里。你说我这种人需要谁认可?在我的脑子里就没有被别人认可的想法,只有我去认可别人的份。

每个人的成长经历是不同的,像梁博这种常把百司不录挂在嘴边的人当然会努力去证明自己让别人认可。我这人就没遇到多少难事,也就毕业赶上互联网泡沫找了大半年工作,最后还是能进一家国企做专业对口的工作。从小就比全村的小孩聪明,读书10几年文理科在全年级又常拿第一。在论坛上发篇文章就能被推荐进阿里。你说我这种人需要谁认可?在我的脑子里就没有被别人认可的想法,只有我去认可别人的份。

每次路过石油小学放学都没见到多少学生,不像育才小学、龙隐小学,一到放学时间人都难挤过去,3个小学相隔不到两公里,人都不傻,好的小学挤破头也要找关系进。 ​​​

tpcc 还没有跑完,NewOrder、Payment、Delivery 这3种事务跑出的性能太诡异,还在排查问题,其他两种事务和批量加载数据都正常了符合预期。跑 tpcc 用来测试并发事务的稳定性确实很不错,因为它每个事务包含的 sql 语句覆盖面广。

满分100,我对自己的工程能力和创新能力都打95分,学术圈的人绝大多数工程能力就是弱鸡。数据库领域我最欣赏的人是 Jim Gray,因为当我第一次打开《事务处理》这本砖头书时才发现这位图灵奖得主居然那么看重工程能力,肃然起敬。在基础软件领域做研究,工程能力差就是不接地气的表现。 ​​​

我过去不想进学术圈,以后更不想进。别说不发论文了,集群版还有更好的技术,连开源都不想开,专利也没必要申请。我花了10几年钻研数据库,就是为了给自己设定目标,这样才能更好的消磨时间。我是为了自己爽,不是为了去学术圈证明自己让别人认可。我从小就是这个调调了,说得不好听就是目中无人。 ​​​

一个开源的可反复验证结果的技术产品就放在那里,连 AI 都能分析得头头是道了,谁特么在乎是不是在学术圈发了论文,学术圈算什么东西,VLDB 的垃圾论文一大堆,你要真觉得自己发的论文牛逼就把它落地做成一个产品,然后跑跑看看谁的性能好。做出一个稳定的性能领先的技术产品不知比发篇论文难多少倍。 ​​​

因为 mysql 的 jdbc batch 实现是非常差劲的,所以它这个批量加载数据的测试是有专门给 mysql 做了优化,不调用用 jdbc batch api,而是把一批数据组装成一条多值 insert 语句,即便对 mysql 优化过了,批量写数据的平均时间依然被 lealone 碾压,tpcc 的表有不少索引,lealone 异步写索引有优势。

@zhh-4096

它这个 tpcc 加载数据的测试就不准了,没有预热,度量的开始时间也不对,主线程花了很多时间在造数据,我给它加了一个指标,就是算平均每个线程执行所有 jdbc batch 操作的时间,lealone 才花了700多毫秒,postgresql 花了3100多毫秒,mysql 花了5810多毫秒。如果按它的结果看总执行时间就差别不大。 ​​​

它这个 tpcc 加载数据的测试就不准了,没有预热,度量的开始时间也不对,主线程花了很多时间在造数据,我给它加了一个指标,就是算平均每个线程执行所有 jdbc batch 操作的时间,lealone 才花了700多毫秒,postgresql 花了3100多毫秒,mysql 花了5810多毫秒。如果按它的结果看总执行时间就差别不大。 ​​​

这会我还躺在被窝里,大冷天就是难起床啊!想起20多年前刚工作,就算大冬天也得7点起床,然后踩8公里的单车顶着寒风去上班。现在的生活简直太幸福了!

我找对象不太关心学历和经济条件的,前任是硕士,去年新认识的又变成职校,前天相亲的又是副高。高学历也大把低情商的,我又不缺钱也不要求对方有个超级稳定的铁饭碗,我最看重的还是对方能不能听懂我在表达什么,相处起来是否轻松,圈子是否干净,是否有主见。我不是 gay,不找男人。 ​​​

桂林排名前5的大学我都认识一些老师,有的还吃过几次饭,我早已对大学老师祛魅了,无论是工作或是婚恋,都不会仰视大学老师(哪怕TA是教授)。如果比较专业能力,我不输他们,甚至能俯视他们,因为我在专业上投入的时间远比他们更多,我不用把时间浪费在勾心斗角和人情世故上。 ​​​

这是我上一次提到王垠的微博,都几年前的事了,他现在在干什么我也不知道。刚好几小时前又看到伞哥被大学解聘的博文,还是挺感慨的。昨晚跟相亲对象聊天时,才知快奔四了正好刚拿到副高的职称,这时别人凑巧把我介绍过去,搞得我像是那种不要脸去舔的人。以前有人给我介绍个副教授我都没去见。[笑cry]

@zhh-4096

王垠远离父母在国外闲得看飞机尾巴的排泄物;伞哥离婚后跑去国外读博,跟导师玩人情世故;我这样的民科比较恋家,在家乡也能自得其乐。三个同龄的中年技术男,各有各的活法,自己觉得舒服即可,我偶尔吐槽王垠也只是说他最近几年的思想走偏了。

我已经好久没有关注王垠了,自从他不再专心研究技术之后我也没啥兴趣再关注。我比他更纯粹一点,玩了16年微博至今没有收割一个粉丝,我只专注做一个技术产品,目前唯一收入就是投资股票。所以过去的网友除了说我曲高和寡、自恋之外,确实也找不到什么槽点可喷的。 ​​​

Andy Pavlo 每年的数据库总结挺有意思,很多观点不谋而合,比如 MySQL 快完蛋了 PostgreSQL 在崛起;时序数据库我一直说市场太小,能发挥的空间有限,所以一直懒得做,现在连 Timescale 都改名成 TigerData,就怕别人说它只是个时序数据库。 ​​​

当两边都叫爷爷奶奶后,我听过大人们跟孩子的对话,比如在爷爷奶奶面前加地名,这样才知道说的是哪个爷爷奶奶。如果一边是农村人另一边是城里人,农村的爷爷奶奶明显就不如城里的亲,最后发现只比上门女婿好一点。[允悲]

@zhh-4096

中国女性的地位现在放眼全世界也没有多少个国家能比。我有7个堂弟,就剩两个最小的没结婚,我预测最后至少有4个堂弟结婚生娃2+个至少有一个得跟母姓,外公外婆这种物种正在消失,因为两边都叫爷爷奶奶。即便我跟前任聊到结婚的事时,她家里也是要求至少有一个孩子跟母姓,也要求两边统一叫爷爷奶奶。 ​​​

http://t.cn/AXbiNkdH网页链接 我才知道田春被大学解聘的事,所以西方也没有什么言论自由,微博调侃几句也能丢工作。还是我这种独立研究者自在,不依附于任何人和机构,玩玩股票就能轻松赚到生活费,不需要为五斗米折腰。2006年我放弃考研,拒绝进学术圈是明智的! ​​​

小孩子在上小学前的几年比较讨喜,在我印象里我叔叔伯伯也是在我上小学前会带我玩玩,之后就没啥印象了,我现在跟他们的关系就是一年见几次面。我跟我侄女们也是这样的相处模式,并没有多深的感情,等我老了生病住院了能来看我一次我就谢天谢地了。跟父母和亲姐弟的感情深,我通常会对感情深的人更好。 ​​​

tpcc 我是用别人写的实现跑的,里面有个批量加载数据的测式,计算的时间太杂,把一堆输出中间结果的步骤也算在内,只有一个主线程在造数据,按它这个时间度量的方式,lealone 最多比 h2、mysql、postgresql 快了50%而已,然后我修改了一下,只度量调用 jdbc executeBatch 的累计时间,结果瞬间快几倍。

@zhh-4096

又开始跑 tpcc 了,其实 tpcc 并不一定能真实度量出数据库的实力,因为它是测事务数的,一个事务通常会包含多条 sql 语句,每执行其中一条 sql 都需要网络开销,如果网络开销的累计耗时占了大头,最后 tpcc 测出的每秒事务数其实就是测网络开销。

现在农村很多连女朋友都找不到的大龄剩男,说实话绝大多数要么是没能力还得靠父母养要么就是人品有问题。农村家庭很多都谈不上有什么教育,自私自利的人一大把。我不敢说我有多高尚,但我绝对是希望兄弟姐妹过得好的人,能做到不看重钱还出钱帮助兄弟姐妹从农村搬到城市,在农村怎么说都是凤毛麟角。 ​​​

上上个周末叫我侄女把英语和数学的卷子发我看看,我想知道她哪些知识点没掌握好,她说家里没有,等她回学校了再发给我,结果上周等了一周都没发,前天我又催了一下她,又没有回应。说实话,看到这样的小孩我是有点失望的,答应的事都不能做好,说明父母很多小事都没教育好。

这就是很典型的底层家庭的教育,都谈不上教育,孩子的品行要不要纠正都意识不到。虽然我比他们的文化水平高,但是又不住在一起,又不是我的孩子,我不可能连侄女的教育都全去管,这也不是我的义务。

每次听到一楼那家人的小女儿跟父母大吼大叫的相处模式,我都很震惊。所有这些底层家庭生娃养娃都靠运气,因为根本就不知道如何教育子女,读书是好是差,人品将来好不好,都靠运气。

加了相亲对象的微信后昨晚聊了一下,我的直觉告诉我没戏。

过去10年聊过的妹子少说也有15+个,其中30+岁的大姑娘和20+岁的小姑娘人数差不多各占一半。大姑娘普遍难聊,哪怕她是多年不见的初中同学,我第一个前任跟她正式谈时她也是大姑娘,在我印象里就没怎么主动过,更别说能提供什么情绪价值。大姑娘的普遍毛病就是爱端着,哪怕你的赚钱能力是她的10倍也依然会有一种我求她跟我聊天的感觉。

我遇到的这些小姑娘里就没有一个不好聊的,她们有好奇心有活力甚至还有一点慕强。我第二个前任就是20+,恋爱前和谈恋爱时的感受比第一任不知好了多少倍,以至于前段时间第一任想回来找我时被我无情拒绝了,甚至跟她直说我跟她过去的恋爱是痛苦居多,都算不上恋爱。

这就是为什么男人普遍喜欢找小姑娘的原因。

美股开局3个交易日还不错,昨晚又赚了几千人民币,日常开销小就是好啊,再操盘一两次就能把2026年的生活费全赚够了。现在知道我为什么能无忧无虑的研究技术了吧?若是一直不结婚只顾自己真花不了几个钱,只要物质欲望不高,赚点生活费太容易了,然后就能按自己的喜好随心所欲去研究技术哪怕不赚钱。 ​​​

https://postimg.cc/JtH927Qv

又开始跑 tpcc 了,其实 tpcc 并不一定能真实度量出数据库的实力,因为它是测事务数的,一个事务通常会包含多条 sql 语句,每执行其中一条 sql 都需要网络开销,如果网络开销的累计耗时占了大头,最后 tpcc 测出的每秒事务数其实就是测网络开销。 ​​​

通过实际测试又发现一个反直觉的案例: 当初为无主键无索引的表设计一个 append 方法,是想不需要通过折半查找算法直接就能把记录 append 到 btree 最后一个 leaf page,这样不用走正常的 put 方法,因为 put 方法需要事先自动生成一个 row key,然后通过折半查找算法定位所在的 leaf page。实际测试下来发现,如果是多线程批量写的场景,用 put 方法居然比用 append 方法快一倍,因为 append 方法总是写最后一个 leaf page,会快速造成多线程写冲突,而 put 方法因为要提前生成 row key,不一定会同时写到同一个 leaf page,所以反而降低了写冲突,反而更快了。

如果是多线程非批量写的场景,用 append 和 put 反而没什么区别,因为客户端逐条执行 insert 语句时,有先后的时间差,在后端执行 append 操作的线程本身冲突就小。

总之,设计 append 这个写入数据的方法看起来是多余的。

@zhh-4096

早上压测了一个网友给的老项目,批量写了600多万条记录,lealone 的性能居然只比 h2 快了20%,然后我回头再压测了一下我写的批量压测例子,批量写960万条记录明明快了两倍。太诡异了,可能我的字段少,表也有主键,没有主键的表实际上都是串行直接 append 到最后一个 page,发挥不了多线程的优势。 ​​​

技术人员有自己熟悉的技术栈,比如对 mysql 熟练了反而不会轻易换其他不熟悉的数据库。我自己有时也长常遇到这种问题,比如某个项目经理跟我关系好,想给我个面子让其他开发人员学习一下我的数据库,但是开发人员会不情不愿的,我很了解这种心理,所以我比较佛系,如果 mysql 满足不了需求再尝试一下 lealone 即可,没必要靠面子去推。

早上压测了一个网友给的老项目,批量写了600多万条记录,lealone 的性能居然只比 h2 快了20%,然后我回头再压测了一下我写的批量压测例子,批量写960万条记录明明快了两倍。太诡异了,可能我的字段少,表也有主键,没有主键的表实际上都是串行直接 append 到最后一个 page,发挥不了多线程的优势。 ​​​

java 的 nio 库的确比较坑,即便配置了阻塞模式,调用一次 SocketChannel.read(ByteBuffer),它也不会读满 ByteBuffer 的,得在一个循环里反复调用,直到读满达到 ByteBuffer 的 limit。就为了这个问题排查了一早上。[摊手] ​​​

有网友问用 c/c++ 重写 lealone 会不会比现在用 java 更高,能高5%就了不起了,完全没有重写的必要,除非想挑战 sqlite 应用到资源更受限的嵌入式场景,比如可用内存连 jvm 都跑不起来。

在最廉价的普通笔记本电脑上 lealone 的性能都已经远远甩开 sqlite、mysql、postgresql、mongodb 这些用 c/c++ 开发的主流开源数据库了,lealone 的性能已经做到极致,现在还能限制 lealone 的性能的早已不是程序语言,而是缓慢的硬盘和网络,哪怕通过 localhost 访问 lealone,通过 localhost 传输数据的时间也远远高于 lealone 处理单条 sql 的时间。

做技术产品,从产生灵感,到反复实践,最后得到验证,整个过程才是最愉悦的。花了3个月把想到的优化点都做完了,一下空荡荡的。寻找新灵感的过程其实是最痛苦的,完全不知道什么时候会出来新的灵感。好的灵感不是靠用户需求驱动,用户需求更多的只是新功能堆砌,并不一定有挑战。 ​​​

i5 的 cpu,严格来说只是4核8个超线程,比真实的8核还是差一点的。即便是用配置了i5的笔记本电脑也能跑出这样的性能已经很不错了,中小应用的并发需求使用单机版的 lealone 8.0 买台三四千块钱的笔记本电脑来跑,真是绰绰有余。

@zhh-4096

lealone 8.0 在 client-server 和嵌入式这两个场景的优化都做完了,得到一些极限数据:

16个并发就能把8核的 cpu 跑满,使用同步 jdbc api 通过 localhost 压测数据库,lealone 8.0 测得的极限数据是每秒能并发逐条执行16万条 update 语句;如果是在嵌入式场景下压测,每秒能并发逐条执行48万条 update 语句,也就是嵌入式场景比 localhost 这种 client-server 场景快了两倍。如果用异步 jdbc api 通过 localhost 压测能达到38万,跟嵌入式场景就没那么大差距了。

mysql 和 postgresql 无法测试嵌入式场景,localhost 测得的数据都是每秒5万左右。sqlite 在嵌入式场景测得的数据跟 lealone 相比差太多,每秒并发逐条执行的 update 语句是4.5万。