com.nhncorp.neptune.tabletserver
Interface DataServiceProtocol

All Superinterfaces:
NVersionedProtocol
All Known Subinterfaces:
TabletServerIF
All Known Implementing Classes:
TabletServer

public interface DataServiceProtocol
extends NVersionedProtocol


Field Summary
static long versionID
           
 
Method Summary
 boolean apply(java.lang.String tabletName, Row.Key rowKey, TxId txId, ChangeLog[] changeLogList, boolean saveLog)
           
 boolean canUpload()
           
 void commit(TxId id)
           
 void commit(TxId id, boolean saveLog)
           
 void commit(TxId id, ChangeLog[] changeLogList, boolean saveLog)
           
 void deleteColumnValue(TxId txId, java.lang.String columnName, Cell.Key columnKey)
           
 java.lang.String endBatchUploader(java.lang.String actionId, java.lang.String tabletName, java.lang.String[] columnNames, java.lang.String[] mapFileIds, java.lang.String[] mapFilePaths)
           
 boolean existsTxId(TxId txId)
           
 ColumnValue[][] get(java.lang.String tabletName, Row.Key rowKey)
           
 ColumnValue[][] get(java.lang.String tabletName, Row.Key rowKey, java.lang.String[] columnNames)
           
 ColumnValue get(java.lang.String tabletName, Row.Key rowKey, java.lang.String columnName, Cell.Key columnKey)
           
 RowColumnValues[] get(java.lang.String tabletName, RowFilter scanFilter)
           
 java.lang.String[] getAllActions(java.lang.String tabletName)
           
 ColumnValue[] getAllMemoryValues(java.lang.String tabletName, java.lang.String columnName)
          ROOT, META 테이블 검증용으로 사용된다.
 AsyncTaskStatus getAsyncTaskStatus(java.lang.String taskId)
           
 ColumnValue getCloestMetaData(java.lang.String tabletName, Row.Key rowKey)
          해당 rowkey보다 작은 레코드 중 가장 큰 레코드를 조회한다.
 Row.Key[] getSplitedRowKeyRanges(java.lang.String tabletName, int splitPerTablet)
          TabletInputFormat에서 사용하는 메소드로 Tablet의 rowkey 목록에서 splitPerTablet 갯수만큼 범위를 나누어 각 범위의 마지막 rowkey 값을 반환한다. map 갯수 만큼 input 영역을 나누기 위해서 사용한다.
 TabletReport getTabletDetailInfo(java.lang.String tabletName)
           
 TabletInfo getTabletInfo(java.lang.String tabletName)
           
 java.lang.String getTabletServerConf(java.lang.String key)
           
 boolean hasValue(java.lang.String tabletName, java.lang.String columnName, Row.Key rowKey)
          Tablet에 rowKey 값이 존재하는 지 반환한다.
 void insertColumnValue(TxId txId, java.lang.String[] columnNames, ColumnValue[][] columnValues)
           
 void insertColumnValue(TxId txId, java.lang.String columnName, ColumnValue[] records)
          생성된 Row에 컬럼값을 추가한다.
 void insertRow(java.lang.String tabletName, Row.Key rowKey, java.lang.String[] columnNames, ColumnValue[][] columnValues)
          하나의 row 전체 데이터를 입력한다.
 boolean isServicedTablet(java.lang.String tabletName)
          TabletServer가 특정 tablet에 대해 DataServer를 하고 있는지 여부를 반환한다.
 void printMeta(java.lang.String tabletName)
           
 void removeRow(TxId txId, long timestamp)
           
 Row.Key rollback(TxId txId)
           
 void saveTabletSplitedInfo(java.lang.String tabletName, TabletInfo targetTablet, TabletInfo[] splitedTablets)
           
 java.lang.String startBatchUploader(java.lang.String tabletName)
           
 TxId startTx(java.lang.String tabletName, Row.Key rowKey)
          Row에 트렌젝션을 시작한다.
 TxId startTx(java.lang.String tabletName, Row.Key rowKey, boolean systemTimestamp)
          Row에 트렌젝션을 시작한다.
 void stopAction(java.lang.String tableName, java.lang.String tabletActionClassName)
           
 java.lang.String test(long sleepTime, java.lang.String echo)
           
 ColumnValue[][] testRPC()
           
 void touch(java.lang.String leaseId)
          Client API에서 강제적으로 TabletServer에 있는 lease 항목을 touch 한다.
 void updateColumnValue(TxId txId, java.lang.String columnName, ColumnValue[] records)
           
 void updateOrInsertColumnValue(TxId txId, java.lang.String columnName, ColumnValue[] records)
           
 
Methods inherited from interface com.nhncorp.neptune.common.ipc.NVersionedProtocol
getProtocolVersion
 

