一条数据的漫游 -- X-Engine SIGMOD Paper Introduction

大多数人追寻永恒的家园(归宿),少数人追寻永恒的航向。
----瓦尔特.本雅明

背景

X-Engine是阿里数据库产品事业部自研的OLTP数据库存储引擎,作为自研数据库POLARDB X的存储引擎,已经广泛应用在阿里集团内部诸多业务系统中,其中包括交易历史库,钉钉历史库等核心应用,为业务大幅缩减了成本,同时也作为双十一大促的关键数据库技术,挺过了数百倍平时流量的冲击。

X-Engine团队撰写的论文"X-Engine: An Optimized Storage Engine for Large-scale E-Commerce Transaction Processing",详细讲述了我们在数据库存储引擎上所做的原创性工作,今年早些时候已经被SIGMOD'19 Industrial Track接收。SIGMOD是数据库领域最重要也是最有影响力的会议之一,今年6月底即将在荷兰阿姆斯特丹举行,届时,X-Engine团队的程训焘博士将会在会议上做一个分享,欢迎大家前来探讨。

本文目的是对这篇论文做一个前导性分析,帮助读者更好的理解其中的细节。

数据库存储引擎是一个有历史的技术,经过数十年的发展,已经出现很多优秀成熟的产品。各式存储引擎已经在索引组织,缓存管理,事务处理,查询优化方方面面都做过细致的研究。(一个数据库存储引擎应该具备什么样的能力,可以参考我之前的文章),即便如此,这个领域的演进仍在持续,每年都会涌现很多的新技术。近年来,LSM(Log-Structured Merge-Tree)结构受到越来越多的关注,虽然这个技术本身出现很多年了,不算什么新事物,不过早先在KV存储系统中被应用的更多一些,近年开始在数据库存储引擎领域崭露头角,RocksDB即是典型代表。

LSM之所以变得流行,一是因为其简单,二是特点鲜明。写入模型是简单的追加,不会更新既有的数据,数据组织为简单的逻辑排序,由此带来的特点是写强而读弱,持久化数据只读的特点便于压缩。但是大多数数据库的应用场景其实都是读多写少的,直接使用LSM结构未必合适,想要另辟蹊径,须得扬长辟短。

架构

X-Engine使用了LSM作为基础架构,目标是作为一个通用的高性能低成本存储引擎,追求读写性能更为均衡,因此在其上做了大量的改进,主要围绕几个方向进行:1. 利用先天优势,持续优化写性能。2. 优化compaction降低对系统性能的冲击,使得系统性能表现趋于平稳。3. 利用持久化数据层只读特点,发挥压缩优势降低成本。4. 利用天然分层结构,结合硬件能力使用冷热分层结构,降低综合成本。5. 利用精细化访问机制和缓存技术,弥补读性能短板。

X-Engine的整体架构如下图,根据数据冷热进行分层代替LSM本身的持久化数据分层,热数据层和数据更新使用内存存储,利用了大量内存数据库的技术(Lock-Free index structure/append only)提高事务处理的性能,设计了一套事务处理流水线处理机制,把事务处理的几个阶段并行起来,提升吞吐。而访问频度低的冷(温)数据逐渐淘汰或是合并到持久化的存储层次中,结合当前丰富的存储设备层次体系(NVM/SSD/HDD)进行存储。我们对性能影响比较大的compaction过程做了大量优化,主要是拆分数据存储粒度,利用数据更新热点较为集中的特征,尽可能的在合并过程中复用数据,精细化控制LSM的形状,减少I/O和计算代价,并同时极大的减少了合并过程中的空间放大。同时使用更细粒度的访问控制和缓存机制,优化读的性能。


既然X-Engine是以LSM为基础架构的,所以一切还要从LSM本身说起。

LSM基本逻辑

一条数据在LSM结构中的旅程,从写入WAL(Write Ahead Log)开始,然后进入MemTable,这是Ta整个生命周期的第一处落脚点。随后,flush操作将Ta刻在更稳固的介质上,compaction操作将Ta带往更深远的去处,或是在途中丢弃,取决于Ta的继任者何时到来。

LSM的本质是,所有写入操作并不做原地更新,而是以追加的方式写入内存。每次写到一定程度,即冻结为一层(Level),写入持久化存储。所有写入的行,都以主键(Key)排序好后存放,无论是在内存中,还是持久化存储中。在内存中即为一个排序的内存数据结构(Skiplist, B-Tree, etc.),在持久化存储也作为一个只读的全排序持久化存储结构。

