[Daily Post] 221102
[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)
Daily Study
UNIX
운영 체제의 종류. 벨 연구소에서 개발되었으며, macOS도 Unix OS에 해당한다. Linux도 Unix-like OS로 분류된다.
POSIX
Portable Operating System Interface (이식 가능 운영 체제 인터페이스)
- IEEE Computer Society에서 OS 간의 호환성 보존을 위해 지정하고 있는 기술 규격의 하나.
- system 레벨과 user 레벨에서의 API를 shell을 바탕으로 기술한다.
- 기존의 UNIX도 standard로서의 역할을 잘 수행하고 있었지만, 너무 다양한 버전의 UNIX가 나타나면서 OS를 통합할 기준이 필요했고, 그래서 마련된 것이 POSIX다.
- 그래서 POSIX는 UNIX-like한 OS이다.
- 사용자 command line은 UNIX의 System V shell를 기반으로 하고 있다.
- 구체적으로는 C언어의 system call, process, file, directory, system DB, tar compression과 같은 분야에 대한 규격을 제공한다.
POSIX 요약: UNIX 베이스의 OS interface.
LINUX
1991년 / 리누스 토르발스 / 운영체제.
임베디드부터 슈퍼컴퓨터까지 안 들어가는 곳이 없다. OS나 시스템 프로그래밍 공부할 때 Linux에서는 어떻게 다루는지를 비교해가면서 공부하면 좋을 것 같다.
오늘의 시행착오
- 컴퓨터 네트워크 중간고사에 임하는 자세가 시행착오였다. 기말 열심히 해야지.
- RocksDB / MySQL data directory 관리
- DB 수업 프로젝트를 진행하다가 궁금한 점이 생겼다. 그 내용은 다음과 같았다.
- Q1. MySQL과 RocksDB에 대한 벤치마킹을 실행할 때 두 벤치마킹 모두 하나의 폴더를 data directory로 지정했는데, 둘 다 정상적으로 실행됐다. 다른 DBMS에 대해 같은 폴더를 줬는데 이렇게 되는 이유는?
- Q2. RocksDB는 data-load를 따로 하지 않았는데 진행이 됐다. RocksDB를 설치하면서 DB도 같이 설치된 것이라면 폴더 경로를 내 마음대로 했음에도 불구하고 벤치마킹이 정상적으로 실행된 이유는 무엇인가?
- Q3. DBMS-benchmark의 관계, DBMS-DB의 관계를 잘 이해하지 못한 것 같다.
- 그래서 조교님께 여쭤봤는데, 다소 추상적인 질문이었음에도 너무 체계적으로 잘 답변해주셨다. Q1~3에 대한 답변을 간략하게 정리하면 다음과 같다.
- 일단 DBMS도 결국 시스템이다. 시스템을 필요로 하는 환경은 다양하다. DBMS의 경우 DB를 다루는 시스템이다. DB는 시스템에 따라 테이블 형태의 스키마, 키-값 밸류의 쌍과 같은 형태로 존재한다.
- 그래서 하나의 벤치마킹 툴이 모든 DBMS를 평가할 수는 없다. MySQL는 tpc-c로 벤치마킹하지만 RocksDB는 자체 DB_bench로 벤치마킹하는 것도 각각 DB의 형태가 다르기 때문이다. MySQL과 RocksDB를 비교할 수 있게 하는 MyRocks라는 존재하기는 한다.
- 위의 정보를 전제로, DB를 잘 알려면 다음과 같은 지표를 알고 있어야 한다.
- DBMS의 성능. tpmc
- DBMS의 DB durability: Log recovery, buffer management
- 이 DBMS는 어떤 형태의 DB를 다룰 수 있다
+ 성능은 주로 이렇게 결정된다
+ 이 DBMS는 log를 이런 방법을 통해 만든다
+ 이 DBMS의 buffer structure와 이를 관리하는 알고리즘은 이렇다
위와 같은 구조적 이해가 필요하다 (라고 말씀해주셨다)
- 항상 궁금했던 부분인데, 답변을 들으니까 어려웠던 부분에 대해 조금 더 잘 이해할 수 있었다. 질문하고 볼 일이다.
- DB 수업 프로젝트를 진행하다가 궁금한 점이 생겼다. 그 내용은 다음과 같았다.