Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Guy M. Lohman

dblp:21/2457 · DBLP profile ↗
← Back
57ranked-venue papers
9as first author
0since 2021 · last 2019
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Databases, data management, data science and information retrieval · 54 · 9 first-authorArtificial intelligence and machine learning · 3Systems, architecture and hardware · 2Human-computer interaction and ubiquitous computing · 1Applied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Databases, data mining, and information retrieval
42 papers
Query processing and optimization · 57% Indexing and storage engines · 19% Database system architecture and tuning · 12%
Computer architecture, parallel and distributed computing, and storage systems
9 papers
GPUs and heterogeneous computing · 33% Parallel and multicore computing · 33% Storage systems · 24%

Topics — the 30 heaviest of 92, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Indexing and storage engines › column store
main-memory column store
0.422015
In-memory BLU acceleration in IBM's DB2 and dashDB: Optimized for modern workloads and hardware architectures · ICDE 2015
DB2 with BLU Acceleration: So Much More than Just a Column Store · Proc. VLDB Endow. 2013
Query processing and optimization
join processing
0.422014
Joins on Encoded and Partitioned Data · Proc. VLDB Endow. 2014
Memory-Efficient Hash Joins · Proc. VLDB Endow. 2014
Database system architecture and tuning
hybrid transactional and analytical processing
0.212016
Wildfire: Concurrent Blazing Data Ingest and Analytics · SIGMOD Conference 2016
Query processing and optimization › query execution
in-memory query processing
0.222013
DB2 with BLU Acceleration: So Much More than Just a Column Store · Proc. VLDB Endow. 2013
Main-memory scan sharing for multi-core CPUs · Proc. VLDB Endow. 2008
Query processing and optimization › join processing › join algorithms
hash join
0.222014
Memory-Efficient Hash Joins · Proc. VLDB Endow. 2014
Joins on Encoded and Partitioned Data · Proc. VLDB Endow. 2014
Query processing and optimization › query execution › hardware-accelerated query processing
SIMD query processing
0.222015
DB2 with BLU Acceleration: So Much More than Just a Column Store · Proc. VLDB Endow. 2013
In-memory BLU acceleration in IBM's DB2 and dashDB: Optimized for modern workloads and hardware architectures · ICDE 2015
Indexing and storage engines
data compression
0.212014
Joins on Encoded and Partitioned Data · Proc. VLDB Endow. 2014
Query processing and optimization
analytical query processing
0.212013
WOW: what the world of (data) warehousing can learn from the World of Warcraft · SIGMOD Conference 2013
Indexing and storage engines
column store
0.212013
DB2 with BLU Acceleration: So Much More than Just a Column Store · Proc. VLDB Endow. 2013
Query processing and optimization
compressed data processing
0.212013
DB2 with BLU Acceleration: So Much More than Just a Column Store · Proc. VLDB Endow. 2013
Indexing and storage engines › data compression
dictionary compression
0.212013
DB2 with BLU Acceleration: So Much More than Just a Column Store · Proc. VLDB Endow. 2013
GPUs and heterogeneous computing
GPU query processing
0.212013
WOW: what the world of (data) warehousing can learn from the World of Warcraft · SIGMOD Conference 2013
Query processing and optimization
query optimization
0.272008
Parallelizing query optimization · Proc. VLDB Endow. 2008
LEO - DB2's LEarning Optimizer · VLDB 2001
Using EELs, a Practical Approach to Outerjoin and Antijoin Reordering · ICDE 2001
Query processing and optimization › query optimization
join ordering
0.122007
Adaptively Reordering Joins during Query Execution · ICDE 2007
Using EELs, a Practical Approach to Outerjoin and Antijoin Reordering · ICDE 2001
Query processing and optimization
query execution
0.122006
Compiled Query Execution Engine using JVM · ICDE 2006
On Supporting Containment Queries in Relational Database Management Systems · SIGMOD Conference 2001
Query processing and optimization › query optimization
join enumeration
0.122008
Parallelizing query optimization · Proc. VLDB Endow. 2008
Measuring the Complexity of Join Enumeration in Query Optimization · VLDB 1990
Data models and query languages
SQL
0.122008
SQAK: doing more with keywords · SIGMOD Conference 2008
Starburst II: The Extender Strikes Back! · SIGMOD Conference 1991
Query processing and optimization
cardinality estimation
0.122004
Robust Query Processing through Progressive Optimization · SIGMOD Conference 2004
Learning table access cardinalities with LEO · SIGMOD Conference 2002
Database system architecture and tuning
self-managing database systems
0.122004
Self-Managing Technology in Database Management Systems · VLDB 2004
SMART: Making DB2 (More) Autonomic · VLDB 2002
Query processing and optimization
aggregate query processing
0.112008
SQAK: doing more with keywords · SIGMOD Conference 2008
Information retrieval › keyword search
keyword search over relational databases
0.112008
SQAK: doing more with keywords · SIGMOD Conference 2008
Query processing and optimization › query optimization
parallel query optimization
0.112008
Parallelizing query optimization · Proc. VLDB Endow. 2008
Parallel and multicore computing › parallel algorithms › dynamic programming
parallel dynamic programming
0.112008
Parallelizing query optimization · Proc. VLDB Endow. 2008
Parallel and multicore computing
parallel programming models
0.112008
Parallelizing query optimization · Proc. VLDB Endow. 2008
Data stream processing
streaming analytics
0.112016
Wildfire: Concurrent Blazing Data Ingest and Analytics · SIGMOD Conference 2016
Query processing and optimization
adaptive query processing
0.112007
Adaptively Reordering Joins during Query Execution · ICDE 2007
Query processing and optimization › join processing › join algorithms
pipelined join
0.112007
Adaptively Reordering Joins during Query Execution · ICDE 2007
Storage systems
data compression
0.112015
In-memory BLU acceleration in IBM's DB2 and dashDB: Optimized for modern workloads and hardware architectures · ICDE 2015
Database system architecture and tuning › database design
physical database design
0.122002
Automating physical database design in a parallel database · SIGMOD Conference 2002
DB2 Advisor: An Optimizer Smart Enough to Recommend Its Own Indexes · ICDE 2000
Query processing and optimization › query execution
compiled query execution
0.112006
Compiled Query Execution Engine using JVM · ICDE 2006

Methods — techniques the papers use, named apart from their topics

