云存储 好记性不如烂笔头

数据查询方式

2017-06-05
iamwljiang

本文将介绍分布式系统中常见的数据查询方法,也以此作为一个记录,后续如果接触新的内容会初步更新此文档。

#客户单查询

所谓的客户端查询是查询的控制逻辑在客户端进行控制,负责串联整个查询工作流。

客户端简单查询

抛开客户端缓存而言,数据路由信息的维护绝大多数而言不会放在客户端实现,因此需要从服务端获取进行定位,大致过程如下:

  • 根据查询的具体key,发送请求到维护路由表的服务端,获取key的信息或位置

  • 根据查询的key所在的具体数据维护位置发起读取请求

  • 实际key对应数据维护的服务器获取实际数据返回给客户端

客户端复杂查询

客户端如果需要进行范围或做全局扫描而言,则和简单查询会有所差异,差异在于需要持续获取路由表信息,以及客户端需要对数据进行过滤汇聚,相当于组织一次之后在返回数据给调用方。

服务端查询

服务端简单查询

这个很好理解,对于单机系统,比如mysql,客户端只是发起请求,但是真正执行的是mysql服务器。当然mysql对于查询而言会自己解析请求,优化查询任务,执行等。

服务端并行查询

和单机的区别是在于对一个多机的系统中,也会存在轻客户端重服务端场景。 像solr,greenplum,hadoop mr等,服务端接受客户端请求,生成查询树,逐步执行,汇聚,之后才返回数据给客户端。这里还涉及一个性能问题,是单机接受查询任务还是多机接受查询任务,是否在并行查询的同时可以支持高并发处理。


上一篇 测试 test title

Comments

Content