728x90
반응형

Using COVID data

 

- What can I do with these data

 

Obesity, immunity and vaccination

https://www-sciencedirect-com.libproxy.dankook.ac.kr/science/article/pii/S244514602100042X?via%3Dihub 

 

 

 

https://www-sciencedirect-com.libproxy.dankook.ac.kr/science/article/pii/S244514602100042X?via%3Dihub=

 

www-sciencedirect-com.libproxy.dankook.ac.kr

 

Obesity Triggers COVID-19: Causal Discovery and Multiobjective Linear Programming Approach

https://ieeexplore-ieee-org.libproxy.dankook.ac.kr/document/9587525?arnumber=9587525&SID=EBSCO:edseee 

 

https://ieeexplore-ieee-org.libproxy.dankook.ac.kr/document/9587525?SID=EBSCO%3Aedseee&arnumber=9587525

 

ieeexplore-ieee-org.libproxy.dankook.ac.kr

 

 

 

728x90
반응형

'TABA > AI' 카테고리의 다른 글

TABA Sep 16th  (0) 2022.09.16
TABA Sep 15th  (0) 2022.09.16
TABA Sep 14th  (0) 2022.09.15
TABA Sep 13th  (1) 2022.09.13
728x90
반응형

가상화 배경

하드웨어 산업이 엄청나게 성장하면서 성능이 좋은 하드웨어들을 구하기가 쉬워졌고, 그래서 2000년대에 들어서부터는 가상화 기술이 급격히 부상하고 있다. 활용하지 않는 자원을 낭비하지 않고 효율적으로 사용하기 위해서 개발이 되기 시작하였다.

 

 

서버 가상화 Virtual Machine

가상화를 하기 위해서 하드웨어 혹은 소프트웨어 파티셔닝을 사용하는데

하이퍼바이저란, Virtual Box와 같은 가상 장치를 의미한다. 그 위에 가상 컴퓨터를 만든다.

 

 

리눅스 컨테이너 개요

컨테이너를 사용하는 이유?

 

위의 사진에서는 호스트 운영체제 위에 하이퍼바이저 (Virtual Box 등) 을 설치하고, 그 위에 가상 머신을 여러 개 설치해서 그 위에 다시 게스트 운영체제를 설치하고 응용프로그램을 설치해서 사용한다.

컨테이너는, 하이퍼바이저와 게스트 운영체제를 사용하는 과정을 생략한 채로, 컨테이너 엔진을 호스트 운영체제 위에 돌려서 다양한 어플리케이션을 돌리도록 만들어 준 것이다.

 

그리고 Container Engine 의 대표적인 예시로 도커를 들 수 있다. 도커가 개발된 이후부터 많은 기업에서 활발하게 리눅스 컨테이너를 사용하고 있다.

 

리눅스 컨테이너에서 사용하는 기술

  • cgrop (control group)

프로세스 또는 쓰레드를 그룹화하여 관리하는 기능과 시스템 리소스 (CPU, 메모리, 디스크 입출력 등) 의 사용을 제한하는 기술.

  • 리눅스 컨테이너는 호스트의 리소스를 공유하여 사용하는데, 이때 cgroup을 사용하여 컨테이너가 사용하는 리소스의 양을 제한할 수 있다.

namespace

다수의 오브젝트를 격리할 수 있음

리눅스의 3대 요소:

- 커널 : 하드웨어들을 제어하는 역할을 한다.

  • 쉘 : 커널과 사용자를 연결해주는 인터페이스.
  • 디렉토리 : 디렉토리와 파일은 파일시스템으로 관리됨

 

도커

  • Docker는 2013년 Docker 사에서 Go 언어로 개발한 오픈소스 플랫폼이다.
  • Docker를 사용하면 리눅스 컨테이너를 더 쉽게 관리하고 실행할 수 있다.
  • Docker의 가장 큰 특징은 이식성인데, 이는 개발 환경, 테스트 환경, 서비스 환경을 모두 동일하게 사용할 수 있다.

 

도커의 구조

도커로 리눅스 컨테이너를 생성하려면 미리 제작된 이미지가 있어야한다.

 

- 이미지 :

이미지는 여러 개의 레이어로 이루어져있다.

 

- 저장소 :

컨테이너를 생성하려면 이미지가 있어야하고, 이미지는 호스트가 아닌 ㅚ부에 저장되어 공유할 수 있어야한다.

범위에 따라 퍼블릭과 프라이빗으로 나뉜다.

대표적인 이미지 저장소로는 도커 허브가 있다.

 

- 컨테이너 :