SIMD · 0.6shadow tables · 0.4columnar storage · 0.4partitioning · 0.2linear probing · 0.2domain partitioning · 0.2dictionary encoding · 0.2bloom filter · 0.2late materialization · 0.2frequency-based dictionary compression · 0.2skip vector array · 0.1sampling · 0.1lottery scheduling · 0.1dynamic programming · 0.1just-in-time compilation · 0.1grammar productions · 0.0cost estimation · 0.0cost modeling · 0.0
YearPublicationVenuePosition
2019 WiSer: A Highly Available HTAP DBMS for IoT Applications
abstract
In a classic transactional distributed database management system (DBMS), write transactions invariably synchronize with a coordinator before final commitment. While enforcing serializability, this model has long been criticized for not satisfying the applications' availability requirements. When entering the era of Internet of Things (IoT), this problem has become more severe, as an increasing number of applications call for the capability of hybrid transactional and analytical processing (HTAP), where aggregation constraints need to be enforced as part of transactions. Current systems work around this by creating escrows, allowing occasional overshoots of constraints, which are handled via compensating application logic.The WiSer DBMS targets consistency with availability, by splitting the database commit into two steps. First, a PROMISE step that corresponds to what humans are used to as commitment, and runs without talking to a coordinator. Second, a SERIALIZE step, that fixes transactions' positions in the serializable order, via a consensus procedure. We achieve this split via a novel data representation that embeds read-sets into transaction deltas, and serialization sequence numbers into table rows. WiSer does no sharding (all nodes can run transactions that modify the entire database), and yet enforces aggregation constraints. Both read-write conflicts and aggregation constraint violations are resolved lazily in the serialized data. WiSer also covers node joins and departures as database tables, thus simplifying correctness and failure handling. We present the design of WiSer as well as experiments suggesting this approach has promise.
Ron Barber, Adam J. Storm, Yuanyuan Tian 0001, Pinar Tözün, Yingjun Wu, Christian Garcia-Arellano, Ronen Grosman, Guy M. Lohman, C. Mohan 0001, René Müller 0001, Hamid Pirahesh, Vijayshankar Raman, Richard Sidle
IEEE BigData8
2017 Evolving Databases for New-Gen Big Data Applications
Ron Barber, Christian Garcia-Arellano, Ronen Grosman, René Müller 0001, Vijayshankar Raman, Richard Sidle, Matt Spilchen, Adam J. Storm, Yuanyuan Tian 0001, Pinar Tözün, Daniel C. Zilio, Matt Huras, Guy M. Lohman, C. Mohan 0001, Fatma Özcan 0001, Hamid Pirahesh
CIDR13
2016 Massively-Parallel Lossless Data Decompression
abstract
Today's exponentially increasing data volumes and the high cost of storage make compression essential for the Big Data industry. Although research has concentrated on efficient compression, fast decompression is critical for analytics queries that repeatedly read compressed data. While decompression can be parallelized somewhat by assigning each data block to a different process, break-through speed-ups require exploiting the massive parallelism of modern multi-core processors and GPUs for data decompression within a block. We propose two new techniques to increase the degree of parallelism during decompression. The first technique exploits the massive parallelism of GPU and SIMD architectures. The second sacrifices some compression efficiency to eliminate data dependencies that limit parallelism during decompression. We evaluate these techniques on the decompressor of the DEFLATE scheme, called Inflate, which is based on LZ77 compression and Huffman encoding. We achieve a 2× speed-up in a head-to-head comparison with several multi core CPU-based libraries, while achieving a 17% energy saving with comparable compression ratios.
Evangelia A. Sitaridi, René Müller 0001, Tim Kaldewey, Guy M. Lohman, Kenneth A. Ross
ICPP4
2016 Wildfire: Concurrent Blazing Data Ingest and Analytics
abstract
We demonstrate Hybrid Transactional and Analytics Processing (HTAP) on the Spark platform by the Wildfire prototype, which can ingest up to ~6 million inserts per second per node and simultaneously perform complex SQL analytics queries. Here, a simplified mobile application uses Wildfire to recommend advertising to mobile customers based upon their distance from stores and their interest in products sold by these stores, while continuously graphing analytics results as those customers move and respond to the ads with purchases.
Ron Barber, Matt Huras, Guy M. Lohman, C. Mohan 0001, René Müller 0001, Fatma Özcan 0001, Hamid Pirahesh, Vijayshankar Raman, Richard Sidle, Oleg Sidorkin, Adam J. Storm, Yuanyuan Tian 0001, Pinar Tözün
SIGMOD Conference3
2015 In-memory BLU acceleration in IBM's DB2 and dashDB: Optimized for modern workloads and hardware architectures
abstract
Although the DRAM for main memories of systems continues to grow exponentially according to Moore's Law and to become less expensive, we argue that memory hierarchies will always exist for many reasons, both economic and practical, and in particular due to concurrent users competing for working memory to perform joins and grouping. We present the in-memory BLU Acceleration used in IBM's DB2 for Linux, UNIX, and Windows, and now also the dashDB cloud offering, which was designed and implemented from the ground up to exploit main memory but is not limited to what fits in memory and does not require manual management of what to retain in memory, as its competitors do. In fact, BLU Acceleration views memory as too slow, and is carefully engineered to work in higher levels of the system cache by keeping the data encoded and packed densely into bit-aligned vectors that can exploit SIMD instructions in processing queries. To achieve scalable multi-core parallelism, BLU assigns to each thread independent data structures, or partitions thereof, designed to have low synchronization costs, and doles out batches of values to threads. On customer workloads, BLU has improved performance on complex analytics queries by 10 to 50 times, compared to the legacy row-organized run-time, while also significantly simplifying database administration, shortening time to value, and improving data compression. UPDATE and DELETE performance was improved by up to 112 times with the new Cancun release of DB2 with BLU Acceleration, which also added Shadow Tables for high performance on mixed OLTP and BI analytics workloads, and extended DB2's High Availability Disaster Recovery (HADR) and SQL compatibility features to BLU's column-organized tables.
Ron Barber, Guy M. Lohman, Vijayshankar Raman, Richard Sidle, Sam Lightstone, Berni Schiefer
ICDE2
2014 Memory-Efficient Hash Joins
abstract
We present new hash tables for joins, and a hash join based on them, that consumes far less memory and is usually faster than recently published in-memory joins. Our hash join is not restricted to outer tables that fit wholly in memory. Key to this hash join is a new concise hash table (CHT), a linear probing hash table that has 100% fill factor, and uses a sparse bitmap with embedded population counts to almost entirely avoid collisions. This bitmap also serves as a Bloom filter for use in multi-table joins. We study the random access characteristics of hash joins, and renew the case for non-partitioned hash joins. We introduce a variant of partitioned joins in which only the build is partitioned, but the probe is not, as this is more efficient for large outer tables than traditional partitioned joins. This also avoids partitioning costs during the probe, while at the same time allowing parallel build without latching overheads. Additionally, we present a variant of CHT, called a concise array table (CAT), that can be used when the key domain is moderately dense. CAT is collision-free and avoids storing join keys in the hash table. We perform a detailed comparison of CHT and CAT against leading in-memory hash joins. Our experiments show that we can reduce the memory usage by one to three orders of magnitude, while also being competitive in performance.
Ron Barber, Guy M. Lohman, Ippokratis Pandis, Vijayshankar Raman, Richard Sidle, Gopi K. Attaluri, Naresh Chainani, Sam Lightstone, David Sharpe
Proc. VLDB Endow.2
2014 Joins on Encoded and Partitioned Data
abstract
Compression has historically been used to reduce the cost of storage, I/Os from that storage, and buffer pool utilization, at the expense of the CPU required to decompress data every time it is queried. However, significant additional CPU efficiencies can be achieved by deferring decompression as late in query processing as possible and performing query processing operations directly on the still-compressed data. In this paper, we investigate the benefits and challenges of performing joins on compressed (or encoded) data. We demonstrate the benefit of independently optimizing the compression scheme of each join column, even though join predicates relating values from multiple columns may require translation of the encoding of one join column into the encoding of the other. We also show the benefit of compressing "payload" data other than the join columns "on the fly," to minimize the size of hash tables used in the join. By partitioning the domain of each column and defining separate dictionaries for each partition, we can achieve even better overall compression as well as increased flexibility in dealing with new values introduced by updates. Instead of decompressing both join columns participating in a join to resolve their different compression schemes, our system performs a light-weight mapping of only qualifying rows from one of the join columns to the encoding space of the other at run time. Consequently, join predicates can be applied directly on the compressed data. We call this procedure encoding translation. Two alternatives of encoding translation are developed and compared in the paper. We provide a comprehensive evaluation of these alternatives using product implementations of each on the TPC-H data set, and demonstrate that performing joins on encoded and partitioned data achieves both superior performance and excellent compression.
Jae-Gil Lee 0001, Gopi K. Attaluri, Ron Barber, Naresh Chainani, Oliver Draese, Frederick Ho, Stratos Idreos, Min-Soo Kim 0002, Sam Lightstone, Guy M. Lohman, Konstantinos Morfonios, Keshava Murthy, Ippokratis Pandis, Lin Qiao 0001, Vijayshankar Raman, Vincent KulandaiSamy, Richard Sidle, Knut Stolze
Proc. VLDB Endow.10
2013 NUMA-aware algorithms: the case of data shuffling
Ippokratis Pandis, René Müller 0001, Vijayshankar Raman, Guy M. Lohman
CIDR5
2013 Go, server, go!: parallel computing with moving servers
abstract
In data centers today, servers are stationary and data flows on a hierarchical network of switches and routers. But such static server arrangements require very scalable networks, and many applications are bottlenecked by network bandwidth. In addition, server density is kept low to enable maintenance and upgrades, as well as to increase air flow. In this paper, we propose a design in which servers move physically, and communicate via point-to-point connections (instead of switches). We argue that this allows data transfer bandwidth to scale linearly with the number of servers, and that moving servers is not as expensive as it sounds, at least in terms of power consumption. Moreover, while servers move around, they regularly reach the perimeters of the system, which helps with heat dissipation and with servicing of failed nodes. This design also helps in traditional switch-based networks, to improve density and maintainability.
Ron Barber, Guy M. Lohman, René Müller 0001, Ippokratis Pandis, Vijayshankar Raman, Winfried W. Wilcke
SoCC2
2013 WOW: what the world of (data) warehousing can learn from the World of Warcraft
abstract
Although originally designed to accelerate pixel monsters, graphics Processing Units (GPUs) have been used for some time as accelerators for selected data base operations. However, to the best of our knowledge, no one has yet reported building a complete system that allows executing complex analytics queries, much less an entire data warehouse benchmark at realistic scale. In this demo, we showcase such a complete system prototype running on a high-end GPU paired with an IBM storage system that achieves >90% hardware efficiency. Our solution delivers sustainable high throughput for business analytics queries in a realistic scenario, i.e., the Star Schema Benchmark at scale factor 1,000. Attendees can interact with our system through a graphical user interface on a tablet PC. They will be able to experience first hand how queries that require processing more than six billion rows, or 100 GB of data, are answered in less than 20 seconds. The user interface allows submitting queries, live performance monitoring of the current query all the way down to the operator level, and viewing the result once the query completes.
René Müller 0001, Tim Kaldewey, Guy M. Lohman, John McPherson
SIGMOD Conference3
2013 DB2 with BLU Acceleration: So Much More than Just a Column Store
abstract
DB2 with BLU Acceleration deeply integrates innovative new techniques for defining and processing column-organized tables that speed read-mostly Business Intelligence queries by 10 to 50 times and improve compression by 3 to 10 times, compared to traditional row-organized tables, without the complexity of defining indexes or materialized views on those tables. But DB2 BLU is much more than just a column store. Exploiting frequency-based dictionary compression and main-memory query processing technology from the Blink project at IBM Research - Almaden, DB2 BLU performs most SQL operations - predicate application (even range predicates and IN-lists), joins, and grouping - on the compressed values, which can be packed bit-aligned so densely that multiple values fit in a register and can be processed simultaneously via SIMD (single-instruction, multipledata) instructions. Designed and built from the ground up to exploit modern multi-core processors, DB2 BLU's hardware-conscious algorithms are carefully engineered to maximize parallelism by using novel data structures that need little latching, and to minimize data-cache and instruction-cache misses. Though DB2 BLU is optimized for in-memory processing, database size is not limited by the size of main memory. Fine-grained synopses, late materialization, and a new probabilistic buffer pool protocol for scans minimize disk I/Os, while aggressive prefetching reduces I/O stalls. Full integration with DB2 ensures that DB2 with BLU Acceleration benefits from the full functionality and robust utilities of a mature product, while still enjoying order-of-magnitude performance gains from revolutionary technology without even having to change the SQL, and can mix column-organized and row-organized tables in the same tablespace and even within the same query.
Vijayshankar Raman, Gopi K. Attaluri, Ron Barber, Naresh Chainani, David Kalmuk, Vincent KulandaiSamy, Jens Leenstra, Sam Lightstone, Shaorong Liu, Guy M. Lohman, Tim Malkemus, René Müller 0001, Ippokratis Pandis, Berni Schiefer, David Sharpe, Richard Sidle, Adam J. Storm
Proc. VLDB Endow.10
2012 GPU join processing revisited
abstract
Until recently, the use of graphics processing units (GPUs) for query processing was limited by the amount of memory on the graphics card, a few gigabytes at best. Moreover, input tables had to be copied to GPU memory before they could be processed, and after computation was completed, query results had to be copied back to CPU memory. The newest generation of Nvidia GPUs and development tools introduces a common memory address space, which now allows the GPU to access CPU memory directly, lifting size limitations and obviating data copy operations. We confirm that this new technology can sustain 98% of its nominal rate of 6.3 GB/sec in practice, and exploit it to process database hash joins at the same rate, i.e., the join is processed "on the fly" as the GPU reads the input tables from CPU memory at PCI-E speeds. Compared to the fastest published results for in-memory joins on the CPU, this represents more than half an order of magnitude speed-up. All of our results include the cost of result materialization (often omitted in earlier work), and we investigate the implications of changing join predicate selectivity and table size.
Tim Kaldewey, Guy M. Lohman, René Müller 0001, Peter Benjamin Volk
DaMoN2
2008 Dynamic faceted search for discovery-driven analysis
abstract
We propose a dynamic faceted search system for discovery-driven analysis on data with both textual content and structured attributes. From a keyword query, we want to dynamically select a small set of "interesting" attributes and present aggregates on them to a user. Similar to work in OLAP exploration, we define "interestingness" as how surprising an aggregated value is, based on a given expectation. We make two new contributions by proposing a novel "navigational" expectation that's particularly useful in the context of faceted search, and a novel interestingness measure through judicious application of p-values. Through a user survey, we find the new expectation and interestingness metric quite effective. We develop an efficient dynamic faceted search system by improving a popular open source engine, Solr. Our system exploits compressed bitmaps for caching the posting lists in an inverted index, and a novel directory structure called a bitset tree for fast bitset intersection. We conduct a comprehensive experimental study on large real data sets and show that our engine performs 2 to 3 times faster than Solr.
Debabrata Dash, Jun Rao, Nimrod Megiddo, Anastasia Ailamaki, Guy M. Lohman
CIKM5
2008 SQAK: doing more with keywords
abstract
Today's enterprise databases are large and complex, often relating hundreds of entities. Enabling ordinary users to query such databases and derive value from them has been of great interest in database research. Today, keyword search over relational databases allows users to find pieces of information without having to write complicated SQL queries. However, in order to compute even simple aggregates, a user is required to write a SQL statement and can no longer use simple keywords. This not only requires the ordinary user to learn SQL, but also to learn the schema of the complex database in detail in order to correctly construct the required query. This greatly limits the options of the user who wishes to examine a database in more depth.
Sandeep Tata, Guy M. Lohman
SIGMOD Conference2
2008 Parallelizing query optimization
abstract
Many commercial RDBMSs employ cost-based query optimization exploiting dynamic programming (DP) to efficiently generate the optimal query execution plan. However, optimization time increases rapidly for queries joining more than 10 tables. Randomized or heuristic search algorithms reduce query optimization time for large join queries by considering fewer plans, sacrificing plan optimality. Though commercial systems executing query plans in parallel have existed for over a decade, the optimization of such plans still occurs serially. While modern microprocessors employ multiple cores to accelerate computations, parallelizing query optimization to exploit multi-core parallelism is not as straightforward as it may seem. The DP used in join enumeration belongs to the challenging nonserial polyadic DP class because of its non-uniform data dependencies. In this paper, we propose a comprehensive and practical solution for parallelizing query optimization in the multi-core processor architecture, including a parallel join enumeration algorithm and several alternative ways to allocate work to threads to balance their load. We also introduce a novel data structure called skip vector array to significantly reduce the generation of join partitions that are infeasible. This solution has been prototyped in PostgreSQL. Extensive experiments using various query graph topologies confirm that our algorithms allocate the work evenly, thereby achieving almost linear speed-up. Our parallel join enumeration algorithm enhanced with our skip vector array outperforms the conventional generate-and-filter DP algorithm by up to two orders of magnitude for star queries-linear speedup due to parallelism and an order of magnitude performance improvement due to the skip vector array.
Wook-Shin Han, Wooseong Kwak, Jinsoo Lee, Guy M. Lohman, Volker Markl
Proc. VLDB Endow.4
2008 Main-memory scan sharing for multi-core CPUs
abstract
Computer architectures are increasingly based on multi-core CPUs and large memories. Memory bandwidth, which has riot kept pace with the increasing number of cores, has become the primary processing bottleneck, replacing disk I/O as the limiting factor. To address this challenge, we provide novel algorithms for increasing the throughput of Business Intelligence (BI) queries, as well as for ensuring fairness and avoiding starvation among a concurrent set of such queries. To maximize throughput, we propose a novel FullSharing scheme that allows all concurrent queries, when performing base-table I/O, to share the cache belonging to a given core. We then generalize this approach to a BatchSharing scheme that avoids thrashing on "agg-tables" ---hash tables that are used for aggregation processing---caused by execution of too many queries on a core. This scheme partitions queries into batches such that the working-set of agg-table entries for each batch can fit into a cache; an efficient sampling technique is used to estimate selectivities and working-set sizes for purposes of query partitioning. Finally, we use lottery-scheduling techniques to ensure fairness and impose a hard upper bound on staging time to avoid starvation. On our 8-core testbed, we were able to completely remove the memory I/O bottleneck, increasing throughput by a factor of 2 to 2.5, while also maintaining fairness and avoiding starvation.
Lin Qiao 0001, Vijayshankar Raman, Frederick Reiss 0001, Peter J. Haas, Guy M. Lohman
Proc. VLDB Endow.5
2007 Impliance: A Next Generation Information Management Appliance
Bishwaranjan Bhattacharjee, Joseph S. Glider, Richard A. Golding, Guy M. Lohman, Volker Markl, Hamid Pirahesh, Jun Rao, Robert M. Rees, Garret Swart
CIDR4
2007 Is (Your) Database Research Having Impact?
Guy M. Lohman
DASFAA1
2007 Adaptively Reordering Joins during Query Execution
abstract
Traditional query processing techniques based on static query optimization are ineffective in applications where statistics about the data are unavailable at the start of query execution or where the data characteristics are skewed and change dynamically. Several adaptive query processing techniques have been proposed in recent years to overcome the limitations of static query optimizers through either explicit re-optimization of plans during execution or by using a row-routing based approach. In this paper, we present a novel method for processing pipelined join plans that dynamically arranges the join order of both inner and outer-most tables at run-time. We extend the Eddies concept of "moments of symmetry" to reorder indexed nested-loop joins, the join method used by all commercial DBMSs for building pipelined query plans for applications for which low latencies are crucial. Unlike row-routing techniques, our approach achieves adaptability by changing the pipeline itself which avoids the bookkeeping and routing decision associated with each row. Operator selectivities monitored during query execution are used to change the execution plan at strategic points, and the change of execution plans utilizes a novel and efficient technique for avoiding duplicates in the query results. Our prototype implementation in a commercial DBMS shows a query execution speedup of up to 8 times.
Quanzhong Li 0002, Minglong Shao, Volker Markl, Kevin S. Beyer, Latha S. Colby, Guy M. Lohman
ICDE6
2006 Compiled Query Execution Engine using JVM
abstract
A conventional query execution engine in a database system essentially uses a SQL virtual machine (SVM) to interpret a dataflow tree in which each node is associated with a relational operator. During query evaluation, a single tuple at a time is processed and passed among the operators. Such a model is popular because of its efficiency for pipelined processing. However, since each operator is implemented statically, it has to be very generic in order to deal with all possible queries. Such generality tends to introduce significant runtime inefficiency, especially in the context of memory-resident systems, because the granularity of data commercial system, using SVM. processing (a tuple) is too small compared with the associated overhead. Another disadvantage in such an engine is that each operator code is compiled statically, so query-specific optimization cannot be applied. To improve runtime efficiency, we propose a compiled execution engine, which, for a given query, generates new query-specific code on the fly, and then dynamically compiles and executes the code. The Java platform makes our approach particularly interesting for several reasons: (1) modern Java Virtual Machines (JVM) have Just- In-Time (JIT) compilers that optimize code at runtime based on the execution pattern, a key feature that SVMs lack; (2) because of Java’s continued popularity, JVMs keep improving at a faster pace than SVMs, allowing us to exploit new advances in the Java runtime in the future; (3) Java is a dynamic language, which makes it convenient to load a piece of new code on the fly. In this paper, we develop both an interpreted and a compiled query execution engine in a relational, Java-based, in-memory database prototype, and perform an experimental study. Our experimental results on the TPC-H data set show that, despite both engines benefiting from JIT, the compiled engine runs on average about twice as fast as the interpreted one, and significantly faster than an in-memory
Jun Rao, Hamid Pirahesh, C. Mohan 0001, Guy M. Lohman
ICDE4
2006 Autonomic features of the IBM DB2 universal database for linux, UNIX, and windows
abstract
Thevast majority of the world's structured data are now stored and managed by relational database management systems (RDBMSs). These systems provide powerful data management capabilities. However, as the power and functionality of these systems has grown, so has the complexity of their administration. In this paper, we show how the IBM DB2 Universal Database for Linux, UNIX, and Windows (DB2 UDB) product has exploited autonomic computing to reduce this administration complexity and become more self-managing. We survey the major autonomic computing features in the DB2 UDB product and describe the benefits, with experimental data in some cases
Christian Garcia-Arellano, Sam Lightstone, Guy M. Lohman, Volker Markl, Adam J. Storm
IEEE Trans. Syst. Man Cybern. Syst.3
2005 System RX: One Part Relational, One Part XML
abstract
This paper describes the overall architecture and design aspects of a hybrid relational and XML database system called System RX. We believe that such a system is fundamental in the evolution of enterprise data management solutions: XML and relational data will co-exist and complement each other in enterprise solutions. Furthermore, a successful XML repository requires much of the same infrastructure that already exists in a relational database management system. Finally, XML query languages have considerable conceptual and functional overlap with relational dataflow engines. System RX is the first truly hybrid system that comingles XML and relational data, giving them equal footing. The new support for XML includes native support for storage and indexing as well as query compilation and evaluation support for the latest industry-standard query languages, SQL/XML and XQuery. By building a hybrid system, we leverage more than 20 years of data management research to advance XML technology to the same standards expected from mature relational systems.
Kevin S. Beyer, Roberta Cochrane, Vanja Josifovski, Jim Kleewein, George Lapis, Guy M. Lohman, Robert Lyle, Fatma Özcan 0001, Hamid Pirahesh, Normen Seemann, Tuong C. Truong, Bert Van der Linden, Brian Vickery
SIGMOD Conference6
2005 Statistical Learning Techniques for Costing XML Queries
Ning Zhang 0002, Peter J. Haas, Vanja Josifovski, Guy M. Lohman
VLDB4
2004 Robust Query Processing through Progressive Optimization
abstract
Virtually every commercial query optimizer chooses the best plan for a query using a cost model that relies heavily on accurate cardinality estimation. Cardinality estimation errors can occur due to the use of inaccurate statistics, invalid assumptions about attribute independence, parameter markers, and so on. Cardinality estimation errors may cause the optimizer to choose a sub-optimal plan. We present an approach to query processing that is extremely robust because it is able to detect and recover from cardinality estimation errors. We call this approach "progressive query optimization" (POP). POP validates cardinality estimates against actual values as measured during query execution. If there is significant disagreement between estimated and actual values, execution might be stopped and re-optimization might occur. Oscillation between optimization and execution steps can occur any number of times. A re-optimization step can exploit both the actual cardinality and partial results, computed during a previous execution step. Checkpoint operators (CHECK) validate the optimizer's cardinality estimates against actual cardinalities. Each CHECK has a condition that indicates the cardinality bounds within which a plan is valid. We compute this validity range through a novel sensitivity analysis of query plan operators. If the CHECK condition is violated, CHECK triggers re-optimization. POP has been prototyped in a leading commercial DBMS. An experimental evaluation of POP using TPC-H queries illustrates the robustness POP adds to query processing, while incurring only negligible overhead. A case-study applying POP to a real-world database and workload shows the potential of POP, accelerating complex OLAP queries by almost two orders of magnitude.
Volker Markl, Vijayshankar Raman, David E. Simmen, Guy M. Lohman, Hamid Pirahesh
SIGMOD Conference4
2004 Automated Statistics Collection in DB2 UDB
Ashraf Aboulnaga, Peter J. Haas, Sam Lightstone, Guy M. Lohman, Volker Markl, Ivan Popivanov, Vijayshankar Raman
VLDB4
2004 Self-Managing Technology in Database Management Systems
Surajit Chaudhuri, Benoît Dageville, Guy M. Lohman
VLDB3
2004 ROX: Relational Over XML
Alan Halverson, Vanja Josifovski, Guy M. Lohman, Hamid Pirahesh, Mathias Mörschel
VLDB3
2004 Progressive Optimization in Action
Vijayshankar Raman, Volker Markl, David E. Simmen, Guy M. Lohman, Hamid Pirahesh
VLDB4
2004 DB2 Design Advisor: Integrated Automatic Physical Database Design
Daniel C. Zilio, Jun Rao, Sam Lightstone, Guy M. Lohman, Adam J. Storm, Christian Garcia-Arellano, Scott Fadden
VLDB4
2003 Estimating Compilation Time of a Query Optimizer
abstract
A query optimizer compares alternative plans in its search space to find the best plan for a given query. Depending on the search space and the enumeration algorithm, optimizers vary in their compilation time and the quality of the execution plan they can generate. This paper describes a compilation time estimator that provides a quantified estimate of the optimizer compilation time for a given query. Such an estimator is useful for automatically choosing the right level of optimization in commercial database systems. In addition, compilation time estimates can be quite helpful for mid-query reoptimization, for monitoring the progress of workload analysis tools where a large number queries need to be compiled (but not executed), and for judicious design and tuning of an optimizer.Previous attempts to estimate optimizer compilation complexity used the number of possible binary joins as the metric and overlooked the fact that each join often translates into a different number of join plans because of the presence of "physical" properties. We use the number of plans (instead of joins) to estimate query compilation time, and employ two novel ideas: (1) reusing an optimizer's join enumerator to obtain actual number of joins, but bypassing plan generation to save estimation overhead; (2) maintaining a small number of "interesting" properties to facilitate plan counting. We prototyped our approach in a commercial database system and our experimental results show that we can achieve good compilation time estimates (less than 30% error, on average) for complex real queries, using a small fraction (within 3%) of the actual compilation time.
Ihab F. Ilyas, Jun Rao, Guy M. Lohman, Dengfeng Gao, Eileen Tien Lin
SIGMOD Conference3
2002 Learning table access cardinalities with LEO
abstract
LEO is a comprehensive way to repair incorrect statistics and cardinality estimates of a query execution plan. LEO introduces a feedback loop to query optimization that enhances the available information on the database where the most queries have occurred, allowing the optimizer to actually learn from its past mistakes. We demonstrate how LEO learns outdated table access statistics on a TPC-H like database schema and show that LEO improves the estimates for table cardinalities as well as filter factors for single predicates. Thus LEO enables the query optimizer to choose a better query execution plan, resulting in more efficient query processing. We not only demonstrate learning by repetitive execution of a single query, but also illustrate how similar, but not identical queries benefit from learned knowledge. In addition, we show the effect of both learning cardinalities and adjusting related statistics.
Volker Markl, Guy M. Lohman
SIGMOD Conference2
2002 Automating physical database design in a parallel database
abstract
Physical database design is important for query performance in a shared-nothing parallel database system, in which data is horizontally partitioned among multiple independent nodes. We seek to automate the process of data partitioning. Given a workload of SQL statements, we seek to determine automatically how to partition the base data across multiple nodes to achieve overall optimal (or close to optimal) performance for that workload. Previous attempts use heuristic rules to make those decisions. These approaches fail to consider all of the interdependent aspects of query performance typically modeled by today's sophisticated query optimizers.We present a comprehensive solution to the problem that has been tightly integrated with the optimizer of a commercial shared-nothing parallel database system. Our approach uses the query optimizer itself both to recommend candidate partitions for each table that will benefit each query in the workload, and to evaluate various combinations of these candidates. We compare a rank-based enumeration method with a random-based one. Our experimental results show that the former is more effective.
Jun Rao, Nimrod Megiddo, Guy M. Lohman
SIGMOD Conference4
2002 SMART: Making DB2 (More) Autonomic
Guy M. Lohman, Sam Lightstone
VLDB1
2001 Self-Managing Technology in IBM DB2 Universal Database
abstract
As the cost of both hardware and software falls due to technological advancements and economies of scale, the cost of ownership for database applications is increasingly dominated by the cost of people to manage them. Databases are growing rapidly in scale and complexity, while skilled database administrators (DBAs) are becoming rarer and more expensive. The scope of responsibility of DBAs is indeed daunting. This paper describes the self-managing technology in IBM DB2 Universal Database to illustrate how self-managing technology can enhance the usability of enterprise middleware and reduce the total cost of ownership (TCO).
Daniel C. Zilio, Sam Lightstone, Kelly A. Lyons, Guy M. Lohman
CIKM4
2001 Using EELs, a Practical Approach to Outerjoin and Antijoin Reordering
abstract
Outerjoins and antijoins are two important classes of joins in database systems. Reordering outerjoins and antijoins with innerjoins is challenging because not all the join orders preserve the semantics of the original query. Previous work did not consider antijoins and was restricted to a limited class of queries. We consider using a conventional bottom-up optimizer to reorder different types of joins. We propose extending each join predicate's eligibility list, which contains all the tables referenced in the predicate. An extended eligibility list (EEL) includes all the tables needed by a predicate to preserve the semantics of the original query. We describe an algorithm that can set up the EELs properly in a bottom-up traversal of the original operator tree. A conventional join optimizer is then modified to check the EELs when generating sub-plans. Our approach handles antijoin and can resolve many practical issues. It is now being implemented in an upcoming release of IBM's Universal Database Server for Unix, Windows and OS/2.
Jun Rao, Bruce G. Lindsay 0001, Guy M. Lohman, Hamid Pirahesh, David E. Simmen
ICDE3
2001 On Supporting Containment Queries in Relational Database Management Systems
abstract
Virtually all proposals for querying XML include a class of query we term “containment queries”. It is also clear that in the foreseeable future, a substantial amount of XML data will be stored in relational database systems. This raises the question of how to support these containment queries. The inverted list technology that underlies much of Information Retrieval is well-suited to these queries, but should we implement this technology (a) in a separate loosely-coupled IR engine, or (b) using the native tables and query execution machinery of the RDBMS? With option (b), more than twenty years of work on RDBMS query optimization, query execution, scalability, and concurrency control and recovery immediately extend to the queries and structures that implement these new operations. But all this will be irrelevant if the performance of option (b) lags that of (a) by too much. In this paper, we explore some performance implications of both options using native implementations in two commercial relational database systems and in a special purpose inverted list engine. Our performance study shows that while RDBMSs are generally poorly suited for such queries, under certain conditions they can outperform an inverted list engine. Our analysis further identifies two significant causes that differentiate the performance of the IR and RDBMS implementations: the join algorithms employed and the hardware cache utilization. Our results suggest that contrary to most expectations, with some modifications, a native implementation in an RDBMS can support this class of query much more efficiently.
Jeffrey F. Naughton, David J. DeWitt, Qiong Luo 0001, Guy M. Lohman
SIGMOD Conference5
2001 LEO - DB2's LEarning Optimizer
Michael Stillger, Guy M. Lohman, Volker Markl, Mokhtar Kandil
VLDB2
2000 DB2 Advisor: An Optimizer Smart Enough to Recommend Its Own Indexes
abstract
This paper introduces the concept of letting an RDBMS optimizer optimize its own environment. In our project, we have used the DB2 optimizer to tackle the index selection problem, a variation of the knapsack problem. This paper discusses our implementation of index recommendation, the user interface, and provide measurements on the quality of the recommended indexes.
Gary Valentin, Michael Zuliani, Daniel C. Zilio, Guy M. Lohman, Alan Skelley
ICDE4
1998 Future Directions in Database Research (Panel)
Surajit Chaudhuri, Hector Garcia-Molina, Henry F. Korth, Guy M. Lohman, David B. Lomet, David Maier 0001
ICDE4
1998 IBM's DB2 Universal Database demonstrations at VLDB'98
K. Bernhard Schiefer, Jim Kleewein, Karen Brannon, Guy M. Lohman, Gene Fuh
VLDB4
1991 Starburst II: The Extender Strikes Back!
abstract
No abstract available.
Guy M. Lohman, George Lapis, Tobin J. Lehman, Rakesh Agrawal 0001, Roberta Cochrane, John McPherson, C. Mohan 0001, Hamid Pirahesh, Jennifer Widom
SIGMOD Conference1
1990 A Starburst is Born
George Lapis, Guy M. Lohman, Hamid Pirahesh
SIGMOD Conference2
1990 Measuring the Complexity of Join Enumeration in Query Optimization
Kiyoshi Ono, Guy M. Lohman
VLDB2
1990 Starburst Mid-Flight: As the Dust Clears
abstract
The purpose of the Starburst project is to improve the design of relational database management systems and enhance their performance, while building an extensible system to better support nontraditional applications and to serve as a testbed for future improvements in database technology. The design and implementation of the Starburst system to date are considered. Some key design decisions and how they affect the goal of improved structure and performance are examined. How well the goal of extensibility has been met is examined: what aspects of the system are extensible, how extensions can be done, and how easy it is to add extensions. Some actual extensions to the system, including the experiences of the first real customizers, are discussed.>
Laura M. Haas, Walter Chang, Guy M. Lohman, John McPherson, Paul F. Wilms, George Lapis, Bruce G. Lindsay 0001, Hamid Pirahesh, Michael J. Carey 0001, Eugene J. Shekita
IEEE Trans. Knowl. Data Eng.3
1989 Extensible Query Processing in Starburst
abstract
Today's DBMSs are unable to support the increasing demands of the various applications that would like to use a DBMS. Each kind of application poses new requirements for the DBMS. The Starburst project at IBM's Almaden Research Center aims to extend relational DBMS technology to bridge this gap between applications and the DBMS. While providing a full function relational system to enable sharing across applications, Starburst will also allow (sophisticated) programmers to add many kinds of extensions to the base system's capabilities, including language extensions (e.g., new datatypes and operations), data management extensions (e.g., new access and storage methods) and internal processing extensions (e.g., new join methods and new query transformations). To support these features, the database query language processor must be very powerful and highly extensible. Starburst's language processor features a powerful query language, rule-based optimization and query rewrite, and an execution system based on an extended relational algebra. In this paper, we describe the design of Starburst's query language processor and discuss the ways in which the language processor can be extended to achieve Starburst's goals.
Laura M. Haas, Johann-Christoph Freytag, Guy M. Lohman, Hamid Pirahesh
SIGMOD Conference3
1989 Index Scans Using a Finite LRU Buffer: A Validated I/O Model
abstract
Indexes are commonly employed to retrieve a portion of a file or to retrieve its records in a particular order. An accurate performance model of indexes is essential to the design, analysis, and tuning of file management and database systems, and particularly to database query optimization. Many previous studies have addressed the problem of estimating the number of disk page fetches when randomly accessing k records out of N given records stored on T disk pages. This paper generalizes these results, relaxing two assumptions that usually do not hold in practice: unlimited buffer and unique records for each key value. Experiments show that the performance of an index scan is very sensitive to buffer size limitations and multiple records per key value. A model for these more practical situations is presented and a formula derived for estimating the performance of an index scan. We also give a closed-form approximation that is easy to compute. The theoretical results are validated using the R * distributed relational database system. Although we use database terminology throughout the paper, the model is more generally applicable whenever random accesses are made using keys.
Lothar F. Mackert, Guy M. Lohman
ACM Trans. Database Syst.2
1988 Grammar-like Functional Rules for Representing Query Optimization Alternatives
abstract
Extensible query optimization requires that the “repertoire” of alternative strategies for executing queries be represented as data, not embedded in the optimizer code. Recognizing that query optimizers are essentially expert systems, several researchers have suggested using strategy rules to transform query execution plans into alternative or better plans. Though extremely flexible, these systems can be very inefficient at any step in the processing, many rules may be eligible for application and complicated conditions must be tested to determine that eligibility during unification. We present a constructive, “building blocks” approach to defining alternative plans, in which the rules defining alternatives are an extension of the productions of a grammar to resemble the definition of a function in mathematics. The extensions permit each token of the grammar to be parametrized and each of its alternative definitions to have a complex condition. The terminals of the grammar are base-level database operations on tables that are interpreted at run-time. The non-terminals are defined declaratively by production rules that combine those operations into meaningful plans for execution. Each production produces a set of alternative plans, each having a vector of properties, including the estimated cost of producing that plan. Productions can require certain properties of their inputs, such as tuple order and location, and we describe a “glue” mechanism for augmenting plans to achieve the required properties. We give detailed examples to illustrate the power and robustness of our rules and to contrast them with related ideas.
Guy M. Lohman
SIGMOD Conference1
1988 Implementing an Interpreter for Functional Rules in a Query Optimizer
Mavis K. Lee, Johann-Christoph Freytag, Guy M. Lohman
VLDB3
1986 Do semantically equivalent SQL queries perform differently?
abstract
The relational database query language SQL (originally, "SEQUEL") was first developed as a non-procedural language: the user should specify only what data is desired, leaving it to the the system's query optimizer to determine how the data is accessed [ASTR 75]. IBM pioneered the development of query optimizer technology that would achieve this ideal, beginning with the well-known optimizer of System R [SELI 79], the prototype relational database management system (DBMS) developed at IBM Research Laboratory in San Jose, California during the late 1970's. The IBM products SQL/DS [SQL 84] and DB2 [CHEN 84], as well as the experimental distributed DBMS prototype R∗ [LOHM 85], contain optimizers that are based upon the System R prototype.
Guy M. Lohman
ICDE1
1986 R* Optimizer Validation and Performance Evaluation for Local Queries
abstract
Few database query optimizer models have been validated against actual performance. This paper presents the methodology and results of a thorough validation of the optimizer and evaluation of the performance of the experimental distributed relational database management system R*, which inherited and extended to a distributed environment the optimization algorithms of System R. Optimizer estimated costs and actual R* resources consumed were written to database tables using new SQL commands, permitting automated control from SQL application programs of test data collection and reduction. A number of tests were run over a wide variety of dynamically-created test databases, SQL queries, and system parameters. The results for single-table access, sorting, and local 2-table joins are reported here. The tests confirmed the accuracy of the majority of the I/O cost model, the significant contribution of CPU cost to total cost, and the need to model CPU cost in more detail than was done in System R. The R* optimizer now retains cost components separately and estimates the number of CPU instructions, including those for applying different kinds of predicates. The sensitivity of I/O cost to buffer space motivated the development of more detailed models of buffer utilization unclustered index scans and nested-loop joins often benefit from pages remaining in the buffers, whereas concurrent scans of the data pages and the index pages for multiple tables during joins compete for buffer share. Without an index on the join column of the inner table, the optimizer correctly avoids the nested-loop join, confirming the need for merge-scan joins. When the join column of the inner is indexed, the optimizer overestimates the cost of the nested-loop join, whose actual performance is very sensitive to three parameters that are extremely difficult to estimate (1) the join (result) cardinality, (2) the outer table's cardinality, and (3) the number of buffer pages available to store the inner table. Suggestions are given for improved database statistics, prefetch and page replacement strategies for the buffer manager, and the use of temporary indexes and Bloom filters (hashed semijoins) to reduce access of unneeded data.
Lothar F. Mackert, Guy M. Lohman
SIGMOD Conference2
1986 R* Optimizer Validation and Performance Evaluation for Distributed Queries
Lothar F. Mackert, Guy M. Lohman
VLDB2
1984 Optimization of Nested Queries in a Distributed Relational Database
Guy M. Lohman, Dean Daniels, Laura M. Haas, Ruth Kistler, Patricia G. Selinger
VLDB1
1983 Remotely-Sensed Geophysical Databases: Experience and Implications for Generalized DBMS
abstract
This paper presents the characteristics of scientific remotely-sensed databases that are relevant to --- and pose unique challenges for --- general-purpose database management systems (DBMSs). We describe a prototype system that integrates geophysical data and its metadata from both satellite and in situ sources, using a relational general-purpose DBMS to manage the catalog and observational data, and a video optical disk to archive images. Based upon our experience with this application, we suggest augmentations to DBMSs that would facilitate their use not only for scientific databases, but also for engineering, document, and even commercial database applications.
Guy M. Lohman, Joseph C. Stoltzfus, Anita N. Benson, Michael D. Martin, Alfonso F. Cardenas
SIGMOD Conference1
1977 Optimal Policy for Batch Operations: Backup, Checkpointing, Reorganization, and Updating (Abstract)
abstract
Many database maintenance operations are performed periodically in batches, even in real-time systems. The purpose of this paper is to present a general model for determining the optimal frequency of these batch operations. Specifically, optimal backup, checkpointing, batch updating, and reorganization policies are derived. The approach used exploits inventory parallels, by seeking the optimal number of items --- rather than a time interval --- to trigger a batch. The Renewal Reward Theorem is used to find the average long run costs for backup, recovery, and item storage, per unit time, which is then minimized to find the optimal backup policy. This approach permits far less restrictive assumptions about the update arrival process than did previous models, as well as inclusion of storage costs for the updates. The optimal checkpointing, batch updating, and reorganization policies are shown to be special cases of this optimal backup policy. The derivation of previous results as special cases of this model, and an example, demonstrate the generality of the methodology developed.
Guy M. Lohman, John A. Muckstadt
SIGMOD Conference1
1977 Optimal Policy for Batch Operations: Backup, Checkpointing, Reorganization, and Updating
abstract
Many database maintenance operations are performed periodically in batches, even in realtime systems. The purpose of this paper is to present a general model for determining the optimal frequency of these batch operations. Specifically, optimal backup, checkpointing, batch updating, and reorganization policies are derived. The approach used exploits inventory parallels by seeking the optimal number of items—rather than a time interval—to trigger a batch. The Renewal Reward Theorem is used to find the average long run costs for backup, recovery, and item storage, per unit time, which is then minimized to find the optimal backup policy. This approach permits far less restrictive assumptions about the update arrival process than did previous models, as well as inclusion of storage costs for the updates. The optimal checkpointing, batch updating, and reorganization policies are shown to be special cases of this optimal backup policy. The derivation of previous results as special cases of this model, and an example, demonstrate the generality of the methodology developed.
Guy M. Lohman, John A. Muckstadt
ACM Trans. Database Syst.1
1976 Differential Files: Their Application to the Maintenance of Large Data Bases (Abstract)
abstract
The representation of a collection of data in terms of its differences from some pre-established point of reference is a basic compaction technique which finds wide applicability. This paper describes a differential database representation which is shown to be an efficient method for storing large and volatile databases. The technique confines database modifications to a relatively small area of physical storage and as a result offers two significant operational advantages. First, because the "reference point" for the database is inherently static, it can be simply and efficiently stored. Moreover, since all modifications to the database are physically localized, the process of backup and the process of recovery are relatively fast and inexpensive.
Dennis G. Severance, Guy M. Lohman
SIGMOD Conference2
1976 Differential Files: Their Application to the Maintenance of Large Databases
abstract
The representation of a collection of data in terms of its differences from some preestablished point of reference is a basic storage compaction technique which finds wide applicability. This paper describes a differential database representation which is shown to be an efficient method for storing large and volatile databases. The technique confines database modifications to a relatively small area of physical storage and as a result offers two significant operational advantages. First, because the “reference point” for the database is inherently static, it can be simply and efficiently stored. Second, since all modifications to the database are physically localized, the process of backup and the process of recovery are relatively fast and inexpensive.
Dennis G. Severance, Guy M. Lohman
ACM Trans. Database Syst.2