Computer Sciences Dept. [an error occurred while processing this directive] Shore-MT Project at UW

SHORE Storage Manager: The Multi-Threaded Version

Download information is at the bottom of this page.


Description

This is an experiment test-bed library for use by researchers who wish to write multi-threaded software that manages persistent data.

This storage engine provides the following capabilities:

  • transactions with ACID properties, with ARIES-based logging and recovery, primitives for partial rollback, transaction chaining, and early lock release,
  • prepared-transaction support for two-phased commit,
  • persistent storage structures : B+ tree indexes, R* trees (spatial indexes), and files of untyped records,
  • fine-grained locking for records and B+ tree indexes with deadlock detection, optional lock escalation and optional coarse-grained locking,
  • in-memory buffer management with optional prefetching,
  • extensible statistics-gathering, option-processing, and error-handling facilities.

This software runs on Pthreads, thereby providing its client software (e.g., a database server) multi-threading capabilities and resulting scalability from modern SMP and NUMA architectures, and has been used on Linux/x86-64 and Solaris/Niagara architectures.


Background

The SHORE (Scalable Heterogeneous Object REpository) project at the University of Wisconsin - Madison Department of Computer Sciences produced the first release of this storage manager as part of the full SHORE release in 1996. The storage manager portion of the SHORE project was used by other projects at the UW and elsewhere, and was intermittently maintained through 2008.

The SHORE Storage Manager was originally developed on single-cpu Unix-based systems, providing support for "value-added" cooperating peer servers, one of which was the SHORE Value-Added Server (http://research.cs.wisc.edu/shore), and another of which was Paradise (http://research.cs.wisc.edu/paradise) at the University of Wisconsin. The TIMBER (http://www.eecs.umich.edu/db/timber) and Pericope (http://www.eecs.umich.edu/periscope) projects at the University of Michigan, PREDATOR (http://www.distlab.dk/predator) at Cornell and Lachesis (http://www.vldb.org/conf/2003/papers/S21P03.pdf) used the SHORE Storage Manager. The storage manager has been used for innumerable published studies since then.

The storage manager had its own "green threads" and communications layers, and until recently, its code structure, nomenclature, and contents reflected its SHORE roots.

In 2007, the Data-Intensive Applications and Systems Lab (DIAS) at Ecole Polytechnique Federale de Lausanne began work on a port of release 5.0.1 of the storage manager to Pthreads, and developed more scalable synchronization primitives, identified bottlenecks in the storage manager, and improved the scalability of the code. This work was on a Solaris/Niagara platform and was released as Shore-MT http://diaswww.epfl.ch/shore-mt). It was a partial port of the storage manager and did not include documentation. Projects using Shore-MT include StagedDB/CMP (http://www.cs.cmu.edu/~stageddb/), DORA (http://www.cs.cmu.edu/~ipandis/resources/CMU-CS-10-101.pdf)

In 2009, the University of Wisconsin - Madison took the first Shore-MT release and ported the remaining code to Pthreads. This work as done on a Red Hat Linux/x86-64 platform. This release is the result of that work, and includes this documentation, bug fixes, and supporting test code. In this release some of the scalability changes of the DIAS release have been disabled as bug work-arounds, with the hope that further work will improve scalability of the completed port.


Copyrights

This distribution contains code and documentation subject to one or more of the following copyrights.

The main code base of the storage manager is subject to the SHORE/UW copyright (given below) and most of it is also subject to the SHORE-MT/DIAS copyright (also given below). Both copyrights are hereby extended to the date of this release, 2010.

The atomic operations library is taken from the OPENSOLARIS release and is subject to Sun Microsystems copyright, and to the OPENSOLARIS license, found in src/atomic_ops/OPENSOLARIS.LICENSE. It is lengthy and so it is not included here.

The strstream compatibility code is subject to the Silicon Graphics copyright, below.

The regex code found in the src/common/ library is subject to the Henry Spencer/ATT copyright and license, contained in src/common/regex2.h, and included below.

What little remains of the old SHORE sthreads library is subject to copyright given in those source files (src/sthread/sthread.h as well as to the SHORE/UW and SHORE-MT/DIAS copyrights.

  • SHORE/UW Copyright:

SHORE -- Scalable Heterogeneous Object REpository

Copyright (c) 1994-2010 Computer Sciences Department, University of Wisconsin -- Madison All Rights Reserved.

Permission to use, copy, modify and distribute this software and its documentation is hereby granted, provided that both the copyright notice and this permission notice appear in all copies of the software, derivative works or modified versions, and any portions thereof, and that both notices appear in supporting documentation.

THE AUTHORS AND THE COMPUTER SCIENCES DEPARTMENT OF THE UNIVERSITY OF WISCONSIN - MADISON ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION, AND THEY DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.

This software was developed with support by the Advanced Research Project Agency, ARPA order number 018 (formerly 8230), monitored by the U.S. Army Research Laboratory under contract DAAB07-91-C-Q518. Further funding for this work was provided by DARPA through Rome Research Laboratory Contract No. F30602-97-2-0247.

  • SHORE-MT/DIAS Copyright:

Shore-MT -- Multi-threaded port of the SHORE storage manager

Copyright (c) 2007-2009 Data Intensive Applications and Systems Labaratory (DIAS) Ecole Polytechnique Federale de Lausanne

All Rights Reserved.

Permission to use, copy, modify and distribute this software and its documentation is hereby granted, provided that both the copyright notice and this permission notice appear in all copies of the software, derivative works or modified versions, and any portions thereof, and that both notices appear in supporting documentation.

This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.

  • Silicon Graphic Copyright and License:

Copyright (c) 1998 Silicon Graphics Computer Systems, Inc.

Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Silicon Graphics makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.

  • Henry Spencer/ATT Copyright and License:

Copyright 1992, 1993, 1994, 1997 Henry Spencer. All rights reserved. This software is not subject to any license of the American Telephone and Telegraph Company or of the Regents of the University of California.

Permission is granted to anyone to use this software for any purpose on any computer system, and to alter it and redistribute it, subject to the following restrictions:

1. The author is not responsible for the consequences of use of this software, no matter how awful, even if they arise from flaws in it.

2. The origin of this software must not be misrepresented, either by explicit claim or by omission. Since few users ever read sources, credits must appear in the documentation.

3. Altered versions must be plainly marked as such, and must not be misrepresented as being the original software. Since few users ever read sources, credits must appear in the documentation.

4. This notice may not be removed or altered.


Downloads

  • Source and documentation(-dox) tarballs can be downloaded via HTTP from here.
  • Documentation of latest release is on-line here.

    See also:

    WWW at Data-Intensive Applications and Systems Lab (DIAS)

    UW-Madison, CS Department Server


    Last Modified:

    Mon Jan 2 16:25:52 CST 2012

    shore-mt@cs.wisc.edu
    [an error occurred while processing this directive]