분류 전체보기
-
Python GIL개발 2025. 12. 28. 17:53
CPython파이선 스크립트 엔진중에 가장 메인. 공식 배포판에서도 이걸 쓴다. C 언어로 작성되었고 공식 배포판이다가장 완벽하고 모든 최신 기능을 제공한다커뮤니티가 가장 크고 풍부한 문서를 제공한다터미널에서 python 명령어를 실행하면 CPython 엔진으로 파이선 파일을 실행하게 된다GIL글로벌 인터프리터 락 (Global Interpreter Lock). 쓰레드간에 동시성을 제어하기 위해 사용되는 메커니즘. GIL 은 동시에 하나의 쓰레드만 바이트코드를 실행할 수 있도록 허용하며 메모리 관리와 객체 모델의 일관성을 보장한다 왜 파이썬은 하나의 스레드만 바이트 코드를 실행하게 했는지 궁금할 수 있는데 자세히 들어가면 복잡하니 C 언어 생태계에서 단일스레드 성능을 높이기 위함이였다 정도로 짧게 이해하..
-
넷플릭스가 클릭하우스를 최적화시킨 방법개발/데이터베이스 2025. 11. 18. 19:38
How Netflix optimized its petabyte-scale logging system with ClickHouse“To make our logging system work, we had to make a lot of choices. The key is how you simplify things in order to do the least amount of work.” Daniel Muino, Software Engineerclickhouse.com클릭하우스 공식 블로그를 번역 + 개인적인 의견을 첨가한 포스팅 모든 종류의 로깅 시스템을 압도한다고 말하는데 얼마나 대단하면 이런 말을 할 수 있는 것인가 ㅎㅎ 넷플릭스는 자부심이 대단한듯 Safe to say, this is a scale t..
-
Clickhouse Materialized views개발/데이터베이스 2025. 11. 7. 22:41
테이블에 데이터가 추가될 때마다 특정한 쿼리를 실행하고 결과를 target 테이블에 전송하는 테이블이다. 데이터가 추가될수록 결과가 타겟 테이블에 전송되고 중간 result 는 업데이트되고 병합된다. 병합된 결과는 기존 데이터에 대한 쿼리와 동등하다. target 테이블에 미리 계산된 결과를 전달하고 싶을때 사용하는 테이블이라고 보면됨. 아래 up_down_votes_per_day_mv 테이블은 up_down_votes_per_day 테이블에 일별 데이터를 모아서 전송해주는 역할을 하는 materialized 테이블이다CREATE MATERIALIZED VIEW up_down_votes_per_day_mv TO up_down_votes_per_day ASSELECT toStartOfDay(Creation..
-
Clickhouse Projections개발/데이터베이스 2025. 11. 7. 20:39
Projections Projections | ClickHouse DocsPage describing what projections are, how they can be used to improve query performance, and how they differ from materialized views.clickhouse.com Projection 은 클릭하우스에서 속도를 올리기 위한 기술중 하나다. 실질적으로 Projection 은 기존 테이블에 숨겨진 추가 테이블이라고 볼 수 있다. projection 은 기존 테이블과 행의 순서도 다르고 primary index 도 다르다. 데이터가 들어올 때마다 자동으로 그리고 점진적으로 aggregate values 들을 구해준다 Practically,..
-
Clickhouse Skip Index개발/데이터베이스 2025. 11. 7. 20:33
Understanding ClickHouse Data Skipping Indexes | ClickHouse DocsSkip indexes enable ClickHouse to skip reading significant chunks of data that are guaranteed to have no matching values.clickhouse.com 전통적인 방식에서는 B-tree 구조로 데이터베이스가 행을 log(n) 시간에 찾을 수 있게 했다. 하지만 클릭하우스의 경우 개별 row 가 존재하는게 아니기 때문에 작동하지 않는다. 대신 클릭하우스에선 skip 인덱스라는 걸 사용해서 불필요한 데이터 chunk 를 읽지 않아도 되는 방식을 제공한다. 각 구조마다 Skip 인덱스 표시가 되어 있어서 청크..
-
Clickhouse JSON 칼럼개발/데이터베이스 2025. 10. 27. 17:12
How we built a new powerful JSON data type for ClickHouseWe’re excited to introduce our new and significantly enhanced JSON data type, purpose-built to deliver high-performance handling of JSON data. Our core engineer, Pavel Kruglov, dives into how we built this feature on top of ClickHouse's columnar storage.clickhouse.com공식 블로그 글을 읽고 공부했던 내용을 정리했다Variant Variant 칼럼이란게 있다. 기존 구조에서는 칼럼에는 하나의 데이터..
-
클릭하우스 업데이트 빠르게 만들기개발/데이터베이스 2025. 10. 3. 10:19
클릭하우스 업데이트는 왜 느릴까?How we built fast UPDATEs for the ClickHouse column store – Part 1: Purpose-built enginesClickHouse is a column store, but that doesn’t mean updates are slow. In this post, we explore how purpose-built engines like ReplacingMergeTree deliver fast, effiselfish-developer.com지난 포스트에서 클릭하우스 업데이트가 느린 이유를 설명했고 이번 포스트에서는 업데이트 속도를 올리기 위한 클릭하우스의 트릭(?) 여러가지를 소개함. 이것도 클릭하우스 블로그 글을 읽어보고 중요..
-
클릭하우스 업데이트는 왜 느릴까?개발/데이터베이스 2025. 9. 13. 10:23
How we built fast UPDATEs for the ClickHouse column store – Part 1: Purpose-built enginesClickHouse is a column store, but that doesn’t mean updates are slow. In this post, we explore how purpose-built engines like ReplacingMergeTree deliver fast, efficient UPDATE-like behavior through smart insert semantics.clickhouse.com클릭하우스 블로그 글에서 이론에 관한 부분만 요약해서 정리Row vs Column Store 데이터베이스 Row Store (행 기반..