0%

Sub-millisecond Stateful Stream Querying over Fast-evolving Linked Data

ABSTRACT

场景:社交网络,城市监控和市场馈送处理等应用需要有状态的流式查询,状态流查询不仅要查询流式数据,还要查询存储的数据来及时提取有用的信息。实时流数据提供的有用信息,也需要持续不断地整合到存储的数据中,以便为上述和未来提供查询服务。
然而,先前的流式处理系统或者侧重于流计算,或者不是有状态的,或者不能提供低延迟和高吞吐量来处理快速发展的Linked数据,并且能够支持不断增加的查询并发性。
Wukong + S采用集成设计,将流处理和持久化存储相结合,实现高效的状态共享,避免了传统复合设计(如Storm / Heron + Wukong)中的跨系统成本和次优查询性能。 Wukong + S使用混合存储来区分管理持久的数据和瞬时数据,并提供有效的流索引和本地分区,以便快速访问流数据。 Wukong + S进一步提供分散的矢量时间戳和有界的快照标量化,以节省内存使用量的节点和大量查询。

INTRODUCTION:

问题提出场景:

随着流数据和存储数据量的不断增加,及时查询有用的信息十分重要。对于公共数据集合数据流,可能有大量的用户不同的数据流查询请求,因此需要支持高并发的查询。而且流数据通常包含巨大的有用信息, 这样的数据应该被一致地和立即地整合到存储系统,以用于将来的连续查询。
现有的工作:然而目前现有的系统对于正在变化的数据集的侧重点在于流计算。流计算和流查询不同的是 前者通常倾向于对大部分流数据进行序列化计算,而后者侧重于对流和存储数据的特定集合的并发查询。大多数先前的系统也没有集成流数据为了并发的查询中,或者不查询持久化存储的历史数据来获得基础知识,因此是无状态的。 尽管大多数流处理数据库都明确支持语义和SQL接口,但是他们在快速演化的Linked 数据下,当面临大量并发的查询请求下,由于高昂的Join操作开销和一些ACID的语义,他们的查询性能是低效的。

解决方案:

  1. Wukong-S为了尊重数据本地化并最大限度地减少数据传输,它使用由基于时间的临时存储和连续持久化存储组成的混合存储,为正在到来的数据和持久化的数据提供不同的存储管理。
  2. Wukong + S提供了流数据的快速访问流索引。流数据通过局部感知分区进行分片,其中一些流索引在节点间动态复制。这节省了查询成本并提供高效的负载平衡。
  3. 为了在多个不同规模的流数据上提供一致的流查询,Wukong + S使用分散的矢量时间戳来推导出最近一致性状态的流式数据插入。Wukong + S使用有限的标量化方案将矢量时间戳投影到标量快照数量中,通过协调多个流的更新到底层持久存储区。这样的设计在有效的内存使用情况下扩展了Wukong + S节点和大量查询。

MOTIVATION

根据工作负载特性,提出了一条流旨在支持大量的查询系统(连续的和一次性的)对流和存储的查询数据。有几种独特的需求可以区分来自其他流系统的流查询系统。

upload successful

upload successful

APPROACH ANN OVERVIEW

upload successful

目前存在的系统采用的是讲流处理系统和以查询为主导的存储系统简单结合。简单的组合设计会造成性能低效的结果。比如讲Esper和Apahe Jena组合

  1. Issue1. Cross-system Cost
  2. Issue2. Sub-optimal query plan
  3. Issue3. Limited scalability

Wukong+S做的就是一个整体设计。Wukong+ S使用了一个内置的设计,目标是对流和存储数据进行连续和一次性的查询。关键的设计原则就是对待持久化的存储作为关键的解决方案