컨테이너는 이미지의 실행 형태이다. 쉽게 말해서, 이미지가 메모리에 올라가면 컨테이너, 컨테이너가 디스크에 저장되어 있으면 이미지이다.

하나의 컨테이너에는 하나의 애플리케이셤남 실행되는 것이 권장되며, 추가로 실행할 수 있지만 유지하는 것은 권장하지 않는다.

 

 

도커의 기능

  • 이미지 생성 :

도커는 다양한 방법을 이미지를 생성할 수 있다.

대표적이면서 일반적으로 사용하는 것이 Dockerfile 이며, 그 밖에 컨테이너를 이미지로 생성하는 docker commit 명령과 컨테이너의 파일 시스템으로 이미지를 생성하는 docker export 와 docker import 명령이 있다.

  • 이미지 공유 :

도커는 저장소를 사용하여 이미지를 공유한다

저장소에는 도커 허브 뿐만 아니라 다른 프라이빗 이미지 저장소도 사용할 수 있다.

  • 컨테이너 생성 :

컨테이너는, 실행되고 있는 이미지를 말한다. 이미지는 공장에서 뽑아내는 것. 공장 틀이라고 할 수 있다.

사진출처 : https://phoenixnap.com/kb/containers-vs-vms

 

 

728x90
반응형

'TABA > OS' 카테고리의 다른 글

TABA Sep 20th - OS 실습 2  (0) 2022.09.20
TABA Sep 19th - OS 실습 1  (0) 2022.09.20
728x90
반응형

장애내용) 일부 Datafile 손상 

복구방법? mount 모드에서 손상된 datafile을 온라인 백업본으로 교체 후, 완전 복구를 수행

작업 순서 : (장애 유발) Datafile 삭제 → mount 모드 기동 → (mount 모드) Datafile 조회 → (mount 모드) 백업 데이터파일 넣기 → (mount 모드) 복구명령 수행 → 데이터베이스 오픈

 

SQL> SELECT NAME FROM V$DATAFILE;

#####
# 예제
SQL> !rm /tibero/tbdata/tibero/usr001.dtf
# 내 디렉토리 경로
SQL> !rm /tibero/0928/dbs/dbs/usr001.dtf

SQL> QUIT
#결과
Disconnected

.

tbdown abnormal
#결과
Tibero instance terminated (ABNORMAL mode).

.

##### mount 모드 기동

tbboot

 

 

 

 

 

 

 

 


 

728x90
반응형

'TABA > Tibero' 카테고리의 다른 글

Tibero DBMS 구조 관련 용어 정리  (1) 2022.10.03
TABA Sep 26th (2) - Tibero Database 저장구조  (0) 2022.09.26
TABA Sep 26th (1) - About Tmax Tibero  (0) 2022.09.26
728x90
반응형

batch job :

batch? 일을 바로바로 처리하는 것이 아니라, 일을 모았다가 한번에 작업을 처리하는 것을 말한다. 배치는 대량의 데이터를 특정 시간에 프로그램을 실행하여 일괄적으로 처리하는 특징을 갖는다.

 

티베로 데이터베이스 파일의 구조 :

DataFile : 테이블, 인덱스 들과 같은 논리적 구조들은 물리적으로 데이터 파일에 저장이 된다.

Redo Log File : 복구를 위한 데이터베이스의 변경된 모든 것을 길록하는 파일

Control File : 물리적 구조와 상태를 기록하는 파일

 

논리 볼륨 (Logical Volume) 이란?

 

데이터파일의 구조 : 파일 헤더 + 사용공간 / 미사용공간

- 파일헤더 : 데이터 사이즈 정보, 체크 포인트* TSN, 파일 고유 식별 절대번호, 테이블스페이스에서 식별하기 위한 상대번호 등의 메타 정보들을 포함하고 있다

- 사용공간

- 미사용공간 : 한번 이상 사용되었던 공간과, 한번도 사용되지 않은 미사용공간으로 나뉜다.

* 체크 포인트 ? 

 

스키마 객체 (Schema Object) 란? 스키마테이블, 뷰, 인덱스 등의 집합체로써, 각종 오브젝트를 포함하며, 동일한 이름의 유저에 의해 소유된다. 스키마 오브젝트논리적인 데이터 저장 구조로써, 디스크의 물리적 파일과 1대1 대응을 하지 않고, 논리적인 구조인 테이블 스페이스에 저장된다. 쿼리의 대상이 되는 것들을 통칭하여 스키마 객체라고 부른다.

 

