com.nhncorp.neptune.fs
Interface ChangeLogFileSystemIF

All Superinterfaces:
ProxyObject
All Known Implementing Classes:
ChangeLogFileSystem, FileBasedChangeLogFileSystem, LocalChangeLogFileSystem, PipeBasedChangeLogFileSystem

public interface ChangeLogFileSystemIF
extends ProxyObject

change log client interface

Author:
nhn

Field Summary
static java.lang.String ADD_OK
           
 
Method Summary
 boolean addChangeLog(java.lang.String tabletName, java.lang.String txId, int seq, ChangeLog changeLog)
          ChangeLog를 저장한다.
 void close(java.lang.String tabletName, boolean writable)
          하나의 ChangeLog 레코드를 저장한 다음에 호출된다.
 void delete(java.lang.String tabletName)
          특정 Tablet의 모든 change log 파일을 삭제한다.
 void endMinorCompaction(java.lang.String tabletName)
          MinorCompaction 수행 종료될 때 Changelog 쪽으로 MinorCompaction 종료 상황을 알려주는 역할
 boolean exists(java.lang.String tabletName)
          change log 파일의 존재 여부를 반환한다.
 void finishAdding(java.lang.String tabletName, java.lang.String txId)
           
 void format()
          관리하는 모든 정보를 삭제한다.
 java.net.InetSocketAddress[] getChangeLogServerInfo(java.lang.String tabletName)
          해당 Tablet의 log를 관리하는 서버를 반환한다.
 java.util.List<ChangeLogStatus> getChangeLogStatus(java.lang.String tabletName)
           
 void init(ChangeLogFileSystemIF systemIF, NConfiguration conf, TabletServerIF tabletServer, com.nhncorp.pleiades.client.LockService lockService)
           
 ChangeLog nextChangeLog(java.lang.String tabletName)
          read 모드로 오픈된 ChangeLog 저장소로부터 ChangeLog 레코드를 읽는다.
 void open(java.lang.String tabletName, boolean writable)
          ChangeLog를 저장하기 위해 오픈한다.
 void open(java.lang.String hostName, java.lang.String tabletName, boolean writable)
           
 void startMinorCompaction(java.lang.String tabletName)
          MinorCompaction 수행 시작할 때 Changelog 쪽으로 MinorCompaction 시작 상황을 알려주는 역할
 ChangeLogStatus verifyChangelog(java.lang.String tabletName)
          여러개의 복사본들 사이에 동기화가 되어 있는지 확인한다.
 
Methods inherited from interface com.nhncorp.neptune.common.aop.ProxyObject
getTestHandlerKey
 

Field Detail

ADD_OK

static final java.lang.String ADD_OK
See Also:
Constant Field Values
Method Detail

init

void init(ChangeLogFileSystemIF systemIF,
          NConfiguration conf,
          TabletServerIF tabletServer,
          com.nhncorp.pleiades.client.LockService lockService)
          throws java.io.IOException
Throws:
java.io.IOException

open

void open(java.lang.String tabletName,
          boolean writable)
          throws java.io.IOException
ChangeLog를 저장하기 위해 오픈한다.

Parameters:
tabletName -
append -
Throws:
java.io.IOException

open

void open(java.lang.String hostName,
          java.lang.String tabletName,
          boolean writable)
          throws java.io.IOException
Throws:
java.io.IOException

nextChangeLog

ChangeLog nextChangeLog(java.lang.String tabletName)
                        throws java.io.IOException
read 모드로 오픈된 ChangeLog 저장소로부터 ChangeLog 레코드를 읽는다.

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

addChangeLog

boolean addChangeLog(java.lang.String tabletName,
                     java.lang.String txId,
                     int seq,
                     ChangeLog changeLog)
                     throws java.io.IOException
ChangeLog를 저장한다.

Parameters:
tabletName -
txId -
seq -
changeLog -
Throws:
java.io.IOException

finishAdding

void finishAdding(java.lang.String tabletName,
                  java.lang.String txId)
                  throws java.io.IOException
Throws:
java.io.IOException

delete

void delete(java.lang.String tabletName)
            throws java.io.IOException
특정 Tablet의 모든 change log 파일을 삭제한다.

Parameters:
tabletName -
Throws:
java.io.IOException

exists

boolean exists(java.lang.String tabletName)
               throws java.io.IOException
change log 파일의 존재 여부를 반환한다.

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

close

void close(java.lang.String tabletName,
           boolean writable)
           throws java.io.IOException
하나의 ChangeLog 레코드를 저장한 다음에 호출된다. ChangeLog 저장소의 구현에 따라 아무런 작업을 하지 않을 수도 있다.

Parameters:
tabletName -
append -
Throws:
java.io.IOException

verifyChangelog

ChangeLogStatus verifyChangelog(java.lang.String tabletName)
                                throws java.io.IOException
여러개의 복사본들 사이에 동기화가 되어 있는지 확인한다. 서로 동기화가 맞지 않는 경우 txid가 가장 낮은 값을 기준으로 sync 작업을 수행한다. 결과 값은 sync의 성공 여부

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

getChangeLogStatus

java.util.List<ChangeLogStatus> getChangeLogStatus(java.lang.String tabletName)
                                                   throws java.io.IOException
Parameters:
tabletName -
Returns:
Throws:
java.io.IOException

startMinorCompaction

void startMinorCompaction(java.lang.String tabletName)
                          throws java.io.IOException
MinorCompaction 수행 시작할 때 Changelog 쪽으로 MinorCompaction 시작 상황을 알려주는 역할

Parameters:
tabletName -
Throws:
java.io.IOException

endMinorCompaction

void endMinorCompaction(java.lang.String tabletName)
                        throws java.io.IOException
MinorCompaction 수행 종료될 때 Changelog 쪽으로 MinorCompaction 종료 상황을 알려주는 역할

Parameters:
tabletName -
Throws:
java.io.IOException

format

void format()
            throws java.io.IOException
관리하는 모든 정보를 삭제한다.

Throws:
java.io.IOException

getChangeLogServerInfo

java.net.InetSocketAddress[] getChangeLogServerInfo(java.lang.String tabletName)
                                                    throws java.io.IOException
해당 Tablet의 log를 관리하는 서버를 반환한다.

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