Class SchemaFile
- java.lang.Object
-
- org.apache.iotdb.db.metadata.mtree.store.disk.schemafile.SchemaFile
-
- All Implemented Interfaces:
ISchemaFile
public class SchemaFile extends java.lang.Object implements ISchemaFile
This class is mainly aimed to manage space all over the file.This class is meant to open a .pmt(Persistent MTree) file, and maintains the header of the file. It Loads or writes a page length bytes at once, with an 32 bits int to index a page inside a file. Use SlottedFile to manipulate segment(sp) inside a page(an array of bytes).
-
-
Field Summary
Fields Modifier and Type Field Description static intFILE_HEADER_SIZEstatic intINDEX_LENGTHstatic intPAGE_CACHE_SIZEstatic shortPAGE_HEADER_SIZEstatic longPAGE_INDEX_MASKstatic intPAGE_LENGTHstatic intROOT_INDEXstatic java.lang.StringSCHEMA_FOLDERstatic intSEG_INDEX_DIGITstatic longSEG_INDEX_MASKstatic shortSEG_MAX_SIZstatic shortSEG_MIN_SIZstatic shortSEG_OFF_DIGstatic short[]SEG_SIZE_LST
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear()voidclose()voiddelete(IMNode node)IMNodegetChildNode(IMNode parent, java.lang.String childName)java.util.Iterator<IMNode>getChildren(IMNode parent)static longgetGlobalIndex(int pageIndex, short segIndex)static longgetNodeAddress(IMNode node)static intgetPageIndex(long globalIndex)SchemaPagegetPageOnTest(int index)static shortgetSegIndex(long globalIndex)longgetTargetSegmentOnTest(long srcSegAddr, java.lang.String key)IMNodeinit()Get the storage group node, with its segment address of 0.static ISchemaFileinitSchemaFile(java.lang.String sgName, int schemaRegionId)java.lang.Stringinspect()static ISchemaFileloadSchemaFile(java.io.File file)static ISchemaFileloadSchemaFile(java.lang.String sgName, int schemaRegionId)static IMNodesetNodeAddress(IMNode node, long addr)voidsync()booleanupdateStorageGroupNode(IStorageGroupMNode sgNode)Modify header of schema file corresponding to the storage group node synchronouslyvoidwriteMNode(IMNode node)Only storage group node along with its descendents could be flushed into schema file.
-
-
-
Field Detail
-
FILE_HEADER_SIZE
public static int FILE_HEADER_SIZE
-
PAGE_LENGTH
public static int PAGE_LENGTH
-
PAGE_INDEX_MASK
public static long PAGE_INDEX_MASK
-
PAGE_HEADER_SIZE
public static short PAGE_HEADER_SIZE
-
PAGE_CACHE_SIZE
public static int PAGE_CACHE_SIZE
-
ROOT_INDEX
public static int ROOT_INDEX
-
INDEX_LENGTH
public static int INDEX_LENGTH
-
SEG_OFF_DIG
public static short SEG_OFF_DIG
-
SEG_MAX_SIZ
public static short SEG_MAX_SIZ
-
SEG_SIZE_LST
public static short[] SEG_SIZE_LST
-
SEG_MIN_SIZ
public static short SEG_MIN_SIZ
-
SEG_INDEX_DIGIT
public static int SEG_INDEX_DIGIT
-
SEG_INDEX_MASK
public static long SEG_INDEX_MASK
-
SCHEMA_FOLDER
public static java.lang.String SCHEMA_FOLDER
-
-
Method Detail
-
initSchemaFile
public static ISchemaFile initSchemaFile(java.lang.String sgName, int schemaRegionId) throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException
- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
loadSchemaFile
public static ISchemaFile loadSchemaFile(java.lang.String sgName, int schemaRegionId) throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException
- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
loadSchemaFile
public static ISchemaFile loadSchemaFile(java.io.File file) throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException
- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
init
public IMNode init() throws org.apache.iotdb.commons.exception.MetadataException
Description copied from interface:ISchemaFileGet the storage group node, with its segment address of 0.- Specified by:
initin interfaceISchemaFile- Returns:
- node instance, template name as hash code
- Throws:
org.apache.iotdb.commons.exception.MetadataException
-
updateStorageGroupNode
public boolean updateStorageGroupNode(IStorageGroupMNode sgNode) throws java.io.IOException
Description copied from interface:ISchemaFileModify header of schema file corresponding to the storage group node synchronously- Specified by:
updateStorageGroupNodein interfaceISchemaFile- Parameters:
sgNode- node to be updated- Returns:
- true if success
- Throws:
java.io.IOException
-
writeMNode
public void writeMNode(IMNode node) throws org.apache.iotdb.commons.exception.MetadataException, java.io.IOException
Description copied from interface:ISchemaFileOnly storage group node along with its descendents could be flushed into schema file.- Specified by:
writeMNodein interfaceISchemaFile- Throws:
org.apache.iotdb.commons.exception.MetadataExceptionjava.io.IOException
-
delete
public void delete(IMNode node) throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException
- Specified by:
deletein interfaceISchemaFile- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
getChildNode
public IMNode getChildNode(IMNode parent, java.lang.String childName) throws org.apache.iotdb.commons.exception.MetadataException, java.io.IOException
- Specified by:
getChildNodein interfaceISchemaFile- Throws:
org.apache.iotdb.commons.exception.MetadataExceptionjava.io.IOException
-
getChildren
public java.util.Iterator<IMNode> getChildren(IMNode parent) throws org.apache.iotdb.commons.exception.MetadataException, java.io.IOException
- Specified by:
getChildrenin interfaceISchemaFile- Throws:
org.apache.iotdb.commons.exception.MetadataExceptionjava.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfaceISchemaFile- Throws:
java.io.IOException
-
sync
public void sync() throws java.io.IOException- Specified by:
syncin interfaceISchemaFile- Throws:
java.io.IOException
-
clear
public void clear() throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException- Specified by:
clearin interfaceISchemaFile- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
inspect
public java.lang.String inspect() throws org.apache.iotdb.commons.exception.MetadataException, java.io.IOException- Throws:
org.apache.iotdb.commons.exception.MetadataExceptionjava.io.IOException
-
getGlobalIndex
public static long getGlobalIndex(int pageIndex, short segIndex)
-
getPageIndex
public static int getPageIndex(long globalIndex)
-
getSegIndex
public static short getSegIndex(long globalIndex)
-
getNodeAddress
public static long getNodeAddress(IMNode node)
-
getPageOnTest
public SchemaPage getPageOnTest(int index) throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException
- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
getTargetSegmentOnTest
public long getTargetSegmentOnTest(long srcSegAddr, java.lang.String key) throws java.io.IOException, org.apache.iotdb.commons.exception.MetadataException- Throws:
java.io.IOExceptionorg.apache.iotdb.commons.exception.MetadataException
-
-