리두 로그  파일의 종류 : Online Redo Log Files, Multiplexed Redo Log Files, Archived Redo Log Files (pg.11~12)

 

컨트롤파일 (Control File) :

 

 

Segment & Extent :

익스텐트 Extent 란? 연속된 데이터베이스 블럭의 집합이다.

세그먼트 Segment 란? tablespace 내 특정 구조에 대한 모든 데이터를 갖고 있는 하나 혹은 하나 이상의 익스텐트의 집합이다 .

 

데이터 블록 이란? : 데이터베이스 I/O의 단위이자, 논리저장구조의 최소 단위가 데이터 블록이다. 운영체제 블록 크기와 다를 경우 배수 단위로 데이터 블록의 크기를 설정해야한다.

 

테이블스페이스 (tablespace) 란? : 세그먼트를 저장하는 논리 저장소, 한개 이상의 데이터 파일이나 임시파일을 사용하여 데이터를 저장한다.

테이블 (table) : 테이블은, 말 그대로 해석을 하자면 표를 의미한다. 데이터베이스에서 실제 데이터가 저장되는 논리적 구조를 테이블이라고 부르는데, 일반적인 표의 구조와 마찬가지로 행(로우, row)과 열(컬럼, columnn)로 이루어져 있다. 테이블의 종류로는 일반 테이블과 *파티션 테이블이 있다.

 

* Partition 이란? DB의 규모가 너무 클 경우, 너무 커다란 테이블을 가지고 작업을 하게 되면 성능 측면에서 문제가 발생하게 되는데, 이를 해결하기 위해 '파티션' 이라는 단위로 테이블을 쪼개서 관리를 한다. 파티셔닝이란 논리적인 데이터 element 를 다수의 entity로 쪼개는 행위를 뜻하는 일반적인 용어이다.

