Skip to content

glycerine/shore-mt

Repository files navigation

shore-mt

shore-mt (Scalable Heterogeneous Object REpository - MultiThreaded version), import of the 6.0.2 release of 03-Jan-2012 http://research.cs.wisc.edu/shore-mt/ ( differs from the DIAS version from http://diaswww.epfl.ch/shore-mt/ )

28 Oct 2012, Notes on compilation:

The code complains about gcc-4.4 not closing scopes correctly (see comments in shore-sm-6.0.2/src/fc/w_workaround.h:318). While this was hard to believe, I used gcc-4.1.3 and g++-4.1.3 to get compilation.

I configured with

./configure --prefix=/home/you/pkg/shore-mt/wisc.edu.version/install --enable-dora

To get make check to succeed, I had to add in a couple of TCL_CVBUG casts in the src/sm/smsh directory.

29 Oct:

Info and copyright notices from the Shore-MT home page

(The following is verbatim from the Shore-MT home page, http://research.cs.wisc.edu/shore-mt/, and is provided here only for reference and completeness as of 29 Oct 2012.)

SHORE Storage Manager: The Multi-Threaded Version

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 using the dreadlocks algorithm, 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.


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.


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 ape 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.


  • 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

  • About

    shore-mt (Scalable Heterogeneous Object REpository - MultiThreaded version), import of the 6.0.2 release of 03-Jan-2012 http://research.cs.wisc.edu/shore-mt/ ( differs from the DIAS version from http://diaswww.epfl.ch/shore-mt/ )

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published