Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

qtmuniao.com

Muniao's blog

Get the latest updates from Muniao's blog directly as they happen.

Follow now 32 followers

Latest posts

Last updated 2 months ago

在云上进行大规模数据处理的一些实践

2 months ago

随着云基础设施的不断成熟,新兴的公司为了快速实现业务目标,一般都会让基础设施上云。而在云上进行开发与传统上直接使用物理机开发其实有很大不同。云上更强调共享和弹性,此外,规模变大又会带来隔离性。这些改变也倒逼我们在进行开发时做出一些改变。在云上进行大规模数据处理,我主要有一些 spark 和 ray 的经验,使用的语言主要是 python;从这些技术栈出发,谈谈一些还算行之有效开发实践。 使用 ray 在云上进行大规模数据处理,一个基本的思路是:构建最小可并行单元,进行功能测试和性能测试,然后再利用 ray.data (比如 map,map_batches...

数据可视化利器—— Streamlit 的有趣哲学

5 months ago

streamlit 是一款可以快速进行简单网页开发的 Python 库,其 slogan 是: A faster way to build and...

从“丰巢”快递柜看 Jemalloc 的内存管理

10 months ago

引子在某些工作负载中,随着时间的推移,内存的使用会逐渐增长,直到 OOM。后面发现是内存碎片问题,而将系统默认的内存分配器(glibc malloc)换成 jemalloc ,能有效控制内存的增长上界。 为了解其背后原理,便找来 jemalloc 最初的论文:A Scalable Concurrent malloc(3) Implementation...

Snowflake:云原生数仓的开创者

12 months ago

Snowflake 由甲骨文的两位员工在 2012 年出来创办,一开始就瞄准云原生数仓,因此架构设计(在当时看来)非常“激进”。超前的视野带来超额的回报,Snowflake 在 2020 年正式上市,市值一度高达 700 亿美金,创造了史上规模最大的软件 IPO 记录。 本文我们综合两篇论文:The...

人生是旷野 —— 罗素《幸福之路》

about 1 year ago

缘于某个播客提了一嘴,便找来书在通勤时听了。这版是傅雷翻在 1939 年译的版本,有一股淡淡的老式白话风。小书不长,几天便听完。我喜欢在走路的时候听东西,所听入耳、所观入眼,哲人的凝言练语、街头的风物百态,总能在心里发生奇妙的化学反应,偶在三伏天都一激灵。 最近心绪颇为起伏,在上下班踱步听这本书时,数次给我宽慰平和,书中指出的快乐和不快乐之因,都命中了我的某些缺点和特点,因此听完觉得还是要写点东西。 罗素《幸福之路》人类从狩猎时代进入农耕时代后,虽获得了生活的相对安稳,却也失掉了向外的探索和冒险。到工业时代,城市化加剧,进一步脱离了自然的“蓝领白领”亦是如此。只有少数的企业家才仍然保持着丛林式的生活方式。 选择安稳意味着有大量的“烦闷”(Boredom)需要排遣。但多数人过度的将注意力集中在自己的身上,比如畏罪狂(纠结于行为不符合少时的成见或社会的规训)、自溺狂(过度期待外界称许的虚荣)、自大狂(过度的权力欲望),则使得这种烦闷愈加在幻想中野蛮式的生长,直至占满人们的内心。

使用 ray.data 进行大规模数据处理(二):全局视角

about 1 year ago

ray.data 是基于 ray core 的一层封装。依赖 ray.data,用户用简单的代码,就可以实现数据大规模的异构处理(主要指同时使用 CPU 和 GPU)。一句话总结:很简单好用,同时也有很多坑。在 上一篇中,我们从用户接口出发,浅浅地梳理了一下 ray.data 的主要接口。本篇,我们从宏观的角度,大概串一下...

有趣的线性代数(一):矩阵乘法

about 1 year ago

由于对各种矩阵运算物理意义的理解总是跟不上,因此尽管多年多次尝试入门机器学习,却总是被拒之门外。偶然间同事推荐了 MIT 那门经典的线性代数公开课,听了几节,煞是过瘾,之前紧闭的大门竟有打开一丝的感觉。 因此,本系列会在每篇文章分享一些课程中有意思的点。为了避免晦涩,每章会尽可能去上下文、保持简短,请放心食用。也因此,本系列会牺牲一些精确性,且并无体系化,仅仅旨在唤起你一丢丢兴趣。注:例子都由 KimiChat 生成。

Infra 面试之数据结构五:顺序组装

over 1 year ago

这是我在很早之前遇到的一个题,很有意思,所以到现在仍然记得。题意借用了 TCP 的上下文,要求实现 TCP 中一个“顺序组装”的关键逻辑: 对于 TCP 层来说,IP 层的 packet 是乱序的收到。 对于应用层来说,TCP...

关于如何在晴天卖出 250 把雨伞这件事

over 1 year ago

说的就是我的大规模数据系统专栏《系统日知录》—— 有人问,在读了你的专栏文章后,可能很久之后才可能会用到都不会用到,那为啥要买呢?何况,雨伞在雨天可是刚需,这专栏在面试的时候可不是。所以这实在不是一门好“生意”——受众狭窄、场景低频,两者乘数,便是我这惨淡销量了。 这也是为什么成功的专栏动辄上万次购买,而我只卖了个二百五,也敢把经历拿出来说一说了。万一你有类似的危险想法,也可以参考一二。

螺蛳壳里做道场:实现一个64KB的迷你文件系统

over 1 year ago

本文主要“编译”自书籍《Operating Systems: Three Easy Pieces》第 40 章,这是一本非常深入浅出的书,推荐给所有对操作系统感到迷茫的同学。本文件系统基于一个非常小的硬盘空间,以数据结构和读写流程为主线,从零到一的推导出各个基本环节,可以帮你快速建立起对文件系统的直觉。 文件系统基本都是构建于块存储之上的。但当然,现在的一些分布式文件系统,如 JuiceFS,底层是基于对象存储的。但无论块存储还是对象存储,其本质都是按 “数据块” 进行寻址和数据交换的。 我们首先会探讨一个完整的文件系统在硬盘上的数据结构,也即布局;然后再通过打开关闭、读写流程将各个子模块串起来,从而完成对一个文件系统要点的覆盖。

影响我写代码的三个 “Code”

over 2 years ago

本篇文章来自我的小报童专栏,初步规划有以下几个系列: 图数据库101系列 每天学点数据库系列 系统好文推荐系列 读书笔记系列 数据密集型论文导读系列 会保证每周不低于两篇更新,订阅方式见专栏介绍,欢迎喜欢我文章的朋友们的订阅支持,激励我产出更多优质文章。 国内很多大学的计算机专业,比较偏重基础和理论的“灌输”(就我当年上学的体验,现在可能会好一些),对于代码能力,虽然也有一些课程实验,但往往不太够用。于是,在进入正式工作前,很多同学就会对自己代码水平不太自信。下面我就根据我自身的写代码经历提供一些建议。

Facebook Velox 运行机制全面解析

over 2 years ago

概述Facebook Velox 是一个针对 SQL 运行时的 C++ 库,旨在统一 Facebook 各种计算流,包括 Spark 和 Presto,使用推的模式、支持向量计算。...