(파티셔닝 부분 참고 : https://gmlwjd9405.github.io/2018/09/24/db-partitioning.html)

 

 

* 파티션 테이블 이란? 지속적으로 용량이 증가하는 논리적 테이블을 어러 개의 물리적인 공간으로 나누어 성능을 향상시킨 테이블. 각 파티션 테이블은 별개의 세그먼트에 저장되어 개별적으로 관리가 가능하다.

 

파티션 테이블의 장점 :

- 개선된 가용성 : 파티션은 독립적으로 관리가 가능하다. Backup and Restore 를 파티션 별로 작업이 가능하다. 같은 테이블에서 Unavaliable 한 파티션은 다른 파티션에 영양을 주지 않는다.

- 관리의 편의성

사용자가 지정한 값으로 파티션이 가능하고, 테이블스페이스 간에 파티션 이동이 가능하다. 파티션 레벨에서 SELECT, DELETE, UPDATE 가 가능하다.

- 개선된 성능

데이터를 액세스할 때 액세스 하는 범위를 줄여 퍼포먼스를 향상시킨다.


가상머신 스냅샷이란?

스냅샷은 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술을 의미합니다. Windows OS의 복원 지점과 같이 장애나 데이터 손상 시 스냅샷을 생성한 시점으로 데이터를 복구할 수 있습니다.

스냅샷은 원본 데이터를 그대로 복사해 다른 곳에 저장하는 백업과 달리 초기 생성 시 혹은 데이터의 변경이 있기 전까지는 스토리지의 공간을 차지하지 않습니다. 또 메타데이터(데이터에 대한 부가적인 정보)의 복사본에 해당하기 때문에 생성하는 데 오랜 시간이 걸리지 않고, 장애 상황이 발생해도 빠르게 데이터를 복원할 수 있습니다.

 

출처  : https://library.gabia.com/contents/infrahosting/9063/#:~:text=%EC%8A%A4%EB%83%85%EC%83%B7(Snapshot)%EC%9D%B4%EB%9E%80%3F,%EB%A5%BC%20%EB%B3%B5%EA%B5%AC%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4. 

 

가비아 라이브러리

IT 콘텐츠 허브

library.gabia.com

 


티베로의 기능

Tibero 는 대용량 처리를 위한 아키텍처를 기반으로, 고성능 처리를 지원

- 비용 기반 Optimizer

- 다양한 Index/Partition 기술

- 고성능 병렬 처리 및 압축

 

 

티베로 프로세스 구조 : 리스너 + 워커 프로세스 + 백그라운드 프로세스 

 

 


티베로가 인스턴스를 기동하는 부분의 작동과정은 오라클의 작동과정과 거의 유사하다. 티베로에서 오라클의 명령어가 거의 다 작동하는 것은, 오라클과 구조가 거의 유사하기 때문이라고 생각한다.

 

tbboot step

mount, nomount 차이 ?

 

 

 

사용자 관리 -> 티베로가 설치되면, 다음 6개의 계정 (SYS, SYSCAT, OUTLN, SYSGIS, TIBERO, TIBERO01)이  자동으로 생성된다. 데이터베이스 관리자는 기본 계정 이외에 업무에 필요한 사용자 계정을 추가로 생성하고 관리해야한다.

 

- SYS : 데이터베이스 관리를 위한 계정으로서 시스템 패키지, 동의어, 사용자, 역할, 가상 테이블, 시퀀스, 동적 뷰 등을 생성하고 관리한다

- SYSCAT : 데이터베이스 관리를 위한 정적 카탈로그 뷰를 생성하고 관리하는 계정이다

- OUTLN : 동일한 SQL을 수행할 때 항상 같은 질의 플랜으로 수행될 수 있게 관련 힌트를 저장하는 등의 일을 하는 계정이다

- SYSGIS : GIS 와 관련된 테이블 생성 및 관리하는 계정이다

- TIBERO/TIBERO1 은 CONNECT< RESOURCE, DBA 역할이 부여된 샘플 사용자 계정이다

 

사용자를 관리하면서, 권한을 부여할수도 있는데, 그럴때는 GRANT 명령어가 사용이 된다. 반대로 권한이 부여된 사용자로부터 권한을 회수할 수도 있는데, 그럴땐 REVOKE 를 통해 스키마 오브젝트 또는 시스템 권한을 회수할 수 있다.

 

# 권한 부여
GRANT SELECT ANY TABLE TO tibero WITH ADMIN OPTION;


# 권한 회수

# 스키마 오브젝트 권한 회수

REVOKE SELECT, UPDATE (EMPLOYEE_NAME, ADDRESS) ON EMPLOYEE
FROM tibero;

# 시스템 권한 회수
REVOKE SELECT ANY TABLE FROM tibero;

 

롤 (Role) 이란? 여러 권한을 모아놓은 집합이며, 하나의 단위로서 사용자에게 부여한다. 롤을 생성하거나 수정, 부여하기 위해서는 그에 맞는 권한이 필요하다.

 


오브젝트 관리

 

1. 스키마 객체 

 

2. 테이블 

 

3. 인덱스 : 원하는 데이터를 빠르게 검색하기 위하여 사용하는 데이터 구조. 인덱스는 테이블과는 별도의 스키마 오브젝트 이므로, 독립적으로 생성, 제거, 변경 제거가능하다.

 

4. 파티션 테이블

 

5. 파티션 인덱스 : 

 

6. 뷰 (VIEW) : SELECT 문장으로 표현되는 질의에 이름을 부여하여 정의한 가상의 테이블  . 따라서 SQL 문장 내에서 테이블과 동일하게 사용한다. 뷰를 통한 데이터 변경이 가능하다.

- 모든 뷰에 대한 질의 연산은 가능하지만, 삽입, 갱신, 삭제 연산이 불가능한 연산이 존재한다.

- 삽입, 갱신, 삭제 연산을 수행할 수 있는 뷰를 갱신 가능한 뷰 (updatable view) 라고 한다.

 

7. 동의어 (SYNONYM) : 오브젝트에 대한 별칭 (ALIAS (?) )

 

8. 시퀀스 : 순차적으로 부여하는 고유번호이다. 주로 새로운 데이터에 유일한 고유번호를 자동으로 부여할때 사용한다.

 

9. 잡 (JOB) : Tibero 에서는 주기적으로 데이터베이스에 주가된 JOB을 검사하여, 사용자가 설정한 시각이 되면 해당되는 JOB을 실행한다. 

 

JOB의 특징 :

- JOB을 추가 또는 변경하는 경우 커밋을 실행하지 않아도 자동으로 커밋이 되며, JOB 내에서 실행한 작업도 자동으로 커밋된다.

- JOB 실행이 실패한 경우에는 재실행되며, 16번 실패하게 되면 해당 JOB은 broken 상태가 된다.

 

 

 

 

 

 

 


728x90
반응형

'TABA > Tibero' 카테고리의 다른 글

October 6th Backup  (0) 2022.10.06
TABA Sep 26th (2) - Tibero Database 저장구조  (0) 2022.09.26
TABA Sep 26th (1) - About Tmax Tibero  (0) 2022.09.26
728x90
반응형

Tibero Database 저장구조

 

리두 로그 파일은 Online Redo 로그와 Archived Redo 로그 파일로 나눠진다. 

 

 

 

데이터베이스도 sql을 통해서 만들어지게 되어있다.

 

Tibero 데이터베이스 파일 구조는 Data File, Control File, RedoLog FIle 로 이루어져있다.

 

Data Files : Tables & Indexes 과 같은 Logical Structures

- 데이터 파일 헤더 : 이 곳에는 데이터 사이즈에 대한 정보, 체크 포인트 TSN, 데이터베이스에서 고유하게 식별하기 위한 파일 절대번호, 테이블 스페이스에서 데이터파일을 식별하기 위한 파일 상대번호 등의 메타 정보를 포함하고 있다.

- 미사용 공간 (한번 사용된적이 있지만 현재 미사용) : 데이터의 갱신 또는 삭제가 반복되면 중간에 사용하지 않는 공간이 존재하게 되고, 재사용하기에는 작은 크기일 경우에 조각난 공간이 발생한다.

- 미사용 공간 (한번도 사용된 적이 없음) : 데이터 파일 생성 시에 초기 포맷된 공간으로, 테이블 스페이스의 데이터 증가할 때 데이터 파일의 여유 공간을 사용하여 세그먼트에 익스텐트를 할당하게 된다.

 

Control Files : Database 의 물리적 구조와 상태를 기록하는 파일

 

 

 

Redo Log FIles : 복구를 위해 데이터베이스에서 변경된 모든 것들을 기록하는 파일

 

-  Online Redo Log Files 

   --- 

   --- 

   --- 

   --- 

-  Multiplexed Redo Log Files

   --- 

   --- 

   --- 

   --- 

-  Archived Redo Log Files

   --- 

   --- 

   --- 

   --- 

 

 

세그먼트!

 

 

 

Undo 세그먼트 

 

언두 데이터는 트랜잭션 기록을 보관하며, 다음의 경우에 사용된다. 

- 트랜잭션 롤백 / - 트랜잭션 복구 / - 읽기 일관성 작업 / - 플래시백 작업

 

플래시백 작업이 가능한대, 이를 수행할 수 있는 쿼리가 존재한다. 특정 시간의 테이블 데이터로 돌릴 수 있는데, 그게 UNDO Data 이다. 항상 가능하지는 않고, Undo Data는 없어진다. expire 되는 시간이 있다. 

 

언두가 되는 데에는 조건이 있다. 지워도 되는 조건이면 지운다.

UNDO_RETENTION 이라는, 커밋 언두 데이터의 보존하는 기간을 설정하는 파라미터가 있다. 커밋을 하고 900초 (15분)으로, 해당 언두 익스텐트의 데이터 보장. 이 시간이 지난 익스텐트는 진행중인 트랜잭션을 위해 재 할당될 수 있다. RETENTION 기간 이내인 경우 익스텐트는 재활용 될 수 없음.

* retention : 보유, 유지

 


* 트랜잭션 제어 (TCL)

 

 

명령어 핵심 설명
커밋   COMMIT 트랜잭션 확정 트랜잭션을 메모리에 영구적으로 저장하는 명령어
롤백   ROLLBACK 트랜잭션 취소 트랜잭션 내역을 저장 무효화시키는 명령어
체크포인트   CHECKPOINT 저장시기 설정 ROLLBACK을 위한 시점을 지정하는 명령어

테이블 스페이스 : 세그먼트를 저정하는 논리 저장소, 한 개 이상의 데이터 파일이나 임시 파일을 이용하여 데이터를 저장한다.

 

 

 

 

 


 

728x90
반응형

'TABA > Tibero' 카테고리의 다른 글

October 6th Backup  (0) 2022.10.06
Tibero DBMS 구조 관련 용어 정리  (1) 2022.10.03
TABA Sep 26th (1) - About Tmax Tibero  (0) 2022.09.26
728x90
반응형

About Tmax Tibero

 

https://www.tmaxtibero.com/main.do

 

티맥스티베로 TmaxTibero

국산 DBMS의 자존심, 데이터베이스 관리 시스템 전문기업 티맥스티베로

www.tmaxtibero.com

 

https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20140808-000002/tibero_admin/about.html

 

안내서에 대하여

안내서의 대상 본 안내서는 Tibero®(이하 Tibero)를 사용하여 데이터베이스를 생성하고 원활한 Tibero의 동작을 보장하려는 데이터베이스 관리자(Database Administrator, 이하 DBA)를 대상으로 기술한다. 안

technet.tmaxsoft.com

 

 

DB서버 장비를 별도로 갖춰서 사용하는게 일반적, (IBM, DELL, HP 등 여러 종류의 서버 장비들) 그런 서버 장비를 구매해서 DB 소프트웨어를 설치해서 DB 서비스 용도로만 사용하는데,

티비 부트, 티비 다운으로 실행

티베로 인스턴스는 기본적으로 어떻게 사용하냐면, 티베로 바이너리가 설치가 되어있어야한다. 그리고는 티베로 인스턴스가 시작이 된다. 인스턴스가 존재하는 이유는, 데이터베이스를 관리하기 위해서이다.

데이터베이스가 관리하는게 인스턴스의 역할이고, 데이터가 담긴 파일들이 있는 곳데이터베이스이다. 

데이터베이스는 한 개이고, 인스턴스는 여러 개이다

데이터베이스는 확장이 된다 하더라도 한개이고, 인스턴스와 데이터베이스는 1대1 구조를 기본 원칙으로 한다. (1대N 관계)

인스턴스가 여러개 모여있면 클러스터 구조가 된다. TAC (Tibero Active Cluster)

티베로 바이너리 파일 : ?

 

뒤에 언급될 내용 : 데이터베이스, 그리고 인스턴스에 대한 구조에 초점을 맞춰서 설명이 진행이 된다

 

 

Tmax Tibero RDBMS 구조

- 모니터링 프로세스

- 관리자 프로세스

- 작업 프로세스

- 리스너

- 공유 메모리

- 백그라운드 프로세스

- 스토리지 (가상화 스토리지)

 

 

Tibero 가 이해하는 언어는 SQL 이다. 

작업 프로세스 하나에는 쓰레드가 열개가 들어있다. 프로세스가 1,000개면 쓰레드는 10,000개가 들어있다고 할 수 있다. 여러개의 회선이 존재한다. 그래서 사용자들이 다양한 요청을 할 수 있다. 여러명이 사용자가 있기 때문에, 여러개의 회선이 존재할 것이고 그 끝에는 여러개의 쓰레드가 존재할텐데, 동시에 같은 데이터를 처리해달라고 요청을 받는 경우가 있을 것이다. 

 

 


인스턴스 : OOP에서 인스턴스는, 해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다.

여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다. OOP에서 객체는 클래스와 인스턴스를 포함한 개념이다.

 

출처 : 인스턴스 (컴퓨터 과학) - 위키백과, 우리 모두의 백과사전 (wikipedia.org)


 

사용자의 요청을 받아서 처리를 해주는 것이 인스턴스의 역할이다. 티베로 인스턴스와 연결하는 역할을 하는 것이 리스너(Listener) 이다.

 

pg7. Tibero 프로세스 구조 -  대규모 사용자 접속을 수용하는 다중 프로세스 및 다중 스레드 기반의 아키텍쳐 구조


접속 요청이 이루어지는 과정

1단계 : 리스너에서 클라이언트에 대한 연결 요청을 받는다.

2단게 : LIstener에서 비어있는 WTHR 프로세스를 찾아서 접속 요청을 CHTR에게 넘겨준다

* WTHR : Worker THReads / CTHR : Control THRead

3단계 : 요청받은 CTHR은 자기 자신의 WTHR의 상태를 체크해서 놀고있는 곳에 할당한다.

4단계 : 할당받은 스레드와 클라이언트와의 연결을 다시 하는 과정인데, 유저명을 확인하는 과정이 이루어진다. 데이터가 테이블에 들어있는지를 확인한다.

 

CTHR : 

- 각 working process 마다 하나씩 생성. 서버 시작 시에 지정된 개수의 워커 쓰레드를 생성

- 시그널 처리를 담당하기도 하고, I/O Multiplexing을 지원하며, 필요한 경우 워커 쓰레드 대신 메시지 송/수신 역할을 수행한다.

WTHR : 

- 각 워커 프로세스마다 여러개 생성.

- 클라이언트가 보내는 메시지를 받아 처리하고 그 결과를 리턴한다.

- SQL Parsing, 최적화, 수행 등 DBMS가 해야하는 대부분의 일을 처리한다.

 

데이터베이스 파일들은 설치할때 만들어놓고 계속 사용한다.

데이터 베이스에 이름을 부여하게 되어있는데, 그이름은 티베로에 접속하는 사용자도 알고 있어야하는 정보다. IP포트, DB name,  접속정보에는 유저명과 패스워드 (데이터베이스에 정의되어있어야함), 

 

Background Processes

 

감시 프로세스 (MONP : monitor process) :  티베로 가동 시 최로로 생성되고, 종료시에도 마지막으로 종료가 된다. 리스터를 포함한 다른 프로세스를 생성하고, 주기적으로 각 프로세스 상태를 점검한다

Deadlock도 검사한다

매니저 프로세스(MGWP) : 시스템 관리 용도 프로세스로, 관리자의 접속 요청을 받아 관리 용도로 예약된 워커 스레드에 접속을 할당한다.

리스닝을 직접 한다.

에이전트 프로세스 (AGNT) : 시스템 유지를 위해 주기적으로 처리해야하는 티베로 내부의 작업을 담당한다. 

 

데이터베이스 쓰기 프로세스 (DBWR) : 데이터베이스에서 변경된 내용을 디스크에 기록하는 일과 연관된 스레드들이 모여있는 프로세스. 사용자가 변경한 플록을 디스크에 주기적으로 기록한다. Redo 로그를 디스크에 기록하는 스레드도 포함이 되어있고, 두 스레드를 통해 데이터베이스의 체크포인트 과정을 관할하는 체크포인트 스레드도 포함이 되어있다.

 

복구 프로세스 (RCWP) : 복구전용 프로세스이고, Crash / Instance Recovery를 수행한다.

 

 

Tibero Memory

 

Tibero Shared Memory (TSM)

- 인스턴스에 대한 데이터와 제어 정보를 가지는 공유 메모리 영역

- 사용자가 동시에 데이터를 공유

- Database Buffer, Redo Log Buffer, SQL Cache, Data Dictionary Cache 로 구성됨

- Background Process 는 인스턴스가 시작될 떄 TSM 영역을 할당하고, 인스턴스가 종료하면 할당 해제

- TSM 의 전체 크기는 인스턴스가 시작될 때 생성되어 고정

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

728x90
반응형

'TABA > Tibero' 카테고리의 다른 글

October 6th Backup  (0) 2022.10.06
Tibero DBMS 구조 관련 용어 정리  (1) 2022.10.03
TABA Sep 26th (2) - Tibero Database 저장구조  (0) 2022.09.26
728x90
반응형

Lock Programming

- Shared Resource

- Critical Section 

 

 

멀티스레드 + 락 예제

 

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <assert.h>
#include <pthread.h>

int count = 0;
int nthread = 1;
int worker_loop_cnt = 1;

pthread_mutex_t lock;

static void *work(void* num) {
	int number = (int) num;
    
    pthread_mutex_lock(&lock); //lock
    
    for (int i = 0; i<worker_loop_cnt; i++)
    	count++;
    
    printf("Thread number %d : %d \n", number, count);
    
    pthread_mutex_unlock(&lock); //unlock
    
    return NULL;
}

int main(int argv, char *argv[]) {
	pthread_t *th;
    void *value;
    long i;
    
    if (argc<3) {
    	fprintf(stderr, "%sparameter : nthread, worker_loop_cnt \n", argv[0]);
        exit(-1);
    }
    
    nthread = atoi(argv[1]);
    worker_loop_cnt = atoi(argv[2]);
    
    th = malloc(sizeof(pthread_t) * nthread);
    
    pthread_mutex_init(&lock, NULL); // initialize the lock
    
    for (i=0; i<nthread; i++) {
    	assert(pthread_create(&th[i], NULL, work, (void*) i) == 0);
    }
    for (i=0; i<nthread; i++) {
    	assert(pthread_join(th[i], &value) == 0);
    }
    
    printf("Complete \n");
}

 


 

728x90
반응형

'TABA > OS' 카테고리의 다른 글

컨테이너를 사용하는 이유 (서버 가상화, 하이퍼바이저)  (0) 2022.11.08
TABA Sep 19th - OS 실습 1  (0) 2022.09.20
728x90
반응형

* 본 내용은 Tmax AI & Big Data Academy, 단국대학교 유시환 교수님과 최건희 연구원님의 OS for Database systems 수업을 바탕으로 작성하였습니다.

 

오늘의 목표 :

 

 

 

위치는 home에 저장을 한다. 터미널 명령창에 'cd' 혹은 ' cd ~'를 입력하면, 기본 home 디렉토리로 이동을 하게 된다.

 

.vimrc 

 

vimrc는 기본적으로 내가 사용할 환경설정을 해주는 파일이다

 

 

리눅스는 모든 장치를 파일로서 관리한다.

 

 

ctrl + c 

포 그라운드 작업? 쉘은 작업을 계속 기다린다

 

 

 

source + 파일명

 

 

 

 


 

728x90
반응형

'TABA > OS' 카테고리의 다른 글

컨테이너를 사용하는 이유 (서버 가상화, 하이퍼바이저)  (0) 2022.11.08
TABA Sep 20th - OS 실습 2  (0) 2022.09.20
728x90
반응형

* 본 내용은 Tmax AI & Big Data Academy 최상일 교수님 연세대학교 인공지능학과 여진영 교수님 수업을 바탕으로 작성하였습니다

 

 

 

Natural Language Processing NLP 자연어 처리 

 

Artificual Intelligence > Machine Learning > Deep Learning

 

 

Machine Learning 의 형식적인 정의

 

 

Neuron 뉴런 :

- dendrite 는 다른 세포로부터 입력 정보를 받는다.

- axon 은 다른 뉴런으로의 전기적인 메시지를 보낸다.

 

이 뉴런을 인공적으로 만든 단위가 퍼셉트론이다.

 

 

 

Loss Optimization

 

x에서 y로 매핑을 할 때에, Weight 값을 설정하게 되는데, 각각의 레이어에서 넘어갈 때에 손실이 발생하게 된다. 그 손실을 가장 작게 만드는 W값을 찾는 과정이 Loss Optimization이다.

 

 

 

 

Overfitting

 

https://www.investopedia.com/terms/o/overfitting.asp#:~:text=What%20Is%20Overfitting%3F,to%20any%20other%20data%20sets.

 

How Overfitting Works

Overfitting is a modeling error that occurs when a function is too closely fit to a limited set of data points.

www.investopedia.com

 

 

 

 

Regularization 정규화

 

 

RNN : Recurrent Neural Networks

 

Vanilla NN X Sequential Data

 

평균은 그렇게 좋은 것은 아니다. 가령 유튜브의 영상 추천 서비스를 생각해보면, 유튜브에서 추천해주는 영상은 나의 취향을 고려해서 추천을 해주지만, 만약에 어떤 사람의 취향이 바뀌더라도 나의 평균적인 취향은 기존의 취향에 더 가까울 것이기 떄문에, 새로운 취향에 대한 영상을 추천해주지 않을 것이다.

 


<예문>

앇 날씫돇 좋은덳 놁럯갃곣 싶닧 (아 날씨도 좋은데 놀러가고 싶다)

엯긳는 절댃롟 들얷갃짃맋섻욗 (여기는 절대로 들어가지 마세요)

 

위와 같은 예문이 존재한다고 했을 때, 우리나라 사람이라면 웬만하면 읽으면서 대충 이해를 하겠지만, 한국어를 청므 배우는 외국인은 이를 이해하기 쉽지 않을 것이다.

 


https://wikidocs.net/22886

 

1) 순환 신경망(Recurrent Neural Network, RNN)