普通的存储系统若要支持事务处理,尤其是ACI,需要加入一个时间维度,借此为每个事务构造出一个不受并发干扰的独立视域。存储引擎会对每个事务定序并赋予一个全局单调递增的事务版本号(SN),每个事务中的记录会存储这个SN以判断独立事务之间的可见性,从而实现事务的隔离机制。

如果LSM存储结构持续写入,不做其他的动作,那么最终会成为如下结构:

注意这里每一层的SN范围标识了事务写入的先后顺序,已经持久化的数据不再会被修改。每一层数据按Key排序,层与层之间的Key range会交叠。


这种结构对于写入是非常友好的,只要追加到最新的内存表中即完成,为实现crash recovery,只需记录WAL(Redo Log),因为新数据不会覆盖旧版本,追加记录会形成天然的多版本结构。

可以想见,如此累积冻结的持久化层次越来越多,会对查询会产生不利的影响,对同一个key不同事务提交产生的多版本记录会散落在各个层次中,不同的key也会散落在不同层次中,读操作诸如顺序扫描便需要查找各个层并合并产生最终结果。

LSM引入了一个compaction的操作解决这个问题,这个操作不断的把相邻层次的数据合并,并写入这个更低层次。而合并的过程实际上就是把要合并的相邻两层(或是多层)数据读出来,按key排序,相同的key如果有多个版本,只保留新(比当前正在执行的活跃事务中最小版本号新)的版本,丢掉旧版本数据,然后写入新的层。可以想见这个操作非常耗费资源。

LSM compaction操作,有几种作用,一是为了丢弃不再被使用的旧版本数据,二是为了控制LSM层次形状,一般的LSM形状都是层次越低,数据量越大(倍数关系),这样放置的目的主要是为了提升读性能。


一般来讲,任何存储系统的数据访问都有局部性,大量的访问都集中在少部分数据上,这也是缓存系统能有效工作的基本前提,在LSM存储结构中,如果我们把访问频率高的数据尽可能放在较高的层次上,保持这部分数据量规模,可以存放在快速存储设备中(比如NVM,DRAM),而把访问频率低的数据放在较低层次中,使用廉价慢速存储设备存储。这就是X-Engine的根据冷热分层概念。

要达到这种效果,核心问题是如何挑选合适的数据合并到更低的层次,这是compaction调度策略首先要解决的问题,根据冷热分层的逻辑,就是优先合并冷数据(访问频率相对低)。识别冷数据有很多方法,对于不同的业务不尽然相同,对于很多流水型业务(如交易,日志系统),新近写入的数据会有更多的概率被读到,冷热按写入时间顺序即可区分,也有很多应用的访问特征跟写入的时间不一定有关系,这个就要根据实际的访问频率去识别冷数据或是热数据。

除了数据热度以外,挑选合并数据还有其他一些维度,会对读性能产生影响,比如数据的更新频率,大量的多版本数据在查询的时候会浪费更多的I/O和CPU,因此需要优先进行合并以减少记录的版本数量,X-Engine综合考虑了各种策略形成自己的compaction调度机制。

refined LSM

上面是LSM宏观逻辑结构,如果具体来论读写操作和compaction如何进行,就需要探讨每一层的数据组织方式,

每个LSM变种的实现各不相同。

X-Engine的memtable使用了Locked-free SkipList. 求的是简单,而且并发读写的性能都比较高。当然有更高效的数据结构,或者同时使用多种索引技术。这个部分X-Engine没有做过多优化,原因在事务处理的逻辑比较复杂,写入内存表还没有成为其瓶颈。

持久化层如何组织更显高效,这就需要讨论每层的细微结构。

数据组织

简单来说,X-Engine的每层都划分成固定大小的Extent,存放每个层次中的数据的一个连续片段(Key Range). 为了快速定位Extent,为每层Extents建立了一套索引(Meta Index),所有这些索引,加上所有的memory tables(active/immutable)一起组成了一个元数据树(Metadata Tree),root节点为"Metadata Snapshot", 这个树结构类似于B-Tree,当然不尽相同。


