Revision 1428
-------------------
수정일 : 2017-11-15
수정자 : 유희곤

- CHG: replication 실패 관련 report 로깅 항목 조정(#31526)
       - replication thread 에서 각 FHS 의 작업 결과 수신후 
       - error message 가 "source file size not match" 로 시작되는 경우 report 로깅 하지 않도록 처리
       - 나머지 오류는 "not found" 와 같이 다양, 중요한 로그이므로 report 로그에 기록되도록 함.
       - 수정 파일: ReplicateThread.cpp


Revision 1233
-------------------
수정일 : 2015-09-14
수정자 : 유희곤

- CHG: 최신 BaseSocket 모듈 적용 (#24369, #24141)
       - EPIPE 및 usleep 관련 수정 버전 적용
       - 수정 파일: lib/BaseSocket.cpp

- CHG: usleep -> nanosleep 변경 (#24369)
       - multi thread 에서 lock 관련 문제점 발생 가능.
       - 프로세스 기동 및 시그널 처리에서만 사용하여... thread 와 연관 없지만.. 수정 처리함.
       - 수정 파일: Main.cpp, Worker.cpp

- CHG: Main 버전 (3.5.0) 변경 사항 적용
       - 기존 3.4.0 -> 3.5.0 으로 버전 변경 처리.


Revision 1190
-------------------
수정일 : 2015-03-26
수정자 : 유희곤

- BUG: Cache 가 먼저 생성된 경우 replication 생성 관련 문제점 수정 (#21903)
       - cache 가 먼저 생성된 경우 복제 대상 선택시 cache 까지 선택되는 문제점 수정
       - 수정파일: ReplicateSelect.cpp


Revision 1182
-------------------
수정일 : 2015-02-12
수정자 : 유희곤

- CHG: 신규 RCDB 형상 적용에 따른 Replication, Cache 완료 Insert Flow 최적화 (#21354)
       - 기존 pgpool 형상에서 사용 불가했던 INSERT-SELECT query 를 
       - streaming replication 구조의 신규 RCDB 형상에서 사용 가능해 짐.
       - 이에 따라 Replication, Cache 생성 완료 처리 Flow 를 신규 RCDB 형상에 맞도록 최적화하여
       - RCDB 에 대한 Query 수행 횟수를 줄인다.
       - 수정파일: ReplicateInsert.cpp CacheInsert.cpp

- CHG: glibc 버그  fix 장비에서 binary 생성.
       - 세부 내역은 CVE-2015-0235 (gethostbyname_r 버그) 참고


Revision 1125
-------------------
수정일 : 2014-11-17
수정자 : 유희곤

- CHG: DNS resolve 실패시 Retry 기능 추가 (#20812, #20783)
       - 통신 접속 관련 lib/CBaseSocket 모듈에서 
       - getaddrinfo() 의 DNS resolve 실패가 자주 발생함.
       - 오류코드 FreeBSD : EAI_NONAME(8), Linux: EAI_AGAIN(-3)
       - 이에 3회 재시도 기능 추가
       - 수정파일: lib/BaseSocket.cpp


Revision 1102
-------------------
수정일 : 2014-10-29
수정자 : 유희곤

- NEW: RCDB 로그, 모니터링 상에 application_name 정보 표시되도록 기능 추가
     - RCDB 연결 관련 PgOpenDB() 함수 호출시 
     - " application_name=" << PROG_NAME; 을 추가하여
     - RCDB 로그, 모니터링 정보 상에 정보가 표시되도록 한다.
     - 수정: Database.cpp


Revision 1077
-------------------
수정일 : 2014-09-02
수정자 : 유희곤

- CHG: SKIP_KEYWORD conf section 변경 지원 (#20201)
       - program section 을 우선적으로 사용
       - 존재하지 않을 경우 common section 을 사용토록 수정 처리

- CHG: 기타
       - 소스 상의 잘못된 공백 관련 제거 처리


Revision 1017
-------------------
수정일 : 2014-07-24
수정자 : 유희곤

상세 수정사항은 일감 #19042 을 참고할 것.

- CHG: 양방향 Main 버전 (3.4.0) 변경 사항 적용
       - 기존 3.3.0 -> 3.4.0 으로 버전 변경 처리.
       - CentOS 5.4 및 6.4 에서 컴파일 가능토록 hearder include 조정 처리

- CHG: 기본 프레임 구조 변경
       - 기존 Guard - Worker 구조에서 Main - Worker 구조로 변경 처리
       - daemon 함수 사용으로 변경.
       - 각 시그널 처리 및 프로세스 기동관련 처리 함수 검증 및 변경.
       - BaseSocket 관련 최신 모듈 적용.

- CHG: Conf 처리 관련 신규 singleton 객체 추가
       - 기존 전역 구조체 처리 방식에서 sigleton 객체로 처리방식 변경
	   - conf 변경 항목 내역 반영

- CHG: Log 처리 객체 변경
       - 팀 공통 규칙은 singleton 방식의 CLogger 객체 사용으로 방식 변경.
       - Report 로그 처리 관련 전용 객체 사용으로 방식 변경 처리

- CHG: 신규 RCDB 형상 지원
       - 기존 RCDB t_dav_resource 사용 모듈에 대해
       - 해당 Table 존재여부 검사 후... 구형 RCDB, 신형 RCDB(서비스별 Table 분리) 지원토록 기능 수정

- CHG: ftsd 와 통신 관련
       - 최신 라이브러리 적용.

- BUG: database class 사용 관련 잘못된 함수 호출 문제
       - 이미 CLEAR 처리된 result set 에 대해 tuple 계산함수 호출 등의 버그 수정 처리
       - 최신 database class 사용 처리.
	   
- BUG: CProperFhsUpdater 모듈
       - vector 의 at() 함수 관련 방어 코드 추가.
       - 중복된 FHS 선택 및 무한 루프 발생 가능 코드 수정
       - RCDB 연결에 따른 목록 관리 업무 flow 수정
       - 비효율적 업무 Flow 코드 수정	   

- BUG: CQueue Template 을 CDataQueue Template 모듈로 재개발
       - Queue 처리 관련 각종 버그 수정
       - 잘못된 업무 Flow 수정 처리.
       - 모듈 독립성을 위해 .hpp 로 재개발 수행

- BUG: ProcessStatus 모듈 재개발
       - 잘못된 Thread Count 관리 코드가 존재. 잘못된 업무 Flow 코드 존재
       - 이로 인해 전부 재개발 처리.
       - Thread 기능 탑재하여 2 sec 마다 Process 표시 상태를 자동 갱신토록 기능 추가
     
- CHG: Replication 관련
       - Replication 대상 Content 조회 Query 상의 GROUP BY 구문으로 인해 불필요한 DISTINCT 구문 제거
       - ftsd 로 부터 전달받는 응답에 대해 잘못된 실패 count 처리 관련 업무 Flow 버그 수정

- CHG: CReplicateSelect 모듈 수정
       - loop 간 sleep time 을 60, 15, 2 sec 에서 60, 30 sec 로 업무 flow 단순화 처리
       - 시간 동기화 관련 문제 발생시에 대한 방어 기능 추가
       - 불필요, 잘못된 코드 전부 제거
       - RCDB 오류 처리 관련 기능 추가
       - 잘못된 db handler 관련 코드 수정.

- BUG: CReplicateInsert 모듈 수정
       - 잘못된 pop 및 대기 처리 로직 수정
       - 상황에 따른 sleep time 조정 처리
       - 불필요한 대기 코드 전부 제거
       - RCDB 오류 처리 관련 기능 추가
       - 잘못된 db handler 관련 코드 수정.

- BUG: 재시도 관련 MAX_RETRY_COUNT 값에 대한 비교 코드 통일
       - 모듈별 잘못된 해석으로 인해 재시도 여부 판단이 > , >= 으로 나뉘어져...
       - 잘못된 업무 Flow 발생 가능.
       - 이에 MAX_RETRY_COUNT 값을 초과하는 경우에만 Throw 되도록 관련 코드 통일

- CHG: Conf 항목 수정
       - FHS_STATUS_BROADCAST_UDP_PORT 항목 미사용으로 인한 삭제 처리
       - Hot Content 의 URI 정보 전송으로 인한 FHS_STORAGE_MOUNT 항목 미사용. 삭제 처리
       - fimngd 로 부터 Hot content 정보 수신을 기존 UDP 13110 Broadcasting 에서 TCP 13110 port Listen 으로 변경
          이에 conf 상의 FHS_HOTCONTENTS_CONTROL_UDP_PORT = 13110 설정을 
          FHS_HOTCONTENT_LISTEN_TCP_PORT = 13110 로 변경
       - Hot Content 의 Cache 생성 조건 검사를 위한 동접 fd 최소값 항목 추가
         HOTCONTENT_CREATE_MINIMUM_FD_COUNT = 5

- NEW: fimngd 와의 통신 방식 변경
       - 변경된 conf 적용 관련 기능 추가 및 수정
       - fimngd 와의 통신 처리를 담당할 CFimngdSocketControl 모듈 추가
       - 변경된 Protocol 관련 CHotContentInfo 모듈 추가 ( 기존 모듈 재개발 )
       - Worker 상에 통신 대기 및 수신 Thread 관련 기능 추가
       - fimngd 로 부터 수신되는 content length 정보는 물리 파일 실 size 정보임.

- CHG: Cache Job 관련 모듈 재개발
       - 관련 Data 객체가 5개씩이나 되어 업무 Flow 파악 어려움
       - 관련 Data 객체 통합하여 재설계
       - Job 관리 모듈 재개발 및 기능 추가

- NEW: 신규 RCDB 형상 지원 관련 미사용 column 제거
       - #19575 을 통해 신규 RCDB 지원시 제거된 column 항목 반영 처리.
       - 제거항목: get_content_language, get_etag, lock_discovery, supported_lock
       - CReplicateInsert , CCacheInsert  모듈 수정

- CHG: Cache Order 관련 모듈 재개발
       - RCDB 접속 최소화 처리 기능 추가.
       - 변경된 Data 객체 반영 처리
       - 신규 RCDB 형상 지원 관련 코드 추가
       - Cache 생성시 항상 원본 Content 사용 -> 원본, 복제본, cache 생성본 사용가능토록 수정

- CHG: 기타
       - Class 및 변수명 단순화 ( 이로 인해 파일명 변경 발생 )
       - Replication, Cache 관련 작업 Thread 기동 실패시 메모리 leak 발생 방어코드 추가
       

Revision 935
-------------------
수정일 : 2014-01-20
수정자 : 김오종

- DEL: PROPER_FHS_UPDATE 항목을 제거한다. 
       - DB로 부터 Proper fhs 값을 주기적으로 가져오는 것은 더이상 옵션화 대상이 아니라 구동 될때 마다 가져오는것이다. 

Revision 930
-------------------
수정일 : 2014-01-14
수정자 : 김오종

- CHG: rc_rmcd의 프로세스 형식에서 guard의 개념이 없어서 소스의 파일명을 변경한다.
       - Guard.cpp Guard.h 를 main.cpp main.h로 변경
       
- DEL: rc_statd의 신규제작에 따른 기능 축소 및 변경
       - top fhs를 선정하기 위한 기능을 rc_statd가 하게됨에 따라 vmasd 수신기능을 제거한다.
       - Internal Cache 생성시 target fhs 선정에 대한 부분을 RCDB의 t_fhs_top_satus table을 참조하여 선정하도록 수정
       
- CHG: report로그의 포맷을 변경처리 한다.
       
Revision 0822
-------------------
수정일 : 2012-09-25
수정자 : 유희곤,노경민

- NEW: 특정 단어가 포함된 경우 복제 대상에서 제외 기능추가 (Keyword Skip)
       - 복제 대상 URI에 특정 단어가 포함된 경우 복제에서 제외되는 기능을 추가한다.
	   - 해당 체크 시 대소문자에 대해서 양방향 기본 정책을 따른다.(대소문자 구분)
	   - 해당 config 설정은 SKIP_KEYWORD 세션에 추가되며, 구분자는 ,이다.
	   - 해당 cofnig 설정 형식은 check type | keyworkd 이며,
			check type은 h(head) - path 시작, m(mddle) - path 가운데 , t(tail) - path 끝으로 구분 된다.
	   - 수정된 파일은 define_rc_rmcd.h, GetConfig.cpp, ReplicateTargetSelector.cpp, ReplicateTargetSelector.h 임

- DEL: 코어 덤프 생성 로직 삭제
       - 코어 덤프 발생 시 특정 디렉토리에 발생되도록 생성된 로직을 삭제처리함
	   - 수정된 파일은 Worker.cpp, Guard.cpp임

- NEW: Replicaiton 정보 RCDB INSERT 후 재확인 기능 추가 (정합성 체크)
       - Replication 완료된 Content 정보를 RCDB 에서 SELECT -> INSERT 처리시 원본 변경되어 하여 서비스 장애발생 가능
       - 이를 보완하기 위해 RCDB INSERT 후 다시 한번 원본의 변경 여부를 검사하여...
       - 원본이 변경된 경우 INSERT 된 Replication 정보를 deleted_yn = 'Y' 로 변경 처리한다.
       - 수정 소스 : CompleteTargetInserter.cpp 의 InsertFromQueue()

- CHG: 잘못된 로그 메시지 수정
       - CacheDeleteCheck.cpp 의 CheckTimeoutCacheContens() 상의 잘못된 로그 수정 처리.

- DEL: Makefile install 항목에서 conf 파일 copy 처리 기능 제거
       - -cp -n ../$(PROG_NAME).conf $(INSTALL_CONF)/$(PROG_NAME).conf
       - Linux 에서 -n 옵션 미지원 및 패키징 처리로 인해 해당 기능 제거 및 관련 항목 제거 처리

- CHG: 양방향 Main 버전 (3.2.0) 변경 사항 적용
       - 기존 3.1.0 -> 3.2.0 으로 버전 변경 처리.


Revision 0723
-------------------
수정일 : 2012-02-29
수정자 : 노경민

- CHG: Postgresql Client Library 변경
       - 8.4.5 -> 9.1.3 으로 변경
       - HA로 구성된 DBLB 사용 시 HA전환 발생 시 쿼리 실행 중인 경우 block 되는
       현상을 방지하기 위해 TCP keepalive 기능을 사용하여야 한다. linux 경우 각
       실행 데몬에서 해당 기능을 소켓 옵션 함수 사용하여 on 시켜야 되며,
       Postgresql 경우 기존 8.4.5 버전에 포함된 client library 경우 해당 기능을 
       지원하지 않으며, 9.1.x 대에 해당 기능을 지원 확인되어 관련 library 재컴파일함


Revision 0685
-------------------
수정일 : 2012-02-22
수정자 : 노경민

- CHG: 버전 변경
	   - CentOS용 지원 버전인 3.1.0으로 변경함
- BUG: 복사된 파일 경우 Internal Cache가 발생하지 않는 현상 발견
	   - Revision r337 수정된 문제는 opendav 관련 문제였으며, 관련 opendav 패치완료
	   - filename_hash 중복 체크 로직 삭제 처리함
	   - 수정된 파일은 CacheCompleteInserter.cpp임
- CHG: conf 통합에 따른 변경
       - FHS_VMASD_RCID -> RC_ID
	   - FHS_VMASD_POR -> FHS_STATUS_BROADCAST_UDP_POR
	   - FHS_CMA_PORT -> FHS_HOTCONTENTS_CONTROL_UDP_PORT
	   - 수정된 파일은 Guard.cpp, GetConfig.cpp, define_rc_rmcd.h, Worker.cpp임
- CHG: 복제 지연 발생 로직 변경
	   - work thread가 10개이상 발생하지 부분 수정
	   - 복제 완료 관련 큐가 비워있을 때 과도하게 sleep된 부분 수정
	   - 수정된 파일은 CacheControl.cpp, CacheCompleteInserter.cpp, ReplicateControl.cpp임
- CHG: OS 변경 관련 기능
	   - CentOS 5.4 정상 동작 확인
	   - Process Title 관련 문제 해결(setproctitle)
	   - Postgresql 소스 활용(src/backend/utils/misc/ps_status.c)
	   - 수정된 파일은 Util.cpp(h), Guard.cpp, Worker.cpp, ProcessStatus.cpp임
- CHG: PGPool 관련 Mismatch 문제 해결
	   - INSERT~SELECT를 사용해서 발생한 문제임
	   - 수정된 파일은 CompleteTargetInserter.cpp,CacheCompleteInserter.cpp임
- CHG: 복제 완료 시 Insert 오류 시 무한 반복 해결
       - 오류 발생 시 관련 큐를 삭제해주지 않아서 발생한 문제임
	   - 수정된 파일은 CompleteTargetInserter.cpp임

	   	   
Revision 0620
-------------------
수정일 : 2011-09-21
수정자 : 김오종

- BUG: 캐쉬 파일 삭제 시 get_lastmodified 업데이트 하지 않음.
       - CQueuePopControl::GetWork() 함수내에서 get_lastmodified 업데이트 하도록 수정.


Revision 0604
-------------------
수정일 : 2011-09-02
수정자 : 김오종

- BUG: Proper FHS 대상 장비가 없는 경우 report.log 파일에 로깅이 안됨.
       - CQueuePopControl::GetWork() 함수 수정.
       - 재시도 회수를 확인하고 넘었다면 pop해서 버린다.
       - report.log에 logging되도록 수정.

Revision 0571
-------------------
수정일 : 2011-06-08
수정자 : 김오종

- BUG: 복제 본 재시도 처리 과정에서 Ignorelist 처리 버그 수정.
       - CReplicateControl::Execute() 함수 수정.
       - 복제 본 요청 후 Rep Count 만큼 처리 되지 않은 경우 재처리 하게 된다.
       - 그 과정에서 성공한 fhs의 목록은 복제처리대상 목록에서 제외 시키는 과정의 
         로직에서 정상적으로 처리 되지 않는 부분을 수정.
       - 본 문제는 STL list의 '=' operator 만 사용하도록 함으로써 수정 함.


Revision 0564
-------------------
수정일 : 2011-06-07
수정자 : 김오종

- BUG: vmasd 수신 모듈 중 CFhsInfo::m_nManualDisable 에 처리되지 않았던 fsck 상태에대한 처리.
       - CProperFhs::DoProperFhs() 함수내에 수정.
- CHG: Process 시작 시점에 각 object 들의 생성 여부를 logging 처리함.
       - main.cpp 의 WorkerMain( ) 함수 내에 log 정보 추가.

Revision 0529
-------------------
수정일 : 2011-05-03
수정자 : 유희곤

- BUG: lib/BaseSocket.cpp ConversionAddr() 함수 수정
       - ConversionAddr() 함수에서 gethostbyname() 함수 사용으로 인한 Thread-Safe 문제 발생
       - Multi Thread App에서 요청한 장비와 다른 장비로 접속하는 문제가 발견되었으며
       - 이로인해 Contents 전송, 관리 부분에서 문제가 발생할 수 있어 수정 처리함.
       - 본 문제는 Thread Safe 한 getaddrinfo() 함수 사용으로 변경 처리함.


Revision 0513
-------------------
수정일 : 2011-04-07
수정자 : 노경민

- BUG: 복제 되지 않는 파일에 대한 복사된 파일에 대한 복제되지 않는 문제
     - 복제 완료 후 DB insert 시 filename_hash 중복 체크 로직 때문에 발생함
     - 복제 완료 전 복사된 파일에 대한 복제본 허용함
     - 수정된 파일은 CompleteTargetInserter.cpp, CompleteTargetInserter.h, Data.h, ReplicateTargetSelector.cpp 임
     
- CHG: config 통합
     - rcts.conf로 통합함.
     - 기존 rc_rcrmc.conf 삭제함
     - 수정된 파일은 GetConfig.cpp, define_rc_rmcd.h, Makefile 임

- CHG: 최초 기동시 Replication Select Interval max 설정 기준 삭제
     - 72시간 이상 설정되지 않던 부분을 수정함
     - 수정된 파일은 ReplicateTargetSelector.cpp 임


Revision 0492
-------------------
수정일 : 2011-03-09
수정자 : 김오종

- BUG: replication 완료 후 인서트 처리하는 시에 filename_hash의 중복이 있는 상황
     위 상황에서 complete queue에서 pop()해서 제거하지 않는 버그 수정.
     - filename_hash 중복이 있을 경우 complete queue에서 pop()하도록 한다.
     - pop()된 내용을 report.log에 기록한다.
     - CompleteTargetInserter.h 소스코드 수정
     - CompleteTargetInserter.cpp 소스코드 수정


Revision 0467
-------------------
수정일 : 2010-12-29
수정자 : 장희준

- CHG: 캐시 요청 처리 시 로깅 부분 보완.
     - CmaReceiver.cpp 코드 수정


Revision 0466
-------------------
수정일 : 2010-12-29
수정자 : 장희준

- CHG: Revision 0465에서 로깅 부분 보완.
     - CmaReceiver.cpp 코드 수정

Revision 0465
-------------------
수정일 : 2010-12-29
수정자 : 장희준

- CHG: 캐시 요청에 대한 RCID 판변 추가.
     - CmaReceiver.cpp 코드 수정

Revision 0457
-------------------
수정일 : 2010-12-13
수정자 : 장희준

- CHG: Internal Cache 생성 관련 상세 로그 추가
       - CCacheOrder::RequestJob() 함수에서
       - nTuple == 0 이면 WARN_LOG( "GetNoTuples has no result. sql: %s", szQuery );
       - nTuple < 0 이면 ERROR_LOG("GetNoTuples has failed. : errmsg:%s",  m_pPgSQL->GetErrorMessage().c_str());

- CHG: DB 접속 불가시 처리 로직 추가
       - CProperFhsUpdater::EntryPoint 함수에서
       - pObject->Execute() == false면 10초 후에 Execute()를 호출하도록 변경.


Revision 0456
-------------------
수정일 : 2010-12-10
수정자 : 장희준

- BUG: 최초 기동시 Replication Select Interval 계산식에서 변수 범위 관련 버그 수정
       - CReplicateTargetSelector::SetTargetSelectInterval() 함수상에서
       - m_nTargetSelectInterval = (long long) ( sec * 1000000 ); 부분에서 (long long) (int) 형상으로 계산되므로
       - Replication Select Interval 에 대한 정확한 계산이 수행되지 않음.
       - 이에 따른 수정처리 진행함.


Revision 0454
-------------------
수정일 : 2010-12-09
수정자 : 유희곤

- BUG: 최초 기동시 Replication Start Time 계산식에서 변수 범위 관련 버그 수정
       - CReplicateTargetSelector::SetTargetSelectIntervalOnStarting() 함수상에서
       - (long long) ( hour * 3600 * 1000000 ) 부분에서 (long long) (int) 형상으로 계산되므로
       - Start Time 에 대한 정확한 계산이 수행되지 않음.
       - 이에 따른 수정처리 진행함.

- CHG: Replicate 대상 선택관련 MIN_TARGET_SELECT_INTERVAL 값 변경
       - 기존 3 sec 로 할 경우 FHS 간 시간 동기화 관련 문제 발생 가능
       - 따라서 해당 MIN 값을 180 sec 로 변경 처리함.
       - rc_rmcd.conf 에도 본 내역 적용 처리함.

- CHG: gcc 4.4.5 컴파일시 발생한 Header File include 오류 관련 Header 추가처리


Revision 0451
-------------------
수정일 : 2010-12-09
수정자 : 유희곤

- CHG: Main 버전 정보 변경
       - src/Makefile 상에 설정된 기존 Main 버전 3.0.0 을 서비스 1팀 정책에 따른 3.0.1 로 변경

- CHG: Changelog.txt 관련 내역 보강
       - Reivision 450 의 작업 내역 보강


Revision 0450
-------------------
수정일 : 2010-12-08
수정자 : 장희준 

- CHG: 복제 대상 선택 시간을 설정파일에서 설정할 수 있도록 변경
       - rc_rmcd.conf, define_rc_rmcd.h, Worker.cpp, ReplicateTargetSelect.h ReplicateTargetSelect.cpp
       - conf 파일상에 TARGET_SELECT_INTERVAL, TARGET_SELECT_INTERVAL_ON_STARTING 항목 추가
       - 자세한 사항은 일감 #4999 참고.

- CHG: 불필요한 동적 Library 링크 삭제처리
       - src/Makefile LIBS 에 설정된 불필요한 geom, devstat 링크 부분 삭제 처리

- CHG: gcc 4.4.5 컴파일시 발생한 Header File include 오류 관련 Header 추가처리
       - lib/Logger.cpp 

- BUG: lib/Config.h 구문 오류 수정
       - SetDelimiter 함수의 두번째 인자인 string& value = CONFIG_DEFAULT_VALUE_DELIMITER 구문 오류
       - string value = CONFIG_DEFAULT_VALUE_DELIMITER 형식으로 수정 처리 


Revision 0371
-------------------
수정일 : 2010-10-08
수정자 : 김오종

- BUG: CCompleteTargetInserter::InsertFromQueue(), CCacheCompleteInserter::InsertFromQueue() 함수에서
      finame_hash의 중복 여부를 판단하기 위한 쿼리에 nextval()이 호출되어 resource_id의 이상증가 현상이 발생
        - 쿼리문중 의도와 상관없는 쿼리구문인 nextval()을 제거 함.


Revision 0337
-------------------
수정일 : 2010-08-11
수정자 : 김오종

- BUG: opendav에서 filename_hash 값이 중복생성(충돌현상)이 될 가능성에 대한 방어코드 추가.
        - CCompleteTargetInserter::VarificationInsertData() 함수 추가.
            -> filename_hash 값이 중복됐는지 확인 로직추가.
        - CCompleteTargetInserter::InsertFromQueue() 함수내에서 VarificationInsertData()함수로 확인 수행.
        - CCacheCompleteInserter::InsertFromQueue() 함수내에서 filename_hash 값이 중복됐는지 확인 로직추가.

- BUG: CCompleteTargetInserter::InsertFromQueue()와 CCacheCompleteInserter::InsertFromQueue()의 쿼리의
        조건절에 get_content_length 필드 추가.
        - 현재 분산 또는 내부캐시 완료된 컨텐츠의 파일크기가 같을경우에만 완료처리 되도록 처리.

- CHG: - defind 된 변수 타입을 기본 타입으로 재선언.
        - Data.h에 uint64_t로 정의된 변수를 unsined long long 타입으로 변경.


Revision 0333
-------------------
수정일 : 2010-08-09
수정자 : 김오종

- CHG: vmasd로 부터 수신되는 정보를 이용하여 ProferFHS 정보 update부분 수정.
        - vmasd 수신 처리 부분인 CProperFhs::UpdateFhsInfo() 함수 수정.
        - opendav 모듈에서 해당 fhs의 디스크 여유용량에 대해 1G이하면 업로드
             대상에서 제외되는 로직을 확인 함.

- CHG: Makefile 상의 버전정보 관리 방법 변경
        - REVISION 을 추가로 정의하고 Version 표시할때 사용 한다.


Revision 0322
-------------------
수정일 : 2010-08-02
수정자 : 김오종

- BUG: CBaseSocket::Read() 함수상의 문법관련 버그 수정
       - 156 Line상의 잘못된 대입 연산자를 비교연산자로 수정처리.

- CHG:  Makefile 상의 버전정보 변경.
       - 3.0.0.313 => 3.0.0.322


Revision 0313
-------------------
수정일 : 2010-07-15
수정자 : 김오종

- CHG: - Profer FHS 정보 업데이트 중 opendav 비정상 상황에 대한 로그메시지 조정.
       - Makefile 버전 조정.

       
Revision 0311
-------------------
수정일 : 2010-07-15
수정자 : 김오종

- CHG: - vmasd로 부터 수신되는 정보를 이용하여 ProferFHS 선정하는 부분 로직 수정.
            -> vmasd 수신 처리 부분인 CProperFhs::UpdateFhsInfo() 함수 수정.
            -> opendav 모듈이 기동중이지 않은 경우아래 값을 전송하는 것을 확인하였음.
               objFhsInfo.m_nTotalSize = 0;
               objFhsInfo.m_nFreeSize = 0;
            -> 기존 로직은 어떠한 값이 포함되었건 간에 fhs가 정상이라고 판단 하였으나,
              아래 조건이 true인 경우 비정상 상태로간주 하도록 처리 되었음.
              * 조건.
              if ( objFhsInfo.m_nTotalSize == 0 && objFhsInfo.m_nFreeSize == 0 ) 


Revision 0285
-------------------
수정일 : 2010-06-30
수정자 : 김오종

- CHG: - CHG: Makefile 상의 버전정보 변경
       - R0283에 version이 282로 commit되어 있어 R0285로 변경처리 함.
       - Chagelog에 버전 미적용으로 인해 전체 R0285로 변경처리함.


Revision 0282
-------------------
수정일 : 2010-06-24
수정자 : 김태일

- CHG: Replication Target 선정 쿼리 수정
       - 선정 기준을 filename_hash => uri로 변경함.
       - /user2/ stg/node0 등의 각기 다른 저장소를 가지기 때문에 filename_hash를 기준으로 잡기에 부적합함.


Revision 0281
-------------------
수정일 : 2010-06-22
수정자 : 김태일

- CHG: Makefile 상의 버전정보 변경
       - Makefile 상에 설정된 Version 정보를 기존 3.0.0.264 에서 양뱡향 버전 표시 방법으로 변경처리
       - 3.0.0.281-생성일시분초 형식


Revision 0280
-------------------
수정일 : 2010-06-22
수정자 : 김태일

- CHG: FHS의 ftsd와 통신이 완료된 상태에서, success list와 fail list를 전달 받는데, 
       Fail list에 대해서는 리스트에서 삭제 작업이 누락됨.
       - 잡 리스트에서 삭제작업(UnregisterJob)을 수행하고, Debug => Error Log로 변경함.


Revision 0264
-------------------
수정일 : 2010-06-01
수정자 : 유희곤

- CHG: Logger Class 의 Init() 호출시 경로가 Symbolic Link인 경우 처리코드 추가
       - Log Path 경로가 Directory 가 아닌 Symbolic Link 인 경우로 발생
       - 따라서 이러한 경우 기존에는 Error 로 처리되어 Init() 함수 호출이 실패됨.
       - 해당 코드를 Symbolic Link 또는 Directory 인 경우에는 정상적으로 처리되도록 수정함.

- CHG: Makefile 상의 버전정보 변경
       - Makefile 상에 설정된 Version 정보를 기존 1.0-R0243 에서 양뱡향 버전 표시 방법으로 변경처리
       - 3.0.0.264-생성일시분초 형식


Revision 0243
-------------------
수정일 : 2010-05-07
수정자 : 김오종

- CHG: rc간 복제처리를 위해 protocol상에 target tranid정보 전송기능 추가.

- NEW: ProperFHS 클래스에서 disable 된 장비들을 제외하는 로직 추가 필요.

- NEW: mds_sync 개발에 따른 추가개발 이슈.
       - CProperFhsUpdater class추가.
       - NetCache에서 사용하게될 mds_sync데몬과 연동되는 부분으로 
       - 신규로 추가된 t_fhs_top_status 테이블에 적당한 FHS를 특정개수(현재10개)이상을
       - 기본으로 전체 FHS의 10%에 해당하는 정보를 저장하는 역할을하는 클래스이다.


Revision 0236
-------------------
수정일 : 2010-04-27
수정자 : 김태일

- BUG: PTHREAD_MUTEX_INITIALIZER 코드로 구현된 mutex 초기화 구현 코드를 pthread_mutex_init() 사용으로 변경함.
	- 현재 FreeBSD환경에서 동작에 문제가 발견되지 않았으나, 잠재적인 문제가 있으므로 권고사항으로 구현 변경함.


Revision 0231
-------------------
수정일 : 2010-04-15
수정자 : 김태일

- CHG: - process status를 아래와 같은 형태로 변경 표현. 각 약어는 ProcessStatus.cpp에 주석 설명 되어있음.
         rc_rmcd: [RS0 RT0 RR0 RC0 CL0 CT0 CJ0 CC0] (rc_rmcd)
       - 현재 작업 가능한 스레드 개수를 조회하는 기능에 UpdateTitle() 구문을 추가하여 주기적으로 프로세스 상태가 갱신될 수 있도록 변경.


Revision 0230
-------------------
수정일 : 2010-04-14
수정자 : 김오종

- CHG: Replication 기능의 Replication 개수를 기존 conf파일기준으로 처리하던것을 DB의 값을 참조하도록 기능 변경.
       - t_sms_sp_svc_product 에서 replication_count 값을 기준으로 Replication 하도록 변경.
       - 고객사 별로 replication_count가 설정되므로, 각 고객사별로 Replication 수를 설정가능하도록 변경.

- NEW: Cache 처리에 대한 기능 추가.
       - 현재 버전은 개발 및 성능 테스트를 완료한 버전으로 기존에 Replication 처리기능에 Cache처리기능을 추가했다.


Revision 0177
-------------------
수정일 : 2010-03-23
수정자 : 유희곤

- NEW: SVN 신규 등록
       - 기존 svn://doit.solbox.com/work/trunk/rc_rmcd 에 존재하는 개발 완료 소스 (Rev 490)를 SVN 에 정식버전으로 등록함.
       - 본 버전은 개발 및 성능 테스트를 완료한 버전으로 현재 버전에서는 Replication 에 대한 처리 기능만을 가짐
       - 본 버전은 아직 Cache 처리에 대한 기능을 가지지 않음.
       - 현재 버전은 FreeBSD 5.4, 6.2 버전상에서만 테스트되었음.
       - 본 버전은 vmasd 정보를 사용하므로 rc_vrcd, rc_cmcd 와 UDP Port 충돌이 날수 있으므로 설치 및 기동시 주의해야 함.

- NEW: History 저장을 위한 Changelog.txt 파일 추가
       - 앞으로 각 작업에 대한 로그를 확인하도록 Changelog.txt 파일을 추가