RNN(Recurrent Neural Network)은 입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델입니다. 번역기를 생각해보면 입력은 번역하고자 하는 ...

wikidocs.net

 

RNN

 

 

 

RNN for Sentiment Classification 

 

 

 

LSTM Long Short Term Memory 

 

 

 

 

 

 

 


 

After Lunchtime

 

Text Classification 

 

.

 

 

 

 

.

 

 


 

728x90
반응형

'TABA > AI' 카테고리의 다른 글

Kaggle COVID 19 Classification  (0) 2022.12.12
TABA Sep 15th  (0) 2022.09.16
TABA Sep 14th  (0) 2022.09.15
TABA Sep 13th  (1) 2022.09.13
728x90
반응형

* 본 내용은 Tmax AI & Big Data Academy 최상일 교수님의 수업을 바탕으로 작성하였습니다

 

 

 

Task 종류 (supervised)

 

 

 

Task (unsupervised)

 

GAN / Image- to-Image Translation / Clustering

 

 

딥러닝은 Representaion Learning 이라고도 한다. 데이터를 잘 표현할 수 있는 학습을 딥러닝이라고 할 수 있다.

Feature Learning : 특징을 잘 찾아서 그것들을 구분하는 것.

 

Task : Draw a line to separate the green trianbles and blue circles, / Draw a line to separate the blue curve and red curve.

 

Image Detection based on Deep Learning

 

Single Object / Classification , Classification + Localization

Multiple Objects / Object Detection , Instance Segmentation

 

 

 

 

 

 

 

 

 

 


 

728x90
반응형

'TABA > AI' 카테고리의 다른 글

Kaggle COVID 19 Classification  (0) 2022.12.12
TABA Sep 16th  (0) 2022.09.16
TABA Sep 14th  (0) 2022.09.15
TABA Sep 13th  (1) 2022.09.13

+ Recent posts