
introduction
向标杆直跑
这个作者很懒,什么都没留下…
展开
-
系统设计链接收藏
分步式存储https://www.zhihu.com/question/25834847 (知乎问题)原创 2019-11-26 01:20:16 · 171 阅读 · 0 评论 -
System design
(1)首先,问下有哪几个CORE FEATURE。因为没有人能够在短时间把所有的系统都搞定。他们关心的地方,才是我们要仔细设计的地方。https://www.youtube.com/watch?v=KmAyPUv9gOY(2)比如tweet功能,需要数据库设计,user table,tweets table等等。primary key,relation等等。one-to-many,一个use...原创 2019-10-25 02:22:42 · 296 阅读 · 0 评论 -
wechat后端读后感
基于许家滔10/17/2018在架构师大会上的presentation,linkSummary:得着:微信的后台系统从high-level看很清晰(也加上是图画的好),接入层BFF分移动端和PC端,业务逻辑收发消息和朋友圈,登录都是常用功能,收藏功能没有试过。其实他不知道是不是故意漏了支付功能,和搜索功能。再下层的业务逻辑类似中台(mid-end)。提供技术切入的基础设施/基础业务(从基础...转载 2019-05-22 22:33:25 · 275 阅读 · 0 评论 -
Reading notes (3) 自动scale的Anna,PVLDB19
ANNA是Berkeley的分布式KV数据库。经过改进之后,它能够在不同的tier纵向选择合适的介质,比如aws里面的内存介质和EBS。它也能够横向的扩展和收缩。它还能够主动复制热点数据到不同的节点,避免系统热点,提供更高的查询性能。所以他可以纵向,横向,以及复制,来更灵活的提供高性能和价格的取舍。这一切都是根据policy自动进行的。...原创 2019-04-25 11:07:27 · 148 阅读 · 0 评论 -
列数据库中的Materialization
数据库中的物化就是把列的格式转化成用户需要的行的格式。这个代价比较昂贵,系统必须在每列中找到对应的数据,然后再把不同的列中对应的数据拼起来。所以列存数据库会采用延迟物化的技术,先利用query中的查询条件,把列中的对应ID找出来,然后做一个聚合,看看满足每个条件的ID到底有哪些,然后在select语句中的对应column把这些ID对应的数据找出来。查询就完成了。...转载 2019-04-25 10:58:57 · 1221 阅读 · 0 评论 -
K8s (7) tricks (namespace, event, etc)
创建了Deployment但是Kubectl找不到?可能是在不同的namespace不是所有的资源都是namespace分离的$ kubectl api-resources --namespace=true$ kubectl api-resources --namespace=false比如这个deployment找不到,那可能在其他的namespace, 加入–namespace=de...原创 2019-05-03 23:58:02 · 368 阅读 · 0 评论 -
微服务 (1)
康威定论说组织架构会导致程序设计架构类似。现实生活中,组织分成一个个部门,最后却开发出一个单体程序,这样TEAM间的协调占了很大一部分时间,有时不协调。而把一个个微服务组成一个微服务架构,有时候是合理的。其实一个单体架构也是模块化的,而组织的大小决定了服务的粒度。我们所说的微服务,在更大尺度的地图上就是一个单体系统内部的联系。比如太阳系,在银河系里就是一个系统,内部是有微服务的。微服务就是个内...转载 2019-04-24 05:56:18 · 118 阅读 · 0 评论 -
K8s (4) CNI和网络
Container Network interface (CNI)github repo是CNCF定义的container网络接口标准。它定义有关container之间的互联,container删除后资源的释放等。K8s也采用了CNI标准,可以驱动符合CNI标准的插件。插件有个参考实现github repoCNI spec link网络被定义为一组addressable的entities。可...翻译 2019-04-19 10:03:27 · 425 阅读 · 0 评论 -
Flink vs Spark (4) Apache Beam
蔡老师的大数据课里面提到MapReduce的缺点是(1)缺少对数据处理流程的管理定义,需要额外的MR orchestration,造成FLOW维护困难 (2)性能配置太复杂,造成性能调优耗时特长。(3)不支持批流处理的合一。确实是一些很重要的问题。现在新的工具平台,比如Spark,都有了DAG的概念,这个DAG能够形容这个FLOW,dataset的transform等等。Spark甚至能够采用L...转载 2019-04-19 09:27:10 · 356 阅读 · 0 评论 -
tensor张量
(0) tensor是什么?以我粗浅的理解,Tensor张量是多个n维的数组,描述了一个在不同量纲(坐标系下)的状态。Vector是tensor的一个特例。参考这篇知乎文章(1) tensor解决了什么痛点?Tensor首先是一个数学/物理上的抽象概念。矩阵matrix通过线性变换,比如Lorentz变换,会产生不同的matrix。如果我们抽象出Tensor这个概念,让它与坐标系无关呢?比如...原创 2019-04-19 00:18:43 · 395 阅读 · 0 评论 -
K8s (6) kafka部署
整个安装步骤如下。$ git clone https://github.com/Yolean/kubernetes-kafka$ cd kubernetes-kafka$ kubectl apply -f 00-namespace.yml # 创建namespace ‘kafka'$ kubectl apply -f 01-test-namespace.yml # 创建name...原创 2019-05-03 06:01:54 · 3052 阅读 · 0 评论 -
Golang(3) module
golang.org的包下载有困难?可以设置export GOPROXY=http://goproxy.io就可以正常使用了。module下载的内容在$GOPATH/pkg/mod原创 2019-05-03 01:26:48 · 108 阅读 · 0 评论 -
Consistent hashing
Consistent Hashing是很经典的分片方法。试着用“那五个问题”给自己一个反馈。Consistent Hashing解决了什么用户痛点?(What, 正面)一个痛点就是,用户不需要维护一张mapping的映射视图了,所有的mapping都能够计算出来。另外Consistent Hashing解决的用户痛点就是当节点数变动的时候,不会出现大面积需要调整partition owne...原创 2019-04-18 11:39:39 · 139 阅读 · 0 评论 -
Golang (1) module and minikube
Golang开发环境构造下载1.12版安装包。 link. 非常简单,下载后按照安装说明解压到 /usr/local/bin试用go mod,1.12中的module管理功能 参考这篇博文创建一个程序目录goprj,$ go mod init goPrj// 我也有access golang.org的问题,可能proxy把它block了。$ vi go.mod // 加入这两行...翻译 2019-04-30 05:43:50 · 118 阅读 · 0 评论 -
Golang (2) client-go
下载client-go到本地go mod init goPrjgo get k8s.io/client-go@mastergo mod download # 把package下载至$GOPATH/mod编译例子 linkIn Cygwin,$ GOOS=linux go build -o ./app在minikube里面构建docker image# 先通过...翻译 2019-04-30 10:17:58 · 269 阅读 · 0 评论 -
AutoML (云上GCP/云下软件MLBox, AutoSklearn, TPOT, Auto-Keras,TransmogriAI等)
自动Machine Learning的不同Pkg。自动ML能够帮助非专家来使用ML来完成任务。Google的AutoMLhttps://www.ml4aad.org/列出了几个不同的产品不知道哪个更Powerful。Auto-keras是做神经网络的。...原创 2019-05-07 04:01:16 · 585 阅读 · 0 评论 -
redshift and MPP
MPP databaseMassive Parallel Processing (MPP) database is a type of database that scales horizontally. MPP dbs adopted share-nothing architecture in that every “node” will maintain its own CPU, stora...原创 2019-07-29 09:57:45 · 273 阅读 · 0 评论 -
Datrium DVX
https://www.datrium.com/blog/the-beauty-of-a-log-structured-filesystem/Datrium DVX是一个HCI系统,它也支持云上部署和多云的数据移动。它是LFS-based (log structured file system),NVRAM->Object store (LFS destage), 文件系统也称为DVFS。...转载 2019-07-03 05:03:38 · 137 阅读 · 0 评论 -
位置寻址方式,chunkserver还是哈希
这是一篇极好的GFS讨论文https://www.jianshu.com/p/e4d426666429 (贺大伟,简书)对KVS来说,如果不对locality要求很高的话,一致性哈希是保证均匀打散的。对DFS来说,如果每个文件是存储在同一个server上的话,一致性哈希也是个好方法。但是如果把文件拆开成chunk的话,一致性哈希有一个问题就是chunk和chunk之间的关系没有地方来管理(如何...转载 2019-07-03 02:26:23 · 344 阅读 · 0 评论 -
moosefs
Build moosefsUsing Ubuntu 18.04.1, need to install many packages, including libz,…./configure # install all the missing libraries, libpcap-dev, zlib1g-dev, fuse, libfuse-dev, etc. And tools such ...转载 2019-07-02 05:54:27 · 348 阅读 · 0 评论 -
blockchain入门文章
https://blog.youkuaiyun.com/Blockchain_lemon/article/details/90631623转载 2019-06-11 01:04:43 · 769 阅读 · 0 评论 -
Reading Notes (5) Megastore
架构:Partition本地Nosql DB(big table,a google自研KV store, 近似于Row-based store),每个分片叫做Entity group。Entity group可以被应用自然的选为比如Email帐户,map的一个部分,等等。在同一个Entity group里面支持ACID,跨Entity group的,采用2PC来支持事务。采用Paxos同步L...原创 2019-06-10 23:28:05 · 349 阅读 · 0 评论 -
kubeadm on centos7
# vi /etc/hosts // add the hostname# hostname knodex# yum install -y docker# systemctl enable docker && systemctl restart docker开放端口systemctl stop firewalldsystemctl disable firewall...原创 2019-05-29 23:39:41 · 168 阅读 · 0 评论 -
Alluxio
alluxio是一个分布式文件系统,主要用来做大数据处理,和数据源之间的中间层。它本身支持内存和SSD,HDD的tiering,但实践中主要感兴趣的是它的内存缓存。类似Gfs,它有master,workers,和clients。client向master查询数据位置,然后向本地workers提IO请求。workers之间通过Grpc做数据请求。没有复制,读数据在请求节点上也会缓存。它没有复制...原创 2019-06-10 23:27:09 · 738 阅读 · 0 评论 -
Anthos
Anthos试图帮助用户解决多云问题。把应用统一在基于K8s的环境中。而且进一步吸引用户使用GCP,因为control plane是host在GCP里面的,也就是用户的眼球是吸引在GCP里面的。试着给个very opinionated评分(1-5,5最好)Cloud run (2分),没有看出特别的新意,自动deploy的工具很多,Anthos未必能胜出,但这也是基础部分。Config m...原创 2019-05-24 00:14:44 · 630 阅读 · 0 评论 -
Knative
Knative, 读成Kay.Native, 是一个所谓的基于Kubernetes的serverless实现。跨平台,autoscaling,试图包含软件开发流程的3个主要部分: build, serving, eventing其中Build包含了如何从程序到容器,serving包含了rollout和autoscaling,eventing包含了事件的管理和事件的消费。Knative其实不是我...原创 2019-05-23 06:14:09 · 659 阅读 · 0 评论 -
Apache Helix (1)
A cluster management framework.Helix解决了什么痛点?一个open-sourced,free的,集群管理基础设施部件。具体如下:管理集群,“集群hosting分片的,复制的资源”link功能方面包括(1)软硬件故障检测和处理,(2)通过在节点上的资源placement,和节点capacity匹配,access pattern,partition size...翻译 2019-04-26 05:14:16 · 962 阅读 · 0 评论 -
inverted index
Index是啥?是一个词,出现在document的什么地方,page number。f(Word) returns a set of locations (e.g., pages or documents).Invert的意思是Turn it upside down.Inverted index是用来记录一个词出现在哪个文档,以及在哪个文档中出现的频率。这样一个文档,你知道有哪些词出现过,每个...翻译 2019-04-26 05:13:35 · 306 阅读 · 0 评论 -
ML为什么
ML是反向从数据中抽象出算法的函数(well,也许是在算法的框架中填入参数),一般称为model。这个函数能够被用来做很多不同的工作。supervisedtraining数据中有你想要的结果(预先把数据标注了,结果和class标好,预先想要的结果)unsupervisedtraining数据中没有想要的结果semi-supervised有部分想要的结果reinforcement l...转载 2019-04-25 23:47:12 · 118 阅读 · 0 评论 -
Tensorflow (1)
Tensorflow is the DL/ML framework developed by Google. 根据Tensorflow团队发表在OSDI 2016的paper, Tensorflow是一个采用dataflow图构造一个模型,然后把图中的每一个节点映射到物理计算节点和设备(异构的CPU/GPU/TPU上)。和前一代的系统DistBelief比,取消了存储神经网络weight的par...原创 2019-03-20 14:02:53 · 138 阅读 · 0 评论 -
反向代理 reverse proxy
看了一篇文章,反向代理就是二房东。正向代理是房屋agentProxy一般是客户端可见的,甚至是故意设置的。这样可以提供缓存和用户间的共享。A下载的东西,B如果请求直接可以用。Reverse proxy对客户端是不可见的。客户以为访问的是Server,其实是个二房东。比如ELB就是个反向代理,客户端和它连接,其实它在背后把流量分布到一组服务器上。...原创 2019-03-11 20:42:13 · 2195 阅读 · 0 评论 -
Container系列 kata vs gVisor vs Firecracker and k8s runtime (1)
gVisor and Firecracker原创 2019-03-14 15:46:53 · 2697 阅读 · 0 评论 -
Deep learning and Generative Adversial Network
听讲座笔记Logistic regression几个input,features,每个有一个weight。Weighted sum,加上一个bias b,sigmoid function,产生一个概率,c产生的概率Neural network连接很多的logistic regression nodes (neuron).Neurons can be restructured into ...原创 2019-03-06 23:36:44 · 305 阅读 · 0 评论 -
Paravirtualization
The key of para-virtualization就是允许改动VM,让它来适配下层的hypervisor。下层的hypervisor不是机械的虚拟化硬件,而是更灵活的与VM配合,所以理论上能够更高效。比如Xen。下面是一个例子ApplibOS (exOS)exokernelXen Paravirtualization...原创 2019-03-01 21:37:30 · 1198 阅读 · 0 评论 -
Service mesh (1)
Service mesh的思想是像SDN那样,有MxN个节点,然后用软件来定义它们之间的routing,从而实现灵活的功能。在Service mesh的context里面,每一个节点是一个服务。当多个微服务组成的分布式应用变得越来越复杂的时候,就需要一个控制机制,以避免这些微服务之间的关系变得无法管理。Service mesh的一个实现是istio,istio在2018年7月终于发布了1.0版本...原创 2019-03-05 12:02:16 · 132 阅读 · 0 评论 -
Flink vs Spark (2)
Spark+AI summit 2018 video Continuous Processing in Structured Streaming原创 2019-03-05 07:21:33 · 97 阅读 · 0 评论 -
SPIN vs Exokernel
两种extend OS的方法。试图达到performance, protection, extensibility的平衡。一种是exokernel,提供硬件接口。一种是SPIN。采用colocate kernel地址空间和一些Interface功能。Concern是是否会踩其它kernel。SPIN把OS当成一个软件,采用strong-typed 编程语言,这样在语言层,就可以构造一个Logi...原创 2019-03-05 07:04:07 · 578 阅读 · 0 评论 -
列存数据库 columnar DBMS简单看法
Stonebraker在redbook里面说现在只需要列存数据库了。不知道是不是真的。好像没有说理由。行存数据库,每一行被serialized。然后用Row:Column来对某一列做index,便于查找。primary key是row id列存数据库,每一列加上row id,被serialized。有一点点像index。primary key是data对稀疏表,还是列存比较合适,很多空列...原创 2019-02-20 03:27:41 · 445 阅读 · 0 评论 -
Unikernel, exokernel, libOS, and containers
Exokernel最早是MIT的一个paper,后来带指所有简化的Kernel,用来对应用程序提供相比传统Kernel更直接的硬件能力。传统Kernel提供的接口更全,把硬件封装的更紧,application的自由度更小。比如存储,就提供直接的BLOCKS,而不是VFS。“Implemented applications are called library operating systems”...原创 2019-03-01 06:47:51 · 2877 阅读 · 0 评论 -
Functional Programming 概念视频学习笔记
本文是基于What is functional programming视频和The Guarantee of immutability的笔记整理摘要:FP是一种编程范式“变量”不能改变,只能初始传入一次故意引入不变性,这样可以保证同样函数运行同样输入的结果是相同的。在分布式系统中用来分发TASK,然后回收结果是天然的符合FP范式。Functional programming (F...原创 2019-02-24 00:24:18 · 179 阅读 · 0 评论