개요 데이터 엔지니어와 백엔드 개발자들이 자주 다루는 Apache Parquet 포맷은 일반적인 텍스트 데이터를 zip으로 압축한 것보다 훨씬 빠른 쿼리 성능을 보여준다. 이번 포스트에서는 Parquet가 왜 그렇게 빠른지, 열 지향(columnar) 구조가 어떤 원리로 쿼리 성능을 높이는지, 그리고 Parquet에서 사용되는 주요 압축 및 인코딩 기법들을 살펴보자. 또한 Trino, Spark, Hive 같은 분산 쿼리 엔진이 Parquet 데이터를 효율적으로 읽는 방법과, 일반 zip 압축 파일과 열 지향 압축 방식의 성능 차이도 비교해보자. Parquet가 일반 Zip 압축보다 빠른 이유일반적인 zip 등의 파일 압축은 모든 데이터를 통째로 묶어 압축하는 반면, Parquet 포맷은 열 단위로 데이..
개요 트랜잭션이 동시에 실행될 때 발생할 수 있는 다양한 문제를 해결하기 위해 스케줄링 기법이 활용된다. (RDB) 트랜젝션이 동시에 실행될 때 isolation을 보장하는 기본 이론 (feat: schedule, serializability)개요현대의 데이터베이스 시스템은 다수의 사용자가 동시에 다양한 트랜잭션을 실행함에 따라 높은 성능과 일관성을 유지하는 것이 필수적이다. 이러한 환경에서 트랜잭션의 동시 실행은 시스wise-dev-seop.tistory.com 이 중에서도 Recoverability Schedule은 시스템 장애 발생 시 트랜잭션의 복구 가능성을 보장하기 위한 중요한 개념이다. 본 글에서는 Recoverability Schedule의 개념과 관련된 다양한 유형들에 대해 알아보고자 ..
개요현대의 데이터베이스 시스템은 다수의 사용자가 동시에 다양한 트랜잭션을 실행함에 따라 높은 성능과 일관성을 유지하는 것이 필수적이다. 이러한 환경에서 트랜잭션의 동시 실행은 시스템 자원의 효율적 활용을 가능하게 하지만, 동시에 데이터 일관성 및 무결성을 위협할 수 있는 여러 문제를 야기할 수 있다. 특히, 트랜잭션 간의 상호 간섭으로 인해 발생하는 일관성 오류는 데이터베이스 관리 시스템(DBMS)의 신뢰성을 저해할 수 있다.이러한 문제를 해결하기 위해 트랜잭션의 격리성(Isolation)을 보장하는 것이 중요하며, 이를 위해 스케줄(Schedule)과 직렬 가능성(Serializability)이라는 기본 이론이 핵심적인 역할을 한다. 내용Schedule이란? 스케줄이란 여러 transactional들이..