'IT_Infra/Architecture'에 해당되는 글 27건

donaricano-btn

 저널링(journaling)


1.  저널링(journaling)?

- 트랜잭션이나 매일 갱신되는 데이터의 변경 이력을 남기는 것

- 시스템 장애가 발생했을 때 어디까지 정상 처리 됐는지, 그리고 어디부터 재실행하면 좋을지 알 수 있게 하는 기능

- 데이터 자체가 아닌 트랜잭션(처리) 내용 기록

- 데이터 일관성이나 일치성이 확보되면 필요 없다

- 데이터 복구 시 롤백, 롤포워드 에 이용


2. 이용되는 곳

1) 리눅스의 ext3 

- 트랜잭션 시에 버퍼 정보를 디스크에 기록하지 않기 때문에 버퍼에 있는 최신 데이터를 잃을 수 있다

- 기본 설정에서 5초에 한번 기록되지만, 데이터 파손이 허용되지 않는 경우에는 이 간격을 짧게 조정

- fsck라는 명령을 실행하면 저널링에 의한 복구 작업이 진행

2) 오라클 DB

- 오라클에서는 Redo로그 라고 불린다

- 트랜잭션 종료 시(커밋 시)에 버퍼가 디스크에 기록되지만, 기록중인 Redo로그가 파손된 경우에는 데이터를 최신 상태로 복원할 수 없다

- Redo로그 이중화(member)

블로그 이미지

리딩리드

,
donaricano-btn

핑퐁(Pingpong)



1. 핑퐁(Pingpong)?

- 물건을 운반할 때 상자에 넣으면 효율적으로 관리

- 운반하는 양에 따라 상자 크기를 선택하면 효율적으로 운반

- 큰 상자는 데이터를 빠르게 운반(처리량 중시)

- 작은 상자는 소량의 데이터를 빠르게 운반(지연 시간 중시)


2. 사용되는 곳

1) 오라클 DB의 블록크기

* 블록 크기 : 오라클 DB가 데이터 파일을 읽기/쓰기하는 최소 단위

- 기본적으로 오라클 블록크기는 8KB 이지만 데이터를 읽고 쓰는 크기가 큰 때에는 블록크기를 크게 하고 작을 때는 블록 크기를 작게 사용한다

(OLTP 시스템에서는 작게, DSS 시스템에서는 크게)

- 데이터 베이스 블록크기가 OS블록 크기와 다르면 데이터베이스 블록 크기가 OS블록 크기의 배수가 된다?

DB블록크기 : 8KB, 파일 시스템: 4KB

2) 네트워크

- 웹 브라우저가 데이터를 전송할 때는 OS의 소켓이라는 구조 사용

- OS에 의뢰해서 소켓을 만들어 통신하고 소켓을 만들면 소켓 버퍼라는 상자가 만들어진다

- 소켓 버퍼는 송신버퍼수신버퍼가 있다

- 소켓 버퍼가 가득차면?

- OS에 의해 TCP 세그먼트라는 상자로 분할, TCP헤더, IP헤더 MAC헤더를 붙여서 이더넷 프레임상자에 넣는다

* MSS(Maximum segment size)

- TCP 세그먼트로 분할 될때 MSS의 크기를 초과하지 않는 범위에서 분할

* MTU(Maximum Transfer Unit)

- IP 소켓이 최대 크기




'IT_Infra > Architecture' 카테고리의 다른 글

[IT_Infra] 복제(replication)  (0) 2016.11.14
[IT_Infra] 저널링(journaling)  (0) 2016.11.14
[IT_Infra] 폴링(polling)  (0) 2016.11.13
[IT_Infra] 끼어들기/인터럽트(interrupt)  (0) 2016.11.13
[IT_Infra] 캐시(cache)  (0) 2016.11.13
블로그 이미지

리딩리드

,
donaricano-btn

폴링(polling)


1. 폴링(polling)?

- 정기적으로 질의하는 것을 가리킨다

- 상대가 어떤 상태인지, 어떤 요구를 가지고 있는지 등 파악

- 예전에 데이터 전송 제어를 의미 했지만 지금은 범용적으로 사용


2. 특징

- 질의 방향이 단방향

- 질의는 일정 간격으로 따라 정기적으로 발생

- 프로그래밍이 쉽다

- 상대가 응답하는지 확인 가능

- 일괄처리


3. 폴링(polling) vs 인터럽트(interrupt)

1) 인터럽트

-  이벤트 주도 구조

- 전화기와 같다

- 입출력 장치에 주로사용

2) 폴링

- 정기적으로 입출력 장치 상태확인

- 폴링 간격이 길면 디스크 I/O가 완료됐더라도 금방 알아차리지 못한다

- 간격이 짧게 하면 CPU를 쓸데없이 많이 사용

- 데이터 전송

- 메일 서비스


4. 사용되는 곳

1) 접속 감시(웹 로직 서버)

- MBean이라는 자바 객체를 이용해서 구현되어있다

- AP 서버와 DB 서버간의 연결이 잘 되었는지 감시한다

2) NTP(시간 동기) 처리

- 시간동기? 정기적으로 실시해서 자신의 시간이 맞는지 확인하는 구조


블로그 이미지

리딩리드

,
donaricano-btn

끼어들기/인터럽트(interrupt)


1. 인터럽트(interrupt)?

- 급한 일을 먼저 하도록 CPU에게 알린다

- CPU에서 애플리케이션 프로세스나 스레드 처리를 해도 키보드 입력하면 인터럽트 발생


2. 사용되는 곳

1) 네트워크 데이터 수신 시

a. 브라우저가 웹 사이트에 접속하면 서버의 NIC에 이더넷 프레임이 도착

b. 이더넷 프레임이 도착하면 NIC를 통해 CPU에 끼어 들기가 발생

c. CPU를 사용하고 있던 프로세스 정보가 메모리에 저장된 후 일시적으로 CPU를 빼내서 데이터 수신

d. 끝나면 중단 했던 프로세스 처리 재개

2) 조각화 (segmentation) 위반

- 프로세스나 스레드가 허가 되지않은 메모리 위치에 엑세스 하면 조각화 위반 이라는 예외 발생

블로그 이미지

리딩리드

,