public final class V2MasterTableDataSource
extends java.lang.Object
Unlike V1MasterTableDataSource, this manages data and index information in a single store which can be backed by a single file in the file system.
The structure of the store comprises of a header block that contains the following information;
HEADER BLOCK +-------------------------------+ | version | | table id | | table sequence id | | pointer to DataTableDef | | pointer to DataIndexSetDef | | pointer to index block | | LIST BLOCK HEADER pointer | +-------------------------------+
Each record is comprised of a header which contains offsets to the fields in the record, and a serializable of the fields themselves.
Modifier and Type | Field | Description |
---|---|---|
protected BlobStoreInterface |
blob_store_interface |
An abstracted reference to a BlobStore for managing blob references and
blob data.
|
protected com.mckoi.database.DataCellCache |
cache |
A reference to the DataCellCache object.
|
protected int |
column_count |
The number of columns in this table.
|
protected com.mckoi.database.RIDList[] |
column_rid_list |
The list of RIDList objects for each column in this table.
|
protected boolean |
DATA_CELL_CACHING |
Set to false to disable cell caching.
|
protected java.lang.String |
delete_hits_key |
|
protected java.lang.String |
file_hits_key |
|
protected com.mckoi.database.MasterTableGarbageCollector |
garbage_collector |
Manages scanning and deleting of rows marked as deleted within this
data source.
|
protected DataIndexSetDef |
index_def |
A DataIndexSetDef object that describes the indexes on the table.
|
protected java.lang.String |
insert_hits_key |
|
protected boolean |
is_closed |
True if this table source is closed.
|
protected java.lang.String |
root_lock_key |
The keys we use for Database.stats() for information for this table.
|
protected DataTableDef |
table_def |
A DataTableDef object that describes the table topology.
|
protected int |
table_id |
An integer that uniquely identifies this data source within the
conglomerate.
|
protected com.mckoi.database.MultiVersionTableIndices |
table_indices |
A multi-version representation of the table indices kept for this table
including the row list and the scheme indices.
|
protected java.lang.String |
total_hits_key |
Constructor | Description |
---|---|
V2MasterTableDataSource(TransactionSystem system,
com.mckoi.database.StoreSystem store_system,
com.mckoi.database.OpenTransactionList open_transactions,
BlobStoreInterface blob_store_interface) |
The Constructor.
|
Modifier and Type | Method | Description |
---|---|---|
void |
checkAndRepair(java.lang.String file_name,
UserTerminal terminal) |
Performs a complete check and repair of the table.
|
protected void |
clearAllRootLocks() |
Clears all root locks on the table.
|
DebugLogger |
Debug() |
Returns the DebugLogger object that can be used to log debug messages.
|
protected void |
doOpeningScan() |
This is called by the 'open' method.
|
java.lang.String |
getName() |
Returns the name of this table source.
|
java.lang.String |
getSchema() |
Returns the schema name of this table source.
|
TransactionSystem |
getSystem() |
Returns the TransactionSystem for this table.
|
TableName |
getTableName() |
Returns the TableName of this table source.
|
protected void |
loadInternal() |
Loads the internal variables.
|
protected static java.lang.String |
makeTableFileName(TransactionSystem system,
int table_id,
TableName table_name) |
Creates a unique table name to give a file.
|
protected TableDataSource |
minimalTableDataSource(IntegerListInterface master_index) |
Creates a minimal TableDataSource object that represents this
MasterTableDataSource.
|
void |
open(java.lang.String file_name) |
Opens an existing master table from the file system at the path of the
conglomerate this belongs to.
|
void |
scanForLeaks() |
Looks for any leaks in the file.
|
protected void |
setupDataIndexSetDef() |
Sets up the DataIndexSetDef object from the information set in this object.
|
protected void |
setupDataTableDef(DataTableDef table_def) |
Sets up the DataTableDef.
|
protected com.mckoi.database.StoreSystem |
storeSystem() |
Returns the StoreSystem object used to manage stores in the persistence
system.
|
java.lang.String |
toString() |
For diagnostic.
|
protected int table_id
protected boolean is_closed
protected DataTableDef table_def
protected DataIndexSetDef index_def
protected com.mckoi.database.MultiVersionTableIndices table_indices
protected com.mckoi.database.RIDList[] column_rid_list
protected boolean DATA_CELL_CACHING
protected final com.mckoi.database.DataCellCache cache
protected int column_count
protected com.mckoi.database.MasterTableGarbageCollector garbage_collector
protected BlobStoreInterface blob_store_interface
protected java.lang.String root_lock_key
protected java.lang.String total_hits_key
protected java.lang.String file_hits_key
protected java.lang.String delete_hits_key
protected java.lang.String insert_hits_key
public V2MasterTableDataSource(TransactionSystem system, com.mckoi.database.StoreSystem store_system, com.mckoi.database.OpenTransactionList open_transactions, BlobStoreInterface blob_store_interface)
public void open(java.lang.String file_name) throws java.io.IOException
java.io.IOException
public void scanForLeaks() throws java.io.IOException
Assumes the master table is open.
java.io.IOException
public void checkAndRepair(java.lang.String file_name, UserTerminal terminal) throws java.io.IOException
java.io.IOException
public java.lang.String toString()
toString
in class java.lang.Object
public final TransactionSystem getSystem()
public final DebugLogger Debug()
public TableName getTableName()
public java.lang.String getName()
public java.lang.String getSchema()
protected static java.lang.String makeTableFileName(TransactionSystem system, int table_id, TableName table_name)
The 'table_id' is a guarenteed unique number between all tables.
protected TableDataSource minimalTableDataSource(IntegerListInterface master_index)
protected void setupDataIndexSetDef()
protected void setupDataTableDef(DataTableDef table_def)
protected void loadInternal()
protected com.mckoi.database.StoreSystem storeSystem()
protected void doOpeningScan() throws java.io.IOException
java.io.IOException
protected void clearAllRootLocks()
Copyright © 2018. All rights reserved.