Field Detail

versionID

static final long versionID
See Also:
Constant Field Values
Method Detail

getTabletInfo

TabletInfo getTabletInfo(java.lang.String tabletName)
Parameters:
tabletName -
Returns:

isServicedTablet

boolean isServicedTablet(java.lang.String tabletName)
TabletServer가 특정 tablet에 대해 DataServer를 하고 있는지 여부를 반환한다.

Parameters:
tabletName -
Returns:

startTx

TxId startTx(java.lang.String tabletName,
             Row.Key rowKey)
             throws java.io.IOException
Row에 트렌젝션을 시작한다. 반환된 TxId는 생성된 row에 column 값을 추가하거나 commit시 사용된다. row의 데이터를 저장하기 위해서는 반드시 commit이 호출되어야 한다. commit 호출이 되기전에는 다른 session에서는 생성된 row에 대한 데이터가 조회되지 않는다.

Parameters:
tabletName - 추가할 row를 서비스하고 있는 tablet명
rowKey - 생성하는 row의 key
Returns:
Throws:
java.io.IOException

startTx

TxId startTx(java.lang.String tabletName,
             Row.Key rowKey,
             boolean systemTimestamp)
             throws java.io.IOException
Row에 트렌젝션을 시작한다. 반환된 TxId는 생성된 row에 column 값을 추가하거나 commit시 사용된다. row의 데이터를 저장하기 위해서는 반드시 commit이 호출되어야 한다. commit 호출이 되기전에는 다른 session에서는 생성된 row에 대한 데이터가 조회되지 않는다.

Parameters:
tabletName -
rowKey -
systemTimestamp -
Returns:
Throws:
java.io.IOException

insertColumnValue

void insertColumnValue(TxId txId,
                       java.lang.String columnName,
                       ColumnValue[] records)
                       throws java.io.IOException
생성된 Row에 컬럼값을 추가한다.

Parameters:
id -
columnName -
records -
Throws:
java.io.IOException

insertColumnValue

void insertColumnValue(TxId txId,
                       java.lang.String[] columnNames,
                       ColumnValue[][] columnValues)
                       throws java.io.IOException
Throws:
java.io.IOException

insertRow

void insertRow(java.lang.String tabletName,
               Row.Key rowKey,
               java.lang.String[] columnNames,
               ColumnValue[][] columnValues)
               throws java.io.IOException
하나의 row 전체 데이터를 입력한다. startTx, insertColumnValue, commit 처리를 한번에 수행, 많은 양의 데이터를 입력할 때 사용

Parameters:
tabletName -
rowKey -
columnNames -
columnValues -
Throws:
java.io.IOException

deleteColumnValue

void deleteColumnValue(TxId txId,
                       java.lang.String columnName,
                       Cell.Key columnKey)
                       throws java.io.IOException
Parameters:
id -
columnName -
columnKey -
Throws:
java.io.IOException

updateColumnValue

void updateColumnValue(TxId txId,
                       java.lang.String columnName,
                       ColumnValue[] records)
                       throws java.io.IOException
Parameters:
txId -
columnName -
records -
Throws:
java.io.IOException

updateOrInsertColumnValue

void updateOrInsertColumnValue(TxId txId,
                               java.lang.String columnName,
                               ColumnValue[] records)
                               throws java.io.IOException
Throws:
java.io.IOException

removeRow

void removeRow(TxId txId,
               long timestamp)
               throws java.io.IOException
Parameters:
tabletName -
rowKey -
Throws:
java.io.IOException

commit

void commit(TxId id)
            throws java.io.IOException
Parameters:
id -
Throws:
java.io.IOException

commit

void commit(TxId id,
            boolean saveLog)
            throws java.io.IOException
Parameters:
id -
Throws:
java.io.IOException

commit

void commit(TxId id,
            ChangeLog[] changeLogList,
            boolean saveLog)
            throws java.io.IOException
Throws:
java.io.IOException

apply

boolean apply(java.lang.String tabletName,
              Row.Key rowKey,
              TxId txId,
              ChangeLog[] changeLogList,
              boolean saveLog)
              throws java.io.IOException
Throws:
java.io.IOException

get

ColumnValue get(java.lang.String tabletName,
                Row.Key rowKey,
                java.lang.String columnName,
                Cell.Key columnKey)
                throws java.io.IOException
Parameters:
tabletName -
rowKey -
columnName -
columnKey -
Returns:
Throws:
java.io.IOException

get

ColumnValue[][] get(java.lang.String tabletName,
                    Row.Key rowKey)
                    throws java.io.IOException
Parameters:
tabletName -
rowKey -
Returns:
Throws:
java.io.IOException

get

ColumnValue[][] get(java.lang.String tabletName,
                    Row.Key rowKey,
                    java.lang.String[] columnNames)
                    throws java.io.IOException
