Genezzo::Tablespace - a class that defines a tablespace, the relationship between a collection of files on disk and a set of tables in the dictionary.
A Tablespace is a storage unit for a table or many tables, and a table only exists in a single tablespace. Each tablespace is composed of one or more datafiles, and each datafile is only associated with a single tablespace.
The tablespace object (tso) is used to co-ordinate several major file/storage subsystems. For example, each datafile has local state information (free space, used extents) controlled by space management (SpaceMan::SMFile), but the overall information about a table and its datafiles is stored in the dictionary tables. Finally, the buffer cache is used to mediate access to the actual disk files, dealing with issues like locking, concurrency, and caching. When a table is updated, it uses the buffer cache to write to a datafile. If the current datafile is full, the table will use the tso to find the next available file, and the tso will update the dictionary to note that the file is in use. The tso also propogates storage management preferences stored in the dictionary to the file space management, controlling extent size growth.
- filearr, used, unused: should match dict _tsfiles fileidx - done 3.21?
- notion of buffercache associated the tablespace object -- possible multiple active bc's, with different characteristics/semantics, e.g. a bc for temp space with different blocksize, lacking txn recovery? Need to guarantee that all clients of a tso use the same bc for consistency/locking/txn support
- use compatibility matrix to drive automatic upgrade capability
Jeffrey I. Cohen, firstname.lastname@example.org
Copyright (c) 2003-2006 Jeffrey I Cohen. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program 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. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Address bug reports and comments to: email@example.com
For more information, please visit the Genezzo homepage at http://www.genezzo.com