阿里云DRDS使用Q&A

归档下DRDS使用过程中的Q&A,感谢提供支持的DRDS研发团队的几位。

Q:考虑到日志中时间作为关键字段,在分区的时候除了考虑写时候的均衡以外还要考虑读时候尽可能的能用到分区裁剪。权衡后决定,使用日志时间和区域(根据日志中源IP映射得到)。即可用理解成根据日志中源IP进行适当写时候的均衡,在读数据的时候这两个字段一般也被认为是业务的重要字段,查询的时候会进行裁剪。潜在的问题是,如果用户只选择了时间段,未选择区域,这样可能会跨分区查询,不知道性能衰减会到什么程度,这在第四个问题中也有涉及。

A:?采用双维度(业务字段 + 时间)切分是 DRDS 的推荐方案,通常建议按业务字段(IP)分库,按时间字段分表。正如问题里说的,这个方案可以保证写入请求均衡到不同的服务器上;对查询,如果条件中包含了业务字段(IP),那查询会自动路由到单库上,达到最好的性能。如果查询未包含业务字段[......]

阅读全文

Tags: , , ,

Comments { 0 }

戏(细)说Executor框架线程池任务执行全过程(下)

归档下发表于infoq.com 2015年6月的两篇文章。本来是一篇文章,经过Infoq编辑Alice Ding建议,拆分为<上>和<下>两部分。谢谢Alice对文章的细心校对,帮我发下了其中的很多问题。添加下infoq要求的声明:本文为InfoQ中文站特供稿件,首发地址为:http://www.infoq.com/cn/articles/executor-framework-thread-pool-task-execution-part-02 。如需转载,请与InfoQ中文站联系。

内容综述

基于Executor接口中将任务提交和任务执行解耦的设计,ExecutorService和其各种功能强大的实现类提供了非常简便方式来提交任务并获取任务执行结果,封装了任务执行的全部过程。本文尝试通过对j.u.c.下该部分源码的解析以ThreadPoolExecutor为例[......]

阅读全文

Tags: , , , , ,

Comments { 9 }

从Search Sort到Join

发表于《程序员》2015年4月B的一篇文章,在博客归档下。根据杂志社要求,在自己博客发表该文章亦须注明:本文为CSDN编译整理,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)

想通过原理来说明一些技术白皮书上“什么时候应该使用什么”这个“应该”后面的原因。通过数据结构中经典的排序查找算法来推倒解释数据库中几种经典的表连接背后的算法原理,和原理决定的在各种数据库中不同的应用和限制。以简单的算法来讲出数据库系统中看着核心强大功能的本质的算法设计。较之白皮书中不同数据库的不同描述,尽量去除差异,通过原理来描述功能,做到深入浅出。

一、前言

Join的语义是把两张表的通过属性的关联条件值组合在一起,一般意义上数据库范式越高,表被拆分的越多,应用中要被Join的表可能会越多。在我们日常开发中几乎找不到不涉及Join的SQL语句,哪怕未显示包含Join这个关键字。[......]

阅读全文

Tags: , , , , , ,

Comments { 0 }

B树在数据库索引中的应用剖析(发表版本)

最近一篇发表于《程序员》2014年6月刊上的文章。有点遗憾发现,有些部分被编辑修改过了,读起来有点怪怪的。最典型的是习惯于对某些比较经典的定义引用wikipedia或者原始白皮书中原始的E文,在文中发现都被硬译过了,表达的意思自己都有点看不懂了!

最终修改后提交的版本归档下:

引言

关于数据库索引,随便Google一个Oracle indexMysql index总能得到“某某索引之n条经典建议”之类大量结果。笔者认为,较之直接借鉴,在搞清实际需求的基础上,对备选方案的原理尽可能深入全面的了解会更有利于我们的决策。因为某种方案或者技术呈现出某种优势(包括可能没有被介绍到但一定存在的限制),不是厂商的白皮书这样规定,是由实现机制决定的或者说本身的结构决定的。

本文重点介绍数据结构中经典的树(B树)结构在数据库索引中的经典应用,也会涉及到几种数据库中对此支持的细微不同,以期比较完整的[......]

阅读全文

Tags: , , ,

Comments { 0 }

内推职位–华为云计算

 

发布一个招聘信息,有意向的同学简历可以发到下面的两个邮箱,机会比较好,部门正在扩大规模。

部门:华为云计算PaaS

