PSTL


General
Usenet News
Problems
NewsCache, A Solution
Acknowledgements

NewsCache
What is NewsCache?
Functionality
Compatibility

Documentation
Installation
User's Manual
Mailing List
Publications

PSTL
Overview
Documentation
Evaluation
Download

 
 
 

For Students
Praktika!
Diplomarbeiten!

Download
Status
Download

Overview

PSTL provides persistent containers that mimic STL's containers as close as possible. Hence the name PSTL (Persistent Standard Template Library). While many other persistent container implementations exist, none of them provides compatibility to STL. We think that this compatibility providess the following advantages:

  • A more natural programming model to C++ programmers.
  • A wide variety of different container implementations.
  • PSTL & NewsCache: NewsCache currently uses its own proprietary organization for storing news articles. We plan to use PSTL for NewsCache's article spool in one of its future releases.

    Documentation

    The PSTL distribution comes with a README and INSTALL file giving basic information about PSTL and its installation.

    We have also a paper to be published in the Proceedings of the Conference on Object-Oriented Technology Systems 2001 (COOTS'01). The paper is also available as technical report in our technical report database.

    Since PSTL is compatible to STL, most of the documentation of STL applies to PSTL as well (though some features are not yet implemented in PSTL).

    Evaluation

    Due to the lack of existing benchmarks, we have implemented our own test-applications (an address book and a resource reservation system) using PSTL (Version 0.7.1) and compared its performance to the Berkeley Database (BDB) (Version 3.1.17) and to the GNU gdbm database (Version 1.8.0).

    The following Figure shows the results for the Address Book Benchmark.

    Address Book Benchmark (in seconds)
    59840 entries148397 entries
    DatabasePSTLBDBgdbmPSTLBDB
    Insertion9.2314.7315.5931.6545.28
    Iteration4.307.328.5010.3020.28
    Lookup2.215.103.005.8616.00
    Deletion69.2316.2712.53482.1927.58

    The following Figure shows the results for the Resource Reservation System. The Resource Reservation System implements the insertion of a reservation as a lookup (to check for conflicts) and an insertion.

    Resource Reservation System (in seconds)
    20000 random entries
    DatabasePSTLBDB
    Insertion2.245.68
    Iteration3.155.43
    Deletion5.202.05

    A complete explanation of the results can be found in our COOTS'01 paper.

    Download

    Version 0.7.1 of PSTL can be downloaded here. PSTL is available under the terms and conditions of the "GNU LIBRARY GENERAL PUBLIC LICENSE".

    The current version of PSTL provides the following features:

    • Implementation of most functionality of the pvector, plist, pmap, pmultimap containers and their iterators.
    • A red-black tree for the internal representation of the pmap.
    • Reference wrappers writing changes made to elements back to the container transparently.

    PSTL uses autoconf for its configuration. If you have never installed a software package using autoconf, please have a look at generic installation instructions contained in the INSTALL file.


    © 1997-2001 Thomas Gschwind