需要注意的是,X-Engine中除了当前的正在写入的active memtable以外,其他结构都是只读的,不会被修改。给定某个时间点, 比如LSN=1000, 上图中的"Metadata Snapshot1"引用到的结构即包含了(LSN=1000)时刻的所有的数据的快照(这也是为什么这个结构被称为Snapshot的原因)。

即便是Metadata结构本身,也是一旦生成就不会修改。所有的读都是以这个"Snapshot"结构为入口,这个是X-Engine实现SI隔离级别的基础。之前讲过随着数据写入,累积数据越多,需要对memtable冻结,flush, 以及层与层的compaction. 这些操作都会修改每层的数据存储结构,所有这些操作,都是用copy-on-write来实现,方法就是每次都将修改(switch/flush/compaction)产生的结果写入新的Extent,然后依次生成新的"Meta Index"结构,乃至新的"Metadata Snapshot",以一次compaction操作为例:


可以看到"Metadata Snapshot 2"相对于"Metadata Snapshot 1"并没有太多的变化,仅仅修改了发生变更的一些叶子节点以及索引节点。这个技术颇有些类似"B-trees, Shadowing, and Clones",如果你读过那篇论文,会对理解这个过程有所帮助。


事务处理

得益于LSM轻量化写机制,写入操作固然是其明显的优势,但是事务处理远不只是把更新的数据写入系统那么简单,这里要保证ACID,涉及到一整套复杂的流程。X-Engine将整个事务处理过程分为两个阶段:读写阶段和提交阶段。读写阶段需要校验事务的写写冲突,读写冲突,判断事务是否可以执行或回滚重试,或是等锁。如果事务冲突校验通过,则把修改的所有数据写入"Transaction Buffer", 提交阶段包括写WAL,写内存表,以及提交并返回给用户结果的整个过程,这里面既有I/O操作(写日志,返回消息),也有CPU操作(拷贝日志,写内存表)。

为了提高事务处理吞吐,系统内会有大量事务并发执行,单个I/O操作比较昂贵,大部分存储引擎会倾向于聚集一批事务一起提交,称为"Group Commit",能够合并I/O操作,但是一组事务提交的过程中,还是有大量等待过程的,比如写入日志到磁盘过程中,除了等待落盘无所事事。

X-Engine为了进一步提升事务处理的吞吐,采用了一种流水线的技术:把提交阶段分为四个独立的更细的阶段:拷贝日志到缓冲区(Log Buffer), 日志落盘(Log Flush), 写内存表(Write memtable), 提交返回(Commit)。我们的事务提交线程到了处理阶段,都可以自由选择执行流水线中任意一个阶段,这样每个阶段都可以并行起来,只要流水线任务的大小划分得当,就能充分并行起来,流水线处于接近满载状态。另外,利用的是事务处理的线程,而非后台线程,每个线程在执行的时候,要么选择了流水线中的一个阶段干活,要么逛了一圈发现无事可做,干脆回去接收更多的请求,这里没有等待,也无需切换,充分的调动了每个线程的能力。


读操作

LSM在处理多版本数据的方式是新版本数据记录会追加在老版本数据后面,从物理上看,一条记录不同的版本可能存放在不同的层,在查询的时候需要找到合适的版本(根据事务的隔离级别定义的可见性规则),一般查询都是查找最新的数据,总是由新的层次(最新写入)往老的层次方向找。

对于单条记录的查找而言,一旦找到便可终止,如果记录还在比较靠上的层次,比如memtable,很快便返回;如果记录不幸已经落入了很低的层次(可能是很随机的读),那就得经历逐层查找的漫漫旅途,也许bloomfilter可以跳过某些层次加快这个旅程,但毕竟还是有更多的I/O操作。X-Engine针对单记录查询引入了Row Cache,在所有持久化的层次的数据之上做了一个缓存,在memtable中没有命中的单行查询,在Row Cache之中也会被捕获。Row Cache需要保证缓存了所有持久化层次中最新版本的记录,而这个记录是可能发生变化的,比如每次flush将只读的memtable写入持久化层次时,就需要恰当的更新Row Cache中的缓存记录,这个操作比较微妙,需要小心的设计。