职位:云计算开发工程师,架构师,解决方案架构师,测试工程师,测试架构师

技术关键字:Kubernetes、Mesos、Openstack、Docker、Kafka、Redis、Nginx、Netflix等。

开发语言:GO、Java、C/C++、Python等

要求:本科以上,5年+

Base:杭州、深圳、西安、北京、南京

加分:了解熟悉AWS、AZURE、GAE等相关

级别:15,16,17,18。。。

 

Mail:idouba@idouba.net  cc: zhangchaomeng@huawei.com

Tags: , ,

Comments { 1 }

古城贼文化

thief吃完晚饭与淋波&宝强在园区周边溜达一圈,不知怎么的扯到了小偷和被盗这个悲催的话题。三个人各自讲了自己经历的这方面的糗事,居然洋洋洒洒的扯了咕咚3000步。发现无论是数量还是质量还是精彩指数都完爆那两位,而这些素材都得益于在家乡古城的那几年经历,然后晚上回来虽然很晚了还是把这些归纳整理了下。

lb记忆最深刻的是在解放路上图书大厦的那次遭遇。那会儿刚从东北的铁路工地上回到家乡的这个城市,好久找不到工作,最后在和平门里一个老民居的公司里跑业务送东西。无意中撞到附近解放路上图书大厦里,后来就每天上午在这里看半天书,下午接着去跑业务。到现在能从搞工地的工程跨界到另外一个工程,也是这阵子开的头。和那位君子(后文中都君子,是简称,不是尊称。灵感于小时候小人书里有梁上君子的说法)的偶遇也就发生在书城下面的存包处。那天正在存包时突的感觉裤兜里有点动静,伸手一看,一个大镊子正夹手机玩外拽。有点惊慌,[......]

阅读全文

Tags:

Comments { 0 }

稀松!对不住杭州,对不住G20

注:这是第一篇用手机敲出来的文字,每天下午五点半开始在医院挂那瓶红色肺炎专用药的那四个小时。

熟悉的时间又来到这个最近开始熟悉的地方。这两天杭州g20,今天周末,临出门看了眼电视里习主席G20开幕布上的演讲。

dav

右手上扎的针眼太有点多,今天换左手。腾出右手来闲着想记点东西。

这周过得和平时很不同。和很多生活在这个城市的人感觉一样,路上很空,街道人很少。连输液这边的护士都说这里现在的人都比平日少了好几成。与现实周围形成反差的是朋友圈里很热闹,名种晒图,大江南北。

对不住大家,对不住这个盛世的气氛。这周一个小人物过得异常的。。。稀松!

低烧了几乎整个八月,在月底了没扛住还是来到了这个地方。

有多稀松!

开始一天,单位里,翘班跑医院抽血拍片,幸亏和咱单位在一条街上,打车几分钟就过来了,抽血~回单位~拍片~回单位~取结果。稀松,折腾,狼狈。然后一个多[......]

阅读全文

Tags: , ,

Comments { 0 }

Netflix源码解析之Ribbon:Ribbon的区域亲和性(Zone Affinity)

前面文章介绍了通过ribbon集成eurekaclient来获取注册的服务列表。
其实仔细观察DynamicServerListLoadBalancer更新server的方法updateListOfServers会发现,在动态的从erueka 获取注册服务器后,还会用一个filter对得到的server列表再进行过滤。这个filter从配置获取,如果没有,默认是ZoneAffinityServerListFilter。根据配置会选择和服务消费者在一个zone的服务(术语区域感知,Zone Affinity),这样一般可以降低延迟。

 

检查server的zone属性,只是选择本区域的server。

根据配置会选择和服务消费者在一个zo[......]

阅读全文

Tags: , , ,

Comments { 0 }

Netflix源码解析之Ribbon:负载均衡策略的定义和实现

上篇文章说到LB是通过负载均衡策略来实现后端服务的选择的。

Ribbon负载均衡策略定义

IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现。不同的IRule可以向LB提供不同的负载均衡算法。

com.netflix.loadbalancer包下面的提供了常用的几种策略。有RoundRobinRule、RandomRule这样的不依赖于Server运行状况的策略,也有AvailabilityFilteringRule、WeightedResponseTimeRule等多种基于收集到的Server运行状况决策的策略。判断运行状况时有,判断单个server的,也有判断整个zone的,适用于各种不同场景需求。[......]

阅读全文

Tags: , , , ,

Comments { 2 }