본문 바로가기

컴퓨터7

[번역] Anti-Caching: A New Approach to Database Management System Architecture Anti-Caching: A New Approach to Database Management System Architecture Justin DeBrabant, Andrew Pavlo, Stephen Tu 원문 ABSTRACT 디스크 기반 관계형 데이터베이스 관리 시스템(DBMS)을 구축하는 전통적인 방법은 메인 메모리 블록 캐시와 함께 디스크에 저장된 고도로 인코딩된 블록으로 데이터를 구성하는 것입니다. 이러한 시스템은 높은 디스크 대기 시간을 고려하여 성능을 개선하기 위해 여러 트랜잭션이 동시에 데이터베이스에 액세스할 수 있는 동적 레코드 수준 잠금 기능을 갖춘 다중 스레드 아키텍처를 사용합니다. 이전 연구에 따르면 이로 인해 온라인 트랜잭션 처리(OLTP) 애플리케이션에 상당한 오버헤드가 발생하는 .. 2023. 8. 15.
Journaling 파일 시스템에는 Journaling 이라는 모드가 존재한다. 먼저, 기술적인 이야기를 하기 전에 단어를 보며 어떤 것을 하려는지 유추해보자. Journey 는 여정이란 뜻을 갖고 있는데, 여정 가운데 발생한 수많은 변화, 반응에 대해 기록하는 것을 Journaling 이라고 한다. 파일 시스템에는 계속해서 읽기 및 쓰기 작업이 발생할텐데, 파일 시스템에 변화를 일으키는 쓰기 작업에 대한 변화들을 기록하는 것을 Journaling 모드라고 한다. 변화를 모두 저장하는 만큼 쓰기 작업에 대한 리소스가 더욱 많이 들지만, 시스템 충돌 및 비정상적 작동으로 인한 종료가 발생하게 됐을 때 작업하고 있던 내용에 대한 복구가 쉬워진다. 이 장점은 작업하던 내용의 용량이 클 때 더욱 부각된다. 보통 스토리지에 실제 쓰.. 2023. 8. 13.
CPU 캐시를 고려한 최적화 사례 Repeat(s string, count int) string strings.Repeat("hi", 5) --> "hihihihihi" Golang 기본 라이브러리 strings의 Repeat 메서드는 넘긴 s 문자열을 count 번 반복하고, 그 문자열을 리턴하는 메서드다. 최적화 전 기존 코드를 먼저 보자. func Repeat(s string, count int) string { if count == 0 { return "" } // Since we cannot return an error on overflow, // we should panic if the repeat will generate // an overflow. // See Issue golang.org/issue/16237 if cou.. 2023. 5. 23.
[Go] 메모리 할당 위치 해당 글의 대부분은 https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast 글을 번역한 내용입니다. 링크의 글은 'Go를 빠르게 만드는 5가지'라는 주제로 여러 예시와 함께 잘 정리되어 있습니다. Most of this article is a translation of an article from 'https://dave.cheney.net/2014/06/07/five-things-that-make-go-fast'. The article at the link is called "5 things that make Go fast" and is well organized with lots of examples. This post is not mone.. 2023. 4. 11.
[번역] An O(1) algorithm for implementing the LFU cache eviction scheme An O(1) algorithm for implementing the LFU cache eviction scheme Prof. Ketan Shah, Anirban Mitra, Dhruv Matani August 16, 2010 원문 (참고): Go 구현 Abstract 캐시 제거 알고리즘은 애플리케이션에서 사용하는 데이터를 캐싱하여 실행 속도를 높이기 위해 캐시를 사용하는 운영 체제, 데이터베이스 및 기타 시스템에서 널리 사용됩니다. 다음과 같은 많은 정책이 있습니다. MRU(가장 최근 사용), MFU(가장 자주 사용), LRU(가장 최근 사용), LFU(가장 적게 사용) 등 다양한 정책이 있으며, 각각 장단점이 있으므로 특정 시나리오에 따라 사용됩니다. 지금까지 가장 널리 사용되는 알고리즘은 O(1)의.. 2023. 3. 11.
[번역] TIME_WAIT Coping with the TCP TIME-WAIT state on busy Linux servers Vincent Bernat 2014. 2. 25. The license CC BY-NC-SA 3.0 원문 Linux 4.12 이후에는 더 이상 존재하지 않는 net.ipv4.tcp_tw_recycle 을 활성화하지 마세요. 대부분의 경우 TIME_WAIT 소켓은 무해합니다. 그렇지 않은 경우 권장 솔루션에 대한 요약으로 이동하세요. Linux 커널 문서는 net.ipv4.tcp_tw_recycle 및 net.ipv4.tcp_tw_reuse의 기능에 대해 그다지 도움이 되지 않습니다. 이러한 문서 부족으로 인해 수많은 튜닝 가이드에서 이 두 설정을 모두 1로 설정하여 TIME-WAIT 상태의 항목 수를 .. 2023. 3. 6.