|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.nhncorp.neptune.tabletserver.Tablet
public class Tablet
commit: ChangeLogMerge를 하면 안됨 scanner opened: Major Compaction, Minor Compaction, Split or Merge 못함. drop, stop은 기다렸다가 close되면 시작 MinorCompaction: MajorCompaction, Split, Merge, ScanOpen 못하고, drop, stop은 기다렸다가 종료되면 시작 MajorCompaction: MinorCompaction, Split, Merge, ScanOpen 못하고, drop, stop은 기다렸다가 종료되면 시작 Split or Merge: Major Compaction, Minor Compaction, drop, stop, ScanOpen 못함. commit은 Split/Merge 작업중 MemTablet에 관련된 작업 진행중에만 못함 drop or stop: all stop
| Field Summary | |
|---|---|
static java.lang.String |
DIR_TEMP_MAJOR
|
static java.lang.String |
DIR_TEMP_MINOR
|
static java.lang.String |
DIR_TEMP_SPLIT
|
static java.lang.String |
DIR_TEMP_UPLOAD
|
static org.apache.commons.logging.Log |
LOG
|
| Constructor Summary | |
|---|---|
Tablet(NConfiguration conf,
TableSchema table,
TabletServer tabletServer,
TabletInfo tabletInfo)
|
|
| Method Summary | |
|---|---|
void |
addColumn(java.lang.String addedColumnName)
|
boolean |
apply(Row.Key rowKey,
TxId txId,
ChangeLog[] changeLogList,
boolean saveLog)
|
void |
closeScanner(java.lang.String scannerId)
open되어 있는 scanner를 close한다. |
void |
commit(TxId txId)
|
void |
commit(TxId txId,
boolean saveLog)
|
void |
commit(TxId txId,
ChangeLog[] changeLogList,
boolean saveLog)
트렌젝션을 종료한다. |
void |
deleteChangeLog()
|
static void |
deleteChangeLog(ChangeLogFileSystemIF changeLogFileSystem,
java.lang.String tableName,
java.lang.String tabletName)
|
boolean |
deleteColumnValue(TxId txId,
java.lang.String columnName,
Cell.Key columnKey,
long timestamp)
특정 Row의 컬럼 값을 삭제한다. |
void |
deleteSplitTempDir()
|
void |
deleteTablet()
|
void |
doMajorCompaction()
하나의 Tablet에서 관리하고 있는 여러개의 MapFile을 merge하여 하나의 MapFile로 만든다. |
void |
doMinorCompaction()
MemoryTablet이 일정 사이즈보다 커지게 되면 Memory의 내용을 Disk의 MapFile로 저장한다. |
void |
doTabletSplit()
|
void |
drop()
|
static Row.Key |
generateMetaRowKey(java.lang.String tableName,
Row.Key rowKey)
|
static java.lang.String |
generateTabletName(java.lang.String tableName)
|
ColumnValue[][] |
get(Row.Key rowKey)
특정 Row의 모든 컬럼의 데이터를 조회한다. |
ColumnValue[] |
get(Row.Key rowKey,
java.lang.String columnName)
데이터를 조회한다. !!! |
ColumnValue[][] |
get(Row.Key rowKey,
java.lang.String[] columnNames)
특정 Row의 지정된 컬럼들의 데이터를 조회한다. |
ColumnValue |
get(Row.Key rowKey,
java.lang.String columnName,
Cell.Key cellKey)
데이터를 조회한다. |
RowColumnValues[] |
get(RowFilter filter)
|
ActionChecker |
getActionChecker()
|
java.lang.String[] |
getAllActions()
|
ColumnValue |
getClosest(Row.Key rowKey,
java.lang.String columnName)
입력받은 rowKey와 가장 가까운 Row.Key중 가장 큰 Row.Key를 가지는 row의 값을 조회한다. |
NConfiguration |
getConf()
|
DiskSSTableIF |
getDiskSSTable()
|
Row.Key[] |
getLockedRowKey()
|
int |
getMapFileCount()
|
MemorySSTableIF |
getMemorySSTable()
|
int |
getMemtableSize()
MemTablet의 현재 메모리 사이즈를 반환한다. |
int |
getOpenedScannerCount()
|
static TabletInfo |
getRootTabletInfo(com.nhncorp.pleiades.client.LockService lockService)
|
Row.Key[] |
getSplitedRowKeyRanges(int splitPerTablet)
|
TableSchema |
getTable()
|
static java.lang.String |
getTableNameFromTabletName(java.lang.String tabletName)
|
TabletReport |
getTabletDetailInfo()
|
TabletInfo |
getTabletInfo()
|
static GPath |
getTabletLocalTempPath(NConfiguration conf,
TabletInfo tabletInfo,
java.lang.String actionId)
|
static GPath |
getTabletMajorCompactionTempPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
|
static GPath |
getTabletMajorCompactionTempPath(NConfiguration conf,
TabletInfo tabletInfo)
|
static GPath |
getTabletMinorCompactionTempPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
|
static GPath |
getTabletMinorCompactionTempPath(NConfiguration conf,
TabletInfo tabletInfo)
|
static GPath |
getTabletPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
|
static GPath |
getTabletPath(NConfiguration conf,
TabletInfo tabletInfo)
|
TabletServerIF |
getTabletServer()
|
static GPath |
getTabletSplitTempPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
|
static GPath |
getTabletSplitTempPath(NConfiguration conf,
TabletInfo tabletInfo)
|
static GPath |
getTabletUploadTempPath(NConfiguration conf,
TabletInfo tabletInfo,
java.lang.String actionId)
|
boolean |
hasValue(java.lang.String columnName,
Row.Key rowKey)
|
void |
insertColumnValue(TxId txId,
java.lang.String columnName,
ColumnValue[] columnValues)
특정 row에 컬럼 데이터를 저장한다. |
boolean |
isDroped()
|
boolean |
isEmpty()
|
boolean |
isReady()
|
boolean |
load()
Tablet이 TabletServer에 할당되면 MapFile의 index 파일을 읽어 index를 구성하고 ChangeLog 파일을 읽어 MemoryTablet을 구성한다. |
boolean |
neededMajorCompaction()
|
boolean |
neededSplit()
|
java.lang.String |
openScanner(java.lang.String columnName,
RowFilter scanFilter)
get의 경우 호출될 때마다 매번 MapFile을 open한 후 seek 해야 하기 때문에 대량의 데이터를 sequential하게 read하는데에는 부적합하다. |
void |
print()
|
void |
removeRow(TxId txId,
long timestamp)
|
Row.Key |
rollback(TxId txId)
트렌젝션을 취소시킨다. |
void |
saveTabletSplitedInfo(TxId txId,
TabletInfo targetTablet,
TabletInfo[] splitedTablets)
META/ROOT tablet에 split된 tablet 정보를 저장한다. 3개의 작업(1 delete, 2 insert)이 하나의 change log에 저장되도록한다. |
ColumnValue[] |
scanNext(java.lang.String scannerId)
Client API에서는 ColumnRecord 하나만 반환하도록 하지만 네트워크 연결 횟수를 줄이기 위해 한번에 fetch하는 사이즈 만큼 전송한다. |
void |
setDiskSSTable(DiskSSTableIF diskSSTable)
|
void |
setInChangeLogError(boolean flag)
|
void |
setReady(boolean ready)
|
TxId |
startTx(Row.Key rowKey)
Row를 생성하거나 Row의 값을 변경하는 트렌젝션을 시작한다.timestamp의 값은 system 시간을 이용한다. |
TxId |
startTx(Row.Key rowKey,
boolean systemTimestamp)
|
long |
sumMapFileSize()
|
void |
truncateColumn(java.lang.String columnName)
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String DIR_TEMP_SPLIT
public static final java.lang.String DIR_TEMP_MINOR
public static final java.lang.String DIR_TEMP_MAJOR
public static final java.lang.String DIR_TEMP_UPLOAD
public static final org.apache.commons.logging.Log LOG
| Constructor Detail |
|---|
public Tablet(NConfiguration conf,
TableSchema table,
TabletServer tabletServer,
TabletInfo tabletInfo)
throws java.io.IOException
java.io.IOException| Method Detail |
|---|
public TableSchema getTable()
public NConfiguration getConf()
public void setDiskSSTable(DiskSSTableIF diskSSTable)
public void print()
throws java.io.IOException
java.io.IOException
public Row.Key[] getLockedRowKey()
throws java.io.IOException
java.io.IOException
public boolean load()
throws java.io.IOException
java.io.IOException
public ColumnValue get(Row.Key rowKey,
java.lang.String columnName,
Cell.Key cellKey)
throws java.io.IOException
rowKey - columnName - columnKey -
java.io.IOException
public RowColumnValues[] get(RowFilter filter)
throws java.io.IOException
java.io.IOException
public ColumnValue[] get(Row.Key rowKey,
java.lang.String columnName)
throws java.io.IOException
rowKey - columnName -
java.io.IOException
public ColumnValue[][] get(Row.Key rowKey,
java.lang.String[] columnNames)
throws java.io.IOException
rowKey - columnNames -
java.io.IOException
public ColumnValue[][] get(Row.Key rowKey)
throws java.io.IOException
rowKey -
java.io.IOException
public ColumnValue getClosest(Row.Key rowKey,
java.lang.String columnName)
throws java.io.IOException
rowKey - columnNames -
java.io.IOExceptionpublic int getMemtableSize()
public TxId startTx(Row.Key rowKey)
throws java.io.IOException
rowKey -
java.io.IOException
public TxId startTx(Row.Key rowKey,
boolean systemTimestamp)
throws java.io.IOException
rowKey - systemTimestamp -
java.io.IOException
public void removeRow(TxId txId,
long timestamp)
throws java.io.IOException
java.io.IOException
public void insertColumnValue(TxId txId,
java.lang.String columnName,
ColumnValue[] columnValues)
throws java.io.IOException
txId - columnName - columnValues -
java.io.IOException
public boolean deleteColumnValue(TxId txId,
java.lang.String columnName,
Cell.Key columnKey,
long timestamp)
throws java.io.IOException
txId - columnName - columnKey - timestamp -
java.io.IOException
public Row.Key rollback(TxId txId)
throws java.io.IOException
txId -
java.io.IOException
public void commit(TxId txId)
throws java.io.IOException
java.io.IOException
public void commit(TxId txId,
boolean saveLog)
throws java.io.IOException
java.io.IOException
public void commit(TxId txId,
ChangeLog[] changeLogList,
boolean saveLog)
throws java.io.IOException
txId -
java.io.IOException
public boolean apply(Row.Key rowKey,
TxId txId,
ChangeLog[] changeLogList,
boolean saveLog)
throws java.io.IOException
java.io.IOExceptionpublic void setInChangeLogError(boolean flag)
public void saveTabletSplitedInfo(TxId txId,
TabletInfo targetTablet,
TabletInfo[] splitedTablets)
throws java.io.IOException
txId - splitedTablets -
java.io.IOException
public void doMinorCompaction()
throws java.io.IOException
java.io.IOExceptionpublic boolean neededMajorCompaction()
public boolean isDroped()
public void drop()
throws java.io.IOException
java.io.IOException
public void doMajorCompaction()
throws java.io.IOException
java.io.IOException
public void doTabletSplit()
throws java.io.IOException
java.io.IOException
public boolean neededSplit()
throws java.io.IOException
java.io.IOExceptionpublic int getMapFileCount()
public long sumMapFileSize()
throws java.io.IOException
java.io.IOException
public ColumnValue[] scanNext(java.lang.String scannerId)
throws java.io.IOException
scannerId -
java.io.IOException
public java.lang.String openScanner(java.lang.String columnName,
RowFilter scanFilter)
throws java.io.IOException
startRowKey - endRowKey - columnNames -
java.io.IOException
public void closeScanner(java.lang.String scannerId)
throws java.io.IOException
scannerId -
java.io.IOExceptionpublic TabletInfo getTabletInfo()
public int getOpenedScannerCount()
public TabletReport getTabletDetailInfo()
throws java.io.IOException
java.io.IOException
public void deleteTablet()
throws java.io.IOException
java.io.IOException
public void deleteChangeLog()
throws java.io.IOException
java.io.IOException
public static void deleteChangeLog(ChangeLogFileSystemIF changeLogFileSystem,
java.lang.String tableName,
java.lang.String tabletName)
throws java.io.IOException
java.io.IOExceptionpublic void setReady(boolean ready)
public boolean isReady()
public void deleteSplitTempDir()
throws java.io.IOException
java.io.IOException
public void truncateColumn(java.lang.String columnName)
throws java.io.IOException
java.io.IOException
public void addColumn(java.lang.String addedColumnName)
throws java.io.IOException
java.io.IOExceptionpublic DiskSSTableIF getDiskSSTable()
public MemorySSTableIF getMemorySSTable()
public ActionChecker getActionChecker()
public java.lang.String[] getAllActions()
public boolean isEmpty()
public boolean hasValue(java.lang.String columnName,
Row.Key rowKey)
throws java.io.IOException
java.io.IOException
public static Row.Key generateMetaRowKey(java.lang.String tableName,
Row.Key rowKey)
public static TabletInfo getRootTabletInfo(com.nhncorp.pleiades.client.LockService lockService)
throws java.io.IOException
java.io.IOException
public static GPath getTabletPath(NConfiguration conf,
TabletInfo tabletInfo)
public static GPath getTabletPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
public static java.lang.String generateTabletName(java.lang.String tableName)
public static GPath getTabletSplitTempPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
public static GPath getTabletSplitTempPath(NConfiguration conf,
TabletInfo tabletInfo)
public static GPath getTabletMajorCompactionTempPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
public static GPath getTabletMajorCompactionTempPath(NConfiguration conf,
TabletInfo tabletInfo)
public static GPath getTabletMinorCompactionTempPath(NConfiguration conf,
java.lang.String tableName,
java.lang.String tabletName)
public static GPath getTabletMinorCompactionTempPath(NConfiguration conf,
TabletInfo tabletInfo)
public static GPath getTabletLocalTempPath(NConfiguration conf,
TabletInfo tabletInfo,
java.lang.String actionId)
public static GPath getTabletUploadTempPath(NConfiguration conf,
TabletInfo tabletInfo,
java.lang.String actionId)
public static java.lang.String getTableNameFromTabletName(java.lang.String tabletName)
public TabletServerIF getTabletServer()
public Row.Key[] getSplitedRowKeyRanges(int splitPerTablet)
throws java.io.IOException
java.io.IOException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||