爱看书的阿东

赐他一块白色石头,石头上写着新名

谷歌三件套 - Bigtable

引言

如标题所言,这一篇文章简单介绍BigTable,其实个人更建议看LevelDB这款开源数据库,因为这数据库也是Bigtable的作者 JeffreyDean 设计的,很多内容不能说像简直就是一模一样。

值得注意的是,看Bigtable的内容千万不要带着关系型数据库的思维,建议看之前看看《数据密集型应用系统设计》的第三章,里面提到了LSM-Tree以及大数据系统设计思想,或者看看个人之前写的文章 [[《数据密集型型系统设计》LSM-Tree VS BTree]]

三件套论文资料

Bigtable 原始在线论文: Bigtable: A Distributed Storage System for Structured Data

MapReduct 原始在线论文:MapReduce: Simplified Data Processing on Large Clusters

GFS 原始在线论文:The Google File System

如果看不懂英文或者想要线下阅读,个人从某全是广告的技术网站买了一份中文翻译以及原始英文论文PDF,合并到一起免费分享给大家(虽然掏钱买也没几个钱):

链接: Google-GFS,Bigtable,Mapreduce三大论文英文原版+中文翻译 提取码: 82ok

(如果链接失效可以关注公众号“懒时小窝” 回复“谷歌三件套”或者“谷歌”获取这些内容)

阅读全文 »

引言

乘着假期的尾巴看了这一部电影,不得不说虽然豆瓣的高分不一定是好电影,但是这一部上世纪五十年代的电影还是值得观看。

本文内容包含剧透

兑现前两天立得看电影的Flag,个人认为不管是好的电影还是书籍都是值得记录和回忆的, 为了让自己不忘记电影留下点东西也为不白白浪费两个小时的 宝贵人生。

故事内容

一句话概括:《生之欲》讲述了一位官僚在发现自己患了晚期癌症后,试图在他的生活中找到意义。

A bureaucrat tries to find a meaning in his life after he discovers he has terminal cancer.

生之欲》(日语:生きる)在香港译作《流芳颂》,乃是1952年由日本知名导演黑泽明执导的电影,曾获得日本每日电影最佳影片奖电影旬报年度最佳影片奖、柏林影展特别奖等奖项。

在市公所工作30年的市民课课长渡边勘治每天过着盖章、签公文的乏味生活,某日因身体不适前往医院检查,结果竟被告知罹患胃癌末期,只剩下约半年的生命。回到家中,儿子媳妇对他并不友善,甚至可谓不孝。感到悲伤的渡边,带了毕生积蓄离家出走,也不去上班了。他在外头遇见一位小说作家,告之自己将不久于人世,他认为从未替自己好好活过。小说家同情其遭遇,带他去打小钢珠,甚至去声色场所。对渡边来说,虽然这些事很新鲜,但到头来却觉得空虚落寞。第二天他就告别了小说家,一个人孤独的走在街上。

他遇见了市公所的一位年轻女职员小田切丰,后者表示她厌倦公务员无聊的工作,已觅得新职,却因课长没来上班,没人批准辞呈。渡边便将小田切带回家中,为她盖离职同意书;见她丝袜破掉,想为她买双新的。这天他要求小田切带他去玩,两人也度过快乐的一天。但回家后却遭到儿子辱骂,认为他之前带走的存款算是家用的一部分;儿子同时误会小田切是他的年轻情人,要求父亲自重。

过了几天后,渡边前往小田切新任职的玩具工厂,希望她再陪着出去玩。小田切原本不想答应,但渡边苦苦哀求,她只好同意。晚上来到一家西餐厅,渡边的举动让小田切以为他要对她不轨,十分害怕。没想到渡边告诉她自己得了不治之症,来日无多,但是见到小田切如此年轻有活力,希望小田切告诉他究竟活着是为了什么。小田切只好战战兢兢的拿出一只玩具子告诉他,她平常在工厂工作就是做这种东西;只要想到自己做出的东西是为别人带来欢乐,自己也就很开心。渡边突然想到自己想要什么了,向小田切道谢后便离开餐厅。此时碰巧有群年轻人替一位少女庆生,众人唱起生日快乐歌,仿佛在庆祝渡边的重生。

翌日渡边再度回到市公所上班,将他请假这些日子的公文全数拿出来,发觉有件案子是许多妇女前来陈情,希望将某条臭水沟改建为公园,却屡屡遭到各单位互踢皮球不愿处理。他决定要处理这件事,带着下属开始各处奔走。5个月后,渡边过世,在灵堂上大家开始回忆他生命最后5个月的过程,发觉他非常努力奔走以建立公园,最后甚至选择在大的夜里独自快乐的唱着歌,死于自己亲手建立的公园里。虽然在守灵的酒会上,大家如此怀念渡边所做的一切,但等到第二天上班时市公所 依就弥漫着官僚之气。尽管有职员看不过去,心中认为应该要继承渡边的精神,但也仅止于缅怀而已。

阅读全文 »

LSM-Tree - LevelDb 源码解析

引言

在上一篇文章[[LSM-Tree - LevelDb了解和实现]]中介绍了LevelDb相关的数据结构和核心组件,LevelDB的核心读写部分,以及为什么在这个数据库中写入的速度要比读取的速度快上好几倍。