Parameters:
tabletName -
rowKey -
columnNames -
Returns:
Throws:
java.io.IOException

getCloestMetaData

ColumnValue getCloestMetaData(java.lang.String tabletName,
                              Row.Key rowKey)
                              throws java.io.IOException
해당 rowkey보다 작은 레코드 중 가장 큰 레코드를 조회한다. 주로 meta tablet에서 특정 rowkey를 서비스하고 있는 사용자 tablet에 대한 정보를 조회할 때 사용한다.

Parameters:
tabletName -
rowKey -
columnNames -
Returns:
Throws:
java.io.IOException

rollback

Row.Key rollback(TxId txId)
                 throws java.io.IOException
Parameters:
txId -
Throws:
java.io.IOException

getAllActions

java.lang.String[] getAllActions(java.lang.String tabletName)
                                 throws java.io.IOException
Parameters:
tabletName -
Returns:
Throws:
java.io.IOException

getTabletServerConf

java.lang.String getTabletServerConf(java.lang.String key)
                                     throws java.io.IOException
Throws:
java.io.IOException

test

java.lang.String test(long sleepTime,
                      java.lang.String echo)
                      throws java.io.IOException
Throws:
java.io.IOException

saveTabletSplitedInfo

void saveTabletSplitedInfo(java.lang.String tabletName,
                           TabletInfo targetTablet,
                           TabletInfo[] splitedTablets)
                           throws java.io.IOException
Throws:
java.io.IOException

printMeta

void printMeta(java.lang.String tabletName)
               throws java.io.IOException
Throws:
java.io.IOException

stopAction

void stopAction(java.lang.String tableName,
                java.lang.String tabletActionClassName)
                throws java.io.IOException
Throws:
java.io.IOException

getTabletDetailInfo

TabletReport getTabletDetailInfo(java.lang.String tabletName)
                                 throws java.io.IOException
Throws:
java.io.IOException

canUpload

boolean canUpload()
                  throws java.io.IOException
Throws:
java.io.IOException

get

RowColumnValues[] get(java.lang.String tabletName,
                      RowFilter scanFilter)
                      throws java.io.IOException
Throws:
java.io.IOException

startBatchUploader

java.lang.String startBatchUploader(java.lang.String tabletName)
                                    throws java.io.IOException
Throws:
java.io.IOException

getAsyncTaskStatus

AsyncTaskStatus getAsyncTaskStatus(java.lang.String taskId)
                                   throws java.io.IOException
Throws:
java.io.IOException

endBatchUploader

java.lang.String endBatchUploader(java.lang.String actionId,
                                  java.lang.String tabletName,
                                  java.lang.String[] columnNames,
                                  java.lang.String[] mapFileIds,
                                  java.lang.String[] mapFilePaths)
                                  throws java.io.IOException
Throws:
java.io.IOException

existsTxId

boolean existsTxId(TxId txId)
                   throws java.io.IOException
Throws:
java.io.IOException

touch

void touch(java.lang.String leaseId)
           throws java.io.IOException
Client API에서 강제적으로 TabletServer에 있는 lease 항목을 touch 한다. 주로 Scanner에서 scanner가 close 되기 전까지 open 되도록 하는데 사용

Parameters:
leaseId -
Throws:
java.io.IOException

testRPC

ColumnValue[][] testRPC()

getAllMemoryValues

ColumnValue[] getAllMemoryValues(java.lang.String tabletName,
                                 java.lang.String columnName)
                                 throws java.io.IOException
ROOT, META 테이블 검증용으로 사용된다. 해당 메소드가 호출되는 경우에는 Split 등의 작업이 lock이 걸리기 때문에 메모리의 값에 대한 변경이 거의 없다.

Parameters:
tabletName -
columnName -
Returns:
Throws:
java.io.IOException

hasValue

boolean hasValue(java.lang.String tabletName,
                 java.lang.String columnName,
                 Row.Key rowKey)
                 throws java.io.IOException
Tablet에 rowKey 값이 존재하는 지 반환한다.

Parameters:
tabletName -
columnName -
rowKey -
Returns:
Throws:
java.io.IOException

getSplitedRowKeyRanges

Row.Key[] getSplitedRowKeyRanges(java.lang.String tabletName,
                                 int splitPerTablet)
                                 throws java.io.IOException
TabletInputFormat에서 사용하는 메소드로 Tablet의 rowkey 목록에서 splitPerTablet 갯수만큼 범위를 나누어 각 범위의 마지막 rowkey 값을 반환한다. map 갯수 만큼 input 영역을 나누기 위해서 사용한다.

Parameters:
tabletName -
splitPerTablet -
Returns:
Throws:
java.io.IOException