@InterfaceAudience.Private public class MobUtils extends java.lang.Object
Constructor and Description |
---|
MobUtils() |
Modifier and Type | Method and Description |
---|---|
static void |
archiveMobStoreFiles(Configuration conf,
FileSystem fs,
HRegionInfo mobRegionInfo,
Path mobFamilyDir,
byte[] family)
Archive mob store files
|
static void |
cleanExpiredMobFiles(FileSystem fs,
Configuration conf,
TableName tableName,
HColumnDescriptor columnDescriptor,
CacheConfig cacheConfig,
long current)
Cleans the expired mob files.
|
static Path |
commitFile(Configuration conf,
FileSystem fs,
Path sourceFile,
Path targetPath,
CacheConfig cacheConfig)
Commits the mob file.
|
static StoreFile.Writer |
createDelFileWriter(Configuration conf,
FileSystem fs,
HColumnDescriptor family,
java.lang.String date,
Path basePath,
long maxKeyCount,
Compression.Algorithm compression,
byte[] startKey,
CacheConfig cacheConfig,
Encryption.Context cryptoContext)
Creates a writer for the del file in temp directory.
|
static Encryption.Context |
createEncryptionContext(Configuration conf,
HColumnDescriptor family)
Creates the encyption context.
|
static java.util.concurrent.ExecutorService |
createMobCompactorThreadPool(Configuration conf)
Creates a thread pool.
|
static Cell |
createMobRefCell(Cell cell,
byte[] fileName,
java.util.List<Tag> refCellTags) |
static Cell |
createMobRefCell(Cell cell,
byte[] fileName,
Tag tableNameTag)
Creates a mob reference KeyValue.
|
static Cell |
createMobRefDeleteMarker(Cell cell)
Creates a mob ref delete marker.
|
static StoreFile.Writer |
createRefFileWriter(Configuration conf,
FileSystem fs,
HColumnDescriptor family,
Path basePath,
long maxKeyCount,
CacheConfig cacheConfig,
Encryption.Context cryptoContext)
Creates a writer for the ref file in temp directory.
|
static StoreFile.Writer |
createWriter(Configuration conf,
FileSystem fs,
HColumnDescriptor family,
java.lang.String date,
Path basePath,
long maxKeyCount,
Compression.Algorithm compression,
byte[] startKey,
CacheConfig cacheConfig,
Encryption.Context cryptoContext)
Creates a writer for the mob file in temp directory.
|
static StoreFile.Writer |
createWriter(Configuration conf,
FileSystem fs,
HColumnDescriptor family,
java.lang.String date,
Path basePath,
long maxKeyCount,
Compression.Algorithm compression,
java.lang.String startKey,
CacheConfig cacheConfig,
Encryption.Context cryptoContext)
Creates a writer for the mob file in temp directory.
|
static void |
doMobCompaction(Configuration conf,
FileSystem fs,
TableName tableName,
HColumnDescriptor hcd,
java.util.concurrent.ExecutorService pool,
TableLockManager tableLockManager,
boolean allFiles)
Performs the mob compaction.
|
static java.lang.String |
formatDate(java.util.Date date)
Formats a date to a string.
|
static Path |
getCompactionWorkingPath(Path root,
java.lang.String jobName)
Gets the working directory of the mob compaction.
|
static Path |
getMobFamilyPath(Configuration conf,
TableName tableName,
java.lang.String familyName)
Gets the family dir of the mob files.
|
static Path |
getMobFamilyPath(Path regionPath,
java.lang.String familyName)
Gets the family dir of the mob files.
|
static java.lang.String |
getMobFileName(Cell cell)
Gets the mob file name from the mob ref cell.
|
static Path |
getMobHome(Configuration conf)
Gets the root dir of the mob files.
|
static HRegionInfo |
getMobRegionInfo(TableName tableName)
Gets the HRegionInfo of the mob files.
|
static Path |
getMobRegionPath(Configuration conf,
TableName tableName)
Gets the region dir of the mob files.
|
static int |
getMobValueLength(Cell cell)
Gets the mob value length from the mob ref cell.
|
static Path |
getQualifiedMobRootDir(Configuration conf)
Gets the qualified root dir of the mob files.
|
static TableName |
getTableLockName(TableName tn)
Gets the table name used in the table lock.
|
static Tag |
getTableNameTag(Cell cell)
Gets the table name tag.
|
static boolean |
hasMobColumns(HTableDescriptor htd)
Checks whether this table has mob-enabled columns.
|
static boolean |
hasMobReferenceTag(java.util.List<Tag> tags)
Whether the tag list has a mob reference tag.
|
static boolean |
hasValidMobRefCellValue(Cell cell)
Indicates whether the current mob ref cell has a valid value.
|
static boolean |
isCacheMobBlocks(Scan scan)
Indicates whether the scan contains the information of caching blocks.
|
static boolean |
isMobFileExpired(HColumnDescriptor column,
long current,
java.lang.String fileDate)
Checks if the mob file is expired.
|
static boolean |
isMobReferenceCell(Cell cell)
Whether the current cell is a mob reference cell.
|
static boolean |
isMobRegionInfo(HRegionInfo regionInfo)
Gets whether the current HRegionInfo is a mob one.
|
static boolean |
isMobRegionName(TableName tableName,
byte[] regionName)
Gets whether the current region name follows the pattern of a mob region name.
|
static boolean |
isRawMobScan(Scan scan)
Indicates whether it's a raw scan.
|
static boolean |
isReadEmptyValueOnMobCellMiss(Scan scan)
Indicates whether return null value when the mob file is missing or corrupt.
|
static boolean |
isRefOnlyScan(Scan scan)
Indicates whether it's a reference only scan.
|
static java.util.Date |
parseDate(java.lang.String dateString)
Parses the string to a date.
|
static void |
removeMobFiles(Configuration conf,
FileSystem fs,
TableName tableName,
Path tableDir,
byte[] family,
java.util.Collection<StoreFile> storeFiles)
Archives the mob files.
|
static void |
setCacheMobBlocks(Scan scan,
boolean cacheBlocks)
Sets the attribute of caching blocks in the scan.
|
public static java.lang.String formatDate(java.util.Date date)
date
- The date.public static java.util.Date parseDate(java.lang.String dateString) throws java.text.ParseException
dateString
- The string format of a date, it's yyyymmdd.java.text.ParseException
public static boolean isMobReferenceCell(Cell cell)
cell
- The current cell.public static Tag getTableNameTag(Cell cell)
cell
- The current cell.public static boolean hasMobReferenceTag(java.util.List<Tag> tags)
tags
- The tag list.public static boolean isRawMobScan(Scan scan)
scan
- The current scan.public static boolean isRefOnlyScan(Scan scan)
scan
- The current scan.public static boolean isCacheMobBlocks(Scan scan)
scan
- The current scan.public static void setCacheMobBlocks(Scan scan, boolean cacheBlocks)
scan
- The current scan.cacheBlocks
- True, set the attribute of caching blocks into the scan, the scanner with this scan
caches blocks.
False, the scanner doesn't cache blocks for this scan.public static void cleanExpiredMobFiles(FileSystem fs, Configuration conf, TableName tableName, HColumnDescriptor columnDescriptor, CacheConfig cacheConfig, long current) throws java.io.IOException
fs
- The current file system.conf
- The current configuration.tableName
- The current table name.columnDescriptor
- The descriptor of the current column family.cacheConfig
- The cacheConfig that disables the block cache.current
- The current time.java.io.IOException
public static Path getMobHome(Configuration conf)
conf
- The current configuration.public static Path getQualifiedMobRootDir(Configuration conf) throws java.io.IOException
conf
- The current configuration.java.io.IOException
public static Path getMobRegionPath(Configuration conf, TableName tableName)
conf
- The current configuration.tableName
- The current table name.public static Path getMobFamilyPath(Configuration conf, TableName tableName, java.lang.String familyName)
conf
- The current configuration.tableName
- The current table name.familyName
- The current family name.public static Path getMobFamilyPath(Path regionPath, java.lang.String familyName)
regionPath
- The path of mob region which is a dummy one.familyName
- The current family name.public static HRegionInfo getMobRegionInfo(TableName tableName)
tableName
- public static boolean isMobRegionInfo(HRegionInfo regionInfo)
regionInfo
- The current HRegionInfo.public static boolean isMobRegionName(TableName tableName, byte[] regionName)
tableName
- The current table name.regionName
- The current region name.public static Path getCompactionWorkingPath(Path root, java.lang.String jobName)
root
- The root directory of the mob compaction.jobName
- The current job name.public static void removeMobFiles(Configuration conf, FileSystem fs, TableName tableName, Path tableDir, byte[] family, java.util.Collection<StoreFile> storeFiles) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.tableName
- The table name.tableDir
- The table directory.family
- The name of the column family.storeFiles
- The files to be deleted.java.io.IOException
public static Cell createMobRefCell(Cell cell, byte[] fileName, Tag tableNameTag)
cell
- The original Cell.fileName
- The mob file name where the mob reference KeyValue is written.tableNameTag
- The tag of the current table name. It's very important in
cloning the snapshot.public static Cell createMobRefCell(Cell cell, byte[] fileName, java.util.List<Tag> refCellTags)
public static StoreFile.Writer createWriter(Configuration conf, FileSystem fs, HColumnDescriptor family, java.lang.String date, Path basePath, long maxKeyCount, Compression.Algorithm compression, java.lang.String startKey, CacheConfig cacheConfig, Encryption.Context cryptoContext) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.family
- The descriptor of the current column family.date
- The date string, its format is yyyymmmdd.basePath
- The basic path for a temp directory.maxKeyCount
- The key count.compression
- The compression algorithm.startKey
- The hex string of the start key.cacheConfig
- The current cache config.cryptoContext
- The encryption context.java.io.IOException
public static StoreFile.Writer createRefFileWriter(Configuration conf, FileSystem fs, HColumnDescriptor family, Path basePath, long maxKeyCount, CacheConfig cacheConfig, Encryption.Context cryptoContext) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.family
- The descriptor of the current column family.basePath
- The basic path for a temp directory.maxKeyCount
- The key count.cacheConfig
- The current cache config.cryptoContext
- The encryption context.java.io.IOException
public static StoreFile.Writer createWriter(Configuration conf, FileSystem fs, HColumnDescriptor family, java.lang.String date, Path basePath, long maxKeyCount, Compression.Algorithm compression, byte[] startKey, CacheConfig cacheConfig, Encryption.Context cryptoContext) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.family
- The descriptor of the current column family.date
- The date string, its format is yyyymmmdd.basePath
- The basic path for a temp directory.maxKeyCount
- The key count.compression
- The compression algorithm.startKey
- The start key.cacheConfig
- The current cache config.cryptoContext
- The encryption context.java.io.IOException
public static StoreFile.Writer createDelFileWriter(Configuration conf, FileSystem fs, HColumnDescriptor family, java.lang.String date, Path basePath, long maxKeyCount, Compression.Algorithm compression, byte[] startKey, CacheConfig cacheConfig, Encryption.Context cryptoContext) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.family
- The descriptor of the current column family.date
- The date string, its format is yyyymmmdd.basePath
- The basic path for a temp directory.maxKeyCount
- The key count.compression
- The compression algorithm.startKey
- The start key.cacheConfig
- The current cache config.cryptoContext
- The encryption context.java.io.IOException
public static Path commitFile(Configuration conf, FileSystem fs, Path sourceFile, Path targetPath, CacheConfig cacheConfig) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.sourceFile
- The path where the mob file is saved.targetPath
- The directory path where the source file is renamed to.cacheConfig
- The current cache config.java.io.IOException
public static boolean hasValidMobRefCellValue(Cell cell)
cell
- The mob ref cell.public static int getMobValueLength(Cell cell)
cell
- The mob ref cell.public static java.lang.String getMobFileName(Cell cell)
cell
- The mob ref cell.public static TableName getTableLockName(TableName tn)
tn
- The table name.public static void doMobCompaction(Configuration conf, FileSystem fs, TableName tableName, HColumnDescriptor hcd, java.util.concurrent.ExecutorService pool, TableLockManager tableLockManager, boolean allFiles) throws java.io.IOException
conf
- the Configurationfs
- the file systemtableName
- the table the compacthcd
- the column descriptorpool
- the thread pooltableLockManager
- the tableLock managerallFiles
- Whether add all mob files into the compaction.java.io.IOException
public static java.util.concurrent.ExecutorService createMobCompactorThreadPool(Configuration conf)
conf
- the Configurationpublic static Encryption.Context createEncryptionContext(Configuration conf, HColumnDescriptor family) throws java.io.IOException
conf
- The current configuration.family
- The current column descriptor.java.io.IOException
public static boolean hasMobColumns(HTableDescriptor htd)
htd
- The current table descriptor.public static boolean isReadEmptyValueOnMobCellMiss(Scan scan)
scan
- The current scan.public static void archiveMobStoreFiles(Configuration conf, FileSystem fs, HRegionInfo mobRegionInfo, Path mobFamilyDir, byte[] family) throws java.io.IOException
conf
- The current configuration.fs
- The current file system.mobRegionInfo
- The mob family region info.mobFamilyDir
- The mob family directory.family
- The name of the column family.java.io.IOException
public static Cell createMobRefDeleteMarker(Cell cell)
cell
- The current delete marker.public static boolean isMobFileExpired(HColumnDescriptor column, long current, java.lang.String fileDate)
column
- The descriptor of the current column family.current
- The current time.fileDate
- The date string parsed from the mob file name.