LevelDB的源代码还是比较好懂的,好懂到我只学过学JAVA只有定点基础C语言入门知识的人也能看懂,另一方面作者在关键的地方都给了注释,甚至告诉你为什么要这么设计(写的很好很棒让人落泪为什么自己没这样的同事)

如果还是看不懂,作者也写了很多数据结构介绍的md文档(在doc目录中)告诉你核心组件的作用。

总之,不要惧怕这个数据库,无论是作为优秀代码和设计模式还是各种主流数据结构算法应用都非常值得学习和参考。

Tip:这一节代码内容非常多,所以不建议在手机或者移动设备阅读,更适合在PC上观看。

阅读全文 »

LSM-Tree - LevelDb Skiplist跳表

跳表介绍

跳表(SkipList)是由William Pugh提出的。他在论文中详细地介绍了有关跳表结构、插入删除操作的细节。

文档:Skiplist跳表原始论文 - pugh-skiplists-cacm1990.pdf
链接:http://note.youdao.com/noteshare?id=667aed96f012edcada047baf75aa1769&sub=B427E00C818B428ABD38A813180AF9A8

背景

在线性的数据数据结构中我们经常可以想到数组和链表,数组是插入慢查询快,而链表是插入快,查询要稍微慢一些,而跳表主要是针对链表查询速度进行优化的一种数据结构,多层级的跳表实际上是对底层链表的索引,非常典型的空间换时间,把链表的查询时间尽量控制在O(logN)。

阅读全文 »

LSM-Tree - LevelDb布隆过滤器

引言

布隆过滤器有点类似哈希表,但是比哈希表的效率要更高,因为使用了位来判断Key是否存在,布隆过滤器在完成高效搜索key是否存在的同时带来一定的副作用– 不保证Key一定存在,所以它只适用于允许一定容错率的系统。

一句话概括:Bloom Filter 是一个基于概率的数据结构,它只能告诉我们一个元素绝对不在集合内或可能在集合内。

布隆过滤器比较悬浮的东西是它不保证元素百分百在一个集合内,所以适用于具备一定容错的业务,关于它的理论和实践很多内容都是参考或者直接摘自网上的资料加上自己的理解,如有错误欢迎指正。

阅读全文 »

14岁懂社会-《被你讨厌的昆虫们》读书笔记

引言

曾经为之讨厌的东西,实际接触之后才发现那么多喜爱,这是看完这本书之后感触最深的一句话。对于作者来说昆虫们因为不被人接受逐渐淡出视野惋惜,真正喜爱的人才能发现昆虫的魅力。个人观察过最多的动物大概是蚂蚁的,不知道为什么特别喜欢蚂蚁搬东西的场景,每次看到这样的画面都会忍不住看上几眼或者放空电脑盯上很久。

最后作者提到的《生之欲》这部电影倒是意外收获,打算后续无聊打发时间的时候看看。

生之欲》(日语:生きる)在香港译作《流芳颂》,乃是1952年由日本知名导演黑泽明执导的电影,曾获得日本每日电影最佳影片奖电影旬报年度最佳影片奖、柏林影展特别奖等奖项。

阅读全文 »

阿里云OSS图床搭建

介绍

过去介绍过Gitee的图床搭建,用了一年多都挺稳定了,访问速度尚可,但是2022年开始发现不是很稳定,并且部分网站会发现“图片消失”的情况,F12看一下发现是很多外国网站给直接302临时重定向了。

所以为了保证数据安全,这里无奈只能掏钱买阿里云的 OSS做图床了,查了下价钱也还能接受,标准LRS存储一年也就10块钱。

本文就根据OSS配置再结合个人常用的几个软件来总结阿里云OSS相关配置和应用。

阅读全文 »

14岁懂社会-《给想要成为医生的你》读书笔记

引言

看到这样的书名难免让人止步,但是即使是不想成为医生我看完之后依然认为十分有收获的一本书,而对于渴望成为医生的人来说这本书大概是在“浇冷水”,因为挽救生命的职业既是天使也有可能是魔鬼。

这本书也是比较著名的医生写的,也确实看得出是医生写的出来的书,但是行文却和医生严肃的面容大相径庭。

不过日本人给作者取了一个“上帝之手”的称号属实没绷住

阅读全文 »

LSM-Tree - LevelDb了解和实现

引言

自从[[《数据密集型型系统设计》LSM-Tree VS BTree]]这篇文章完成之后,对于LSM-Tree这种结构非常感兴趣,于是趁热打铁在之后的几天静下心来研究了一下LevelDB的具体实现,最终阅读了一下源代码。

本文涉及了LevelDB的基础功能和相关数据结构的介绍,最后讲述LevelDB中至关重要的读写操作,通过设计数据结构和读写操作的讲解,相信读者可以自行解答为什么LevelDB可以做到极为高效的读写操作,并且比查询操作要远远优秀。

阅读全文 »

【Mysql】三高Mysql - Mysql索引和查询优化(偏实战部分)

引言

​ 实战部分挑选一些比较常见的情况,事先强调个人使用的是mysql 8.0.26,所以不同版本如果出现不同测试结果也不要惊讶,新版本会对于过去一些不会优化的查询进行优化。

​ 实战部分承接上一篇文章:三高 Mysql - Mysql 索引和查询优化(偏理论部分)

阅读全文 »