范围扫描的操作就没这么幸运了。因为没法确定一个范围的key在哪个层次中有数据,也许是每层都有,只能扫描所有的层次做合并之后才能返回最终的结果。X-Engine同样采用了一系列的手段:比如Surf(SIGMOD'18 best paper)提供range scan filter减少扫描层数;还有异步I/O与预取对大范围扫描也有显著的提升。


读操作中最核心的是缓存设计,Row Cache来应付单行查询,Block Cache负责Row Cache miss的漏网之鱼,也用来应付scan;由于LSM的compaction操作会一次大批量更新大量的Data Block,导致Block Cache中大量数据短时间内失效,带来性能的急剧抖动。X-Engine同样做了很多的处理:1.减少Compaction的粒度, 2. 减少compaction过程中改动的数据(见稍后章节) 3. compaction过程中针对已有的cache数据做定点更新。由此可以基本将cache失效带来的抖动降到最低的水平。

X-Engine中的缓存比较多样,memtable也可算做其中一种。以有限的内存,如何恰当的分配给每一种缓存,才能实现价值最大化,是一个还未被妥善解决的问题,X-Engine也在探索当中。

当然,LSM对读带来的也并非全是坏处,除了memtable以外的只读的结构,在读取路径上可以做到完全无锁(memtable也可设计成读无锁)。

Compaction

compaction操作是比较重的。需要把相邻层次交叉的key range数据读出来,合并,然后写到新的位置。这是为前面简单的写入操作不得不付出的代价。X-Engine为优化这个操作重新设计了存储结构。

如前所述,X-Engine将每一层的数据划分为固定大小的"Extent",一个Extent相当于一个小的完整的SSTable, 存储了一个层次中的一个连续片段,其中又会被进一步划分一个个连续的更小的片段"Data Block",相当于传统数据库中的"Page",只不过是只读的,而且是不定长的。


回看数据组织一节中"合并操作对元数据的改变", 对比"Metadata Snapshot2"和"Metadata Snapshot1"的区别,可以发现Extent的设计意图。是的,每次修改对结构的调整并不是全部来过,而是只需要修改少部分有交叠的数据,以及涉及到的"Meta Index"节点。两个"Metadata Snapshot"结构实际上共用了大量的数据结构。这个被称为数据复用技术(Data Reuse),而Extent大小正是影响数据复用率的关键,Extent作为一个完整的被复用的物理结构,需要尽可能的小,这样与其他Extent数据交叉点会变少,但又不能非常小,否则需要索引过多,管理成本太大。

X-Engine中compaction的数据复用是非常彻底的,假设选取两个相邻层次(Level1, Level2)中的交叉的Key Range所涵盖的Extents进行合并,合并算法会逐行进行扫描,只要发现任意的"物理结构"(包括Data Block和Extent)与其他层中的数据没有交叠,则可以进行复用。只不过,Extent的复用可以修改Meta Index,而Data Block的复用只能拷贝,即便如此也可以节省大量的CPU.

一个典型的数据复用在compaction中的过程可以参考下图:


可以看出,对于数据复用的过程是在逐行迭代的过程中完成的,不过这种精细的数据复用带来另一个副作用,即数据的碎片化,所以在实际操作的过程中也需要根据实际情况进行折中。

数据复用不仅给compaction操作本身带来了好处,降低操作过程中的I/O与CPU消耗,更对系统的综合性能产生了一系列的影响。比如compaction过程中数据不用完全重写,大大减少了写入空间放大; 更因为大部分数据保持原样,数据缓存不会因为数据更新而失效,减少合并过程中因缓存失效带来的读性能抖动。

实际上,优化compaction的过程只是X-Engine工作的一部分,还有更重要的,就是优化compaction调度的策略,选什么样的Extent,定义compaction任务的粒度,执行的优先级,都会对整个系统性能产生影响,可惜并不存在什么完美的策略,X-Engine积累了一些经验,定义了很多规则,而探索如何合理的调度策略是未来一个重要方向。

后记

X-Engine是阿里云智能事业群-数据库产品事业部的重要核心技术之一,作为兼容MySQL的数据库POLARDB X的存储引擎,之前是在服务阿里集团业务中逐渐打磨成熟,今年下半年,我们将在阿里云平台上推出MySQL(X-Engine)的RDS公有云服务,为阿里云上的公有云客户提供低成本高性能的数据库服务。

附论文下载地址


本文作者:旺德wonde

原文链接

本文为云栖社区原创内容,未经允许不得转载。


转载于:https://juejin.im/post/5d00b098f265da1ba431e65d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
14 Continuous obstructed nearest neighbor queries in spatial databases Yunjun Gao, Baihua Zheng Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data In this paper, we study a novel form of continuous nearest neighbor queries in the presence of obstacles, namely continuous obstructed nearest neighbor (CONN) search. It considers the impact of obstacles on the distance between objects, ... 15 Optimizing complex extraction programs over evolving text data Fei Chen, Byron J. Gao, AnHai Doan, Jun Yang, Raghu Ramakrishnan Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data Most information extraction (IE) approaches have considered only static text corpora, over which we apply IE only once. Many real-world text corpora however are dynamic. They evolve over time, and so to keep extracted information up to date we ... 16 Privacy preservation of aggregates in hidden databases: why and how? Arjun Dasgupta, Nan Zhang, Gautam Das, Surajit Chaudhuri Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data Many websites provide form-like interfaces which allow users to execute search queries on the underlying hidden databases. In this paper, we explain the importance of protecting sensitive aggregate information of hidden databases from being ... 17 Efficient approximate entity extraction with edit distance constraints Wei Wang, Chuan Xiao, Xuemin Lin, Chengqi Zhang Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data Named entity recognition aims at extracting named entities from unstructured text. A recent trend of named entity recognition is finding approximate matches in the text with respect to a large dictionary of known entities, as the domain ... 18 Large-scale uncertainty management systems: learning and exploiting your data Shivnath Babu, Sudipto Guha, Kamesh Munagala Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data The database community has made rapid strides in capturing, representing, and querying uncertain data. Probabilistic databases capture the inherent uncertainty in derived tuples as probability estimates. Data acquisition and stream systems can ... 19 Data warehouse technology by infobright Dominik Slezak, Victoria Eastwood Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data We discuss Infobright technology with respect to its main features and architectural differentiators. We introduce the upcoming research and development projects that may be of special interest to the academic and industry communities. ... 20 Detecting and resolving unsound workflow views for correct provenance analysis Peng Sun, Ziyang Liu, Susan B. Davidson, Yi Chen Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data Workflow views abstract groups of tasks in a workflow into high level composite tasks, in order to reuse sub-workflows and facilitate provenance analysis. However, unless a view is carefully designed, it may not preserve the dataflow ... 21 Indexing correlated probabilistic databases Bhargav Kanagal, Amol Deshpande Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data With large amounts of correlated probabilistic data being generated in a wide range of application domains including sensor networks, information extraction, event detection etc., effectively managing and querying them has become an important ... 22 Cross-tier, label-based security enforcement for web applications Brian J. Corcoran, Nikhil Swamy, Michael Hicks Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data This paper presents SELinks, a programming language focused on building secure multi-tier web applications. SELinks provides a uniform programming model, in the style of LINQ and Ruby on Rails, with language syntax for accessing objects ... 23 Exploiting context analysis for combining multiple entity resolution systems Zhaoqi Chen, Dmitri V. Kalashnikov, Sharad Mehrotra Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data Entity Resolution (ER) is an important real world problem that has attracted significant research interest over the past few years. It deals with determining which object descriptions co-refer in a dataset. Due to its practical significance for ... 24 Kernel-based skyline cardinality estimation Zhenjie Zhang, Yin Yang, Ruichu Cai, Dimitris Papadias, Anthony Tung Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data The skyline of a d-dimensional dataset consists of all points not dominated by others. The incorporation of the skyline operator into practical database systems necessitates an efficient and effective cardinality estimation module. ... 25 Scalable skyline computation using object-based space partitioning Shiming Zhang, Nikos Mamoulis, David W. Cheung Jun. 2009 Proceedings of the 35th SIGMOD international conference on Management of data The skyline operator returns from a set of multi-dimensional objects a subset of superior objects that are not dominated by others. This operation is considered very important in multi-objective analysis of large datasets. Although a large ...
以前和大家分享过SIGMOD2009的论文,朋友们都很感兴趣,现手里有SIGMOD211的全部论文,再次和大家分享~ 一个包放不下,一共分成了3个包,包含百余篇论文,朋友们可以挑选自己感兴趣的部分下载,我尽量把文章目录写得明白一些。 这是第三部分 Emerging Trends in the Enterprise Data Analytics: Connecting Hadoop and DB2 Warehouse (Page 1161) Fatma Özcan (IBM Almaden Research Center) David Hoa (Silicon Valley Lab) Kevin S. Beyer (IBM Almaden Research Center) Andrey Balmin (IBM Almaden Research Center) Chuan Jie Liu (IBM China) Yu Li (IBM China) Efficient Processing of Data Warehousing Queries in a Split Execution Environment (Page 1165) Kamil Bajda-Pawlikowski (Hadapt Inc. & Yale University) Daniel J. Abadi (Hadapt Inc. & Yale University) Avi Silberschatz (Yale University) Erik Paulson (University of Wisconsin - Madison) SQL Server Column Store Indexes (Page 1177) Per-Åke Larson (Microsoft) Cipri Clinciu (Microsoft) Eric N. Hanson (Microsoft) Artem Oks (Microsoft) Susan L. Price (Microsoft) Srikumar Rangarajan (Microsoft) Aleksandras Surna (Microsoft) Qingqing Zhou (Microsoft) An Analytic Data Engine for Visualization in Tableau (Page 1185) Richard Wesley (Tableau Software) Matthew Eldridge (Tableau Software) Pawel Terlecki (Tableau Software) (Return to Top) Tutorials Learning Statistical Models from Relational Data (Page 1195) Lise Getoor (University of Maryland) Lilyana Mihalkova (University of Maryland) Web Data Management (Page 1199) Michael J. Cafarella (University of Michigan) Alon Y. Halevy (Google, Inc.) Privacy-Aware Data Management in Information Networks (Page 1201) Michael Hay (Cornell University) Kun Liu (Yahoo! Labs) Gerome Miklau (University of Massachusetts, Amherst) Jian Pei (Simon Fraser University) Evimaria Terzi (Boston University) Large-Scale Copy Detection (Page 1205) Xin Luna Dong (AT&T Labs-Research) Divesh Srivastava (AT&T Labs-Research) Data Management Over Flash Memory (Page 1209) Ioannis Koltsidas (IBM Research) Stratis D. Viglas (University of Edinburgh) Datalog and Emerging Applications: An Interactive Tutorial (Page 1213) Shan Shan Huang (LogicBlox, Inc.) Todd J. Green (University of California, Davis) Boon Thau Loo (University of Pennsylvania) (Return to Top) Demo Session 1: Systems and Performance One-Pass Data Mining Algorithms in a DBMS with UDFs (Page 1217) Carlos Ordonez (University of Houston) Sasi K. Pitchaimalai (University of Houston) Inspector Gadget: A Framework for Custom Monitoring and Debugging of Distributed Dataflows (Page 1221) Christopher Olston (Yahoo! Research) Benjamin Reed (Yahoo! Research) RAFT at Work: Speeding-Up MapReduce Applications Under Task and Node Failures (Page 1225) Jorge-Arnulfo Quiané-Ruiz (Saarland University) Christoph Pinkel (Saarland University) Jörg Schad (Saarland University) Jens Dittrich (Saarland University) WattDB: An Energy-Proportional Cluster of Wimpy Nodes (Page 1229) Daniel Schall (TU Kaiserslautern) Volker Hudlet (TU Kaiserslautern) BRRL: A Recovery Library for Main-Memory Applications in the Cloud (Page 1233) Tuan Cao (Cornell University) Benjamin Sowell (Cornell University) Marcos Vaz Salles (Cornell University) Alan Demers (Cornell University) Johannes Gehrke (Cornell University) A Data-Oriented Transaction Execution Engine and Supporting Tools (Page 1237) Ippokratis Pandis (Carnegie Mellon University & École Polytechnique Fédérale de Lausanne) Pinar Tözün (École Polytechnique Fédérale de Lausanne) Miguel Branco (École Polytechnique Fédérale de Lausanne) Dimitris Karampinas (University of Patras) Danica Porobic (École Polytechnique Fédérale de Lausanne) Ryan Johnson (University of Toronto) Anastasia Ailamaki (École Polytechnique Fédérale de Lausanne & Carnegie Mellon University) iGraph in Action: Performance Analysis of Disk-Based Graph Indexing Techniques (Page 1241) Wook-Shin Han (Kyungpook National University) Minh-Duc Pham (Kyungpook National University) Jinsoo Lee (Kyungpook National University) Romans Kasperovics (Kyungpook National University) Jeffrey Xu Yu (Chinese University of Hong Kong) StreamRec: A Real-Time Recommender System (Page 1243) Badrish Chandramouli (Microsoft Research) Justin J. Levandoski (University of Minnesota) Ahmed Eldawy (University of Minnesota) Mohamed F. Mokbel (University of Minnesota) (Return to Top) Demo Session 2: Ranking, the Web, and Social Media SkylineSearch: Semantic Ranking and Result Visualization for PubMed (Page 1247) Julia Stoyanovich (University of Pennsylvania) Mayur Lodha (Columbia University) William Mee (Columbia University) Kenneth A. Ross (Columbia University) A Cross-Service Travel Engine for Trip Planning (Page 1251) Gang Chen (Zhejiang University) Chen Liu (National University of Singapore) Meiyu Lu (National University of Singapore) Beng Chin Ooi (National University of Singapore) Shanshan Ying (National University of Singapore) Anthony K. H. Tung (National University of Singapore) Dongxiang Zhang (National University of Singapore) Meihui Zhang (National University of Singapore) WINACS: Construction and Analysis of Web-Based Computer Science Information Networks (Page 1255) Tim Weninger (University of Illinois Urbana-Champaign) Marina Danilevsky (University of Illinois Urbana-Champaign) Fabio Fumarola (Universitá degli Studi di Bari) Joshua Hailpern (University of Illinois Urbana-Champaign) Jiawei Han (University of Illinois Urbana-Champaign) Thomas J. Johnston (University of Illinois Urbana-Champaign) Surya Kallumadi (Kansas State University) Hyungsul Kim (University of Illinois Urbana-Champaign) Zhijin Li (University of Illinois Urbana-Champaign) David McCloskey (University of Illinois Urbana-Champaign) Yizhou Sun (University of Illinois Urbana-Champaign) Nathan E. TeGrotenhuis (Whitworth University) Chi Wang (University of Illinois Urbana-Champaign) Xiao Yu (University of Illinois Urbana-Champaign) Tweets as Data: Demonstration of TweeQL and TwitInfo (Page 1259) Adam Marcus (Massachusetts Institute of Technology) Michael S. Bernstein (Massachusetts Institute of Technology) Osama Badar (Massachusetts Institute of Technology) David R. Karger (Massachusetts Institute of Technology) Samuel Madden (Massachusetts Institute of Technology) Robert C. Miller (Massachusetts Institute of Technology) MOBIES: Mobile-Interface Enhancement Service for Hidden Web Database (Page 1263) Xin Jin (George Washington University) Aditya Mone (University of Texas at Arlington) Nan Zhang (George Washington University) Gautam Das (University of Texas at Arlington) Search Computing: Multi-Domain Search on Ranked Data (Page 1267) Alessandro Bozzon (Politecnico di Milano) Daniele Braga (Politecnico di Milano) Marco Brambilla (Politecnico di Milano) Stefano Ceri (Politecnico di Milano) Francesco Corcoglioniti (Politecnico di Milano) Piero Fraternali (Politecnico di Milano) Salvatore Vadacca (Politecnico di Milano) EnBlogue - Emergent Topic Detection in Web 2.0 Streams (Page 1271) Foteini Alvanaki (Saarland University) Michel Sebastian (Saarland University) Krithi Ramamritham (IIT Bombay) Gerhard Weikum (Max-Planck Institute Informatics) NOAM: News Outlets Analysis and Monitoring System (Page 1275) Ilias Flaounas (University of Bristol) Omar Ali (University of Bristol) Marco Turchi (European Commission) Tristan Snowsill (University of Bristol) Florent Nicart (Université de Rouen) Tijl De Bie (University of Bristol) Nello Cristianini (University of Bristol) (Return to Top) Demo Session 3: Data Integration and Probabilistic Databases Pay-As-You-Go Mapping Selection in Dataspaces (Page 1279) Cornelia Hedeler (The University of Manchester) Khalid Belhajjame (The University of Manchester) Norman W. Paton (The University of Manchester) Alvaro A. A. Fernandes (The University of Manchester) Suzanne M. Embury (The University of Manchester) Lu Mao (The University of Manchester) Chenjuan Guo (The University of Manchester) Exelixis: Evolving Ontology-Based Data Integration System (Page 1283) Haridimos Kondylakis (FORTH-ICS) Dimitris Plexousakis (FORTH-ICS) U-MAP: A System for Usage-Based Schema Matching and Mapping (Page 1287) Hazem Elmeleegy (AT&T Labs - Research) Jaewoo Lee (Purdue University) El Kindi Rezig (Purdue University) Mourad Ouzzani (Purdue University) Ahmed Elmagarmid (Qatar Computing Research Institute, Qatar Foundation) The System T IDE: An Integrated Development Environment for Information Extraction Rules (Page 1291) Laura Chiticariu (IBM Research - Almaden) Vivian Chu (IBM research - Almaden) Sajib Dasgupta (IBM Research - Almaden) Thilo W. Goetz (IBM Software - Germany) Howard Ho (IBM Research - Almaden) Rajasekar Krishnamurthy (IBM Research - Almaden) Alexander Lang (IBM Software - Germany) Yunyao Li (IBM Research - Almaden) Bin Liu (University of Michigan) Frederick R. Reiss (IBM Research - Almaden) Shivakumar Vaithyanathan (IBM Research - Almaden) Huaiyu Zhu (IBM Research - Almaden) ProApproX: A Lightweight Approximation Query Processor over Probabilistic Trees (Page 1295) Pierre Senellart (Institut Télécom; Télécom ParisTech) Asma Souihli (Institut Télécom; Télécom ParisTech) SPROUT²: A Squared Query Engine for Uncertain Web Data (Page 1299) Robert Fink (University of Oxford) Andrew Hogue (Google Inc.) Dan Olteanu (University of Oxford) Swaroop Rath (University of Oxford) Fuzzy Prophet: Parameter Exploration in Uncertain Enterprise Scenarios (Page 1303) Oliver Kennedy (École Polytechnique Fédérale de Lausanne) Steve Lee (Microsoft Corporation) Charles Loboz (Microsoft Corporation) Slawek Smyl (Microsoft Corporation) Suman Nath (Microsoft Research) LinkDB: A Probabilistic Linkage Database System (Page 1307) Ekaterini Ioannou (Technical University of Crete) Wolfgang Nejdl (L3S Research Center) Claudia Niederée (L3S Research Center) Yannis Velegrakis (University of Trento) (Return to Top) Demo Session 4: User Support and Development Environments CONFLuEnCE: CONtinuous workFLow ExeCution Engine (Page 1311) Panayiotis Neophytou (University of Pittsburgh) Panos K. Chrysanthis (University of Pittsburgh) Alexandros Labrinidis (University of Pittsburgh) Demonstration of Qurk: A Query Processor for Human Operators (Page 1315) Adam Marcus (Massachusetts Institute of Technology) Eugene Wu (Massachusetts Institute of Technology) David R. Karger (Massachusetts Institute of Technology) Samuel Madden (Massachusetts Institute of Technology) Robert C. Miller (Massachusetts Institute of Technology) Automatic Example Queries for Ad Hoc Databases (Page 1319) Bill Howe (University of Washington) Garret Cole (University of Washington) Nodira Khoussainova (University of Washington) Leilani Battle (University of Washington) (Return to Top) NetTrails: A Declarative Platform for Maintaining and Querying Provenance in Distributed Systems (Page 1323) Wenchao Zhou (University of Pennsylvania) Qiong Fei (University of Pennsylvania) Shengzhi Sun (University of Pennsylvania) Tao Tao (University of Pennsylvania) Andreas Haeberlen (University of Pennsylvania) Zachary Ives (University of Pennsylvania) Boon Thau Loo (University of Pennsylvania) Micah Sherr (Georgetown University) GBLENDER: Visual Subgraph Query Formulation Meets Query Processing (Page 1327) Changjiu Jin (Nanyang Technological University) Sourav S. Bhowmick (Nanyang Technological University) Xiaokui Xiao (Nanyang Technological University) Byron Choi (Hong Kong Baptist University) Shuigeng Zhou (Fudan University) Coordination Through Querying in the Youtopia System (Page 1331) Nitin Gupta (Cornell University) Lucja Kot (Cornell University) Gabriel Bender (Cornell University) Sudip Roy (Cornell University) Johannes Gehrke (Cornell University) Christoph Koch (École Polytechnique Fédérale de Lausanne) DBWiki: A Structured Wiki for Curated Data and Collaborative Data Management (Page 1335) Peter Buneman (University of Edinburgh) James Cheney (University of Edinburgh) Sam Lindley (University of Edinburgh) Heiko Müller (CSIRO) Rapid Development of Web-Based Query Interfaces for XML Datasets with QURSED (Page 1339) Abhijith Kashyap (SUNY at Buffalo) Michalis Petropoulos (SUNY at Buffalo)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值