DevBook
-
[카프카 핵심 가이드] CH6. 카프카 내부 메커니즘 - 물리적 저장소DevBook 2025. 3. 8. 00:04
6.5 물리적 저장소카프카의 기본 저장 단위는 '파티션 레플리카'하나의 파티션은 서로 다른 브로커들 사이에 분리될 수 없고, 같은 브로커의 서로 다른 디스크에 분할 저장될 수 없음따라서 파티션의 크기는 특정 마운트 지점에 사용 가능한 공간의 제한을 받음카프카를 설정할 때 운영자가 파티션들이 저장될 디렉토리 목록을 정의함log.dirs 매개변수에 지정카프카가 사용할 각 마운트 지점별로 하나의 디렉토리를 포함하도록 설정하는 것이 일반적 추가) log.dirs더보기log.dirs카프카는 모든 메시지를 로그 세그먼트(log segment) 단위로 묶어 log.dir 설정에 지정된 디스크 디렉토리에 저장함다수의 디렉토리를 지정하고자 할 때, log.dirs 사용하는 것이 좋음 (log.dirs가 설정되어 있지 않..
-
[컴퓨터 밑바닥의 비밀] 2.7 블로킹과 논블로킹DevBook 2025. 3. 2. 16:11
들어가기 전에동기, 비동기를 이야기할 때 항상 두 가지 대상을 언급한다.프로그래밍에서는 서로 상호 작용하는 모듈 두 개 또는 함수를 의미한다. 1) 동기A와 B 두 대상이 강하게 결합된 것을 의미함위와 같이 작업 A가 작업 B에 의존하는 경우 A와 B는 동기 2) 비동기A와 B가 강한 결합과 같은 제약 없이 각자 자신의 작업을 독립적으로 실행할 수 있는 경우 A와 B는 비동기 더보기동기 방식정의작업이 순차적으로 실행되는 것한 작업이 시작되면 해당 작업이 완료될 때까지 다른 작업은 기다려야 한다.장점간단하고 직관적임단점작업의 완료를 기다려야 하므로 처리 성능에 영향을 줄 수 있음한 작업이 지연되면 다른 작업에도 영향을 줌비동기 방식정의작업이 독립적으로 실행되는 것작업의 완료 여부를 기다리지 않고 다른 작업..
-
[컴퓨터 밑바닥의 비밀] 2.3 스레드 안전 코드DevBook 2025. 3. 1. 23:27
2.3.1 자유와 제약스레드 안전을 달성하는 2가지 조건전용 리소스를 사용하는 스레드는 스레드 안전을 달성할 수 있다.함수의 지역 변수, 스레드 전용 저장소 등공유 리소스를 사용하는 스레드는 다른 스레드에 영향을 주지 않도록 하는 대기 제약 조건에 맞게 공유 리소스를 사용하면 스레드 안정을 달성할 수 있다. 2.3.2 스레드 안전이란 무엇일까?코드가 스레드 몇 개에서 호출되든 이 스레드들이 어떤 순서로 호출되든 간에 상관없이 올바른 결과가 나온다면, 이 코드를 '스레드 안전'이라고 말함스레드의 전용 리소스와 공유 리소스에 어떤 것들이 있는지 파악해야 함 2.3.3 스레드 전용 리소스와 공유 리소스스레드 전용 리소스함수의 지역 변수, 스레드의 스택 영역, 스레드 전용 저장소스레드 공유 리소스 (전용 리소스..
-
[컴퓨터 밑바닥의 비밀] 2.2 스레드 간 공유되는 프로세스 리소스DevBook 2025. 3. 1. 21:35
2.2.1 스레드 전용 리소스상태 변화 관점에서 보면 스레드는 '함수 실행'임함수 실행에는 항상 하나의 시작점이 존재하고, 이 시작점이 진입 함수임CPU는 하나의 진입 함수의 명령어를 실행하여 실행 흐름인 스레드를 생성함 Q. 함수 실행에는 어떤 종류의 정보가 존재할까?함수의 실행 시간 정보는 스택 영역을 구성하는 스택 프레임에 저장됨스택 프레임에는 함수의 반환값, 다른 함수를 호출할 때 전달되는 매개변수, 함수 내에서 사용되는 지역 변수, 레지스터 정보가 저장됨각 스레드는 자신만 사용할 수 있는 스택 영역을 가짐 Q. 스레드 전용 리소스는 어떤 것일까?스레드에 속한 스택 영역, PC 레지스터(프로그램 카운터), 스택 포인터, 함수 실행 시 사용되는 레지스터 정보가 모두 스레드 전용PC 레지스터 : 다음..