GN⁺ 2023-12-16 | parent | ★ favorite | on: 데이터베이스 기초(tontinton.com)
Hacker News 의견
  • 첫 번째 댓글 요약:

    • LSM 기반 데이터베이스의 특성 중 하나는 삭제된 레코드나 톰스톤(tombstone)이 오랫동안 남아 있다는 것임.
    • 최종 레벨에서만 톰스톤을 건너뛰어야 하며, 모든 레벨에서 건너뛰면 안 됨.
    • 그렇지 않으면 상위 레벨의 톰스톤이 제거되어 하위 레벨의 항목이 다시 나타날 수 있음.
    • RocksDB와 같은 데이터베이스는 이 문제를 최적화하여 해결하려고 함.
  • 두 번째 댓글 요약:

    • 분산 시스템을 배우는 것을 피하면 위험할 수 있음.
    • 실제로 모든 비트리비얼(중요하지 않은) 생산 시스템은 분산 시스템임.
    • 데이터베이스가 복제 세트인 경우, 그것은 분산 시스템임.
    • 분산 시스템에 대해 배우고 싶다면 jepsen.io와 raft.github.io를 확인할 것.
  • 세 번째 댓글 요약:

    • 일관성에 대해 데이터베이스 일관성과 애플리케이션 일관성이 있음.
    • 한 테이블에서는 ACID(원자성, 일관성, 격리성, 지속성)를 달성할 수 있지만, 여러 테이블에 걸친 쓰기에서 실패할 수 있음.
    • 여러 테이블을 동시에 업데이트하는 트랜잭션을 다룰 때, 모든 테이블이 동시에 업데이트되거나 전혀 업데이트되지 않아야 함.
  • 네 번째 댓글 요약:

    • 데이터베이스를 구축하는 데 관련된 다양한 개념에 대한 훌륭한 개요를 제공하는 글임.
    • SIMD를 사용하여 단일 기계에서 성능을 끌어올리는 것부터 합의 알고리즘에 이르기까지 다룸.
    • 데이터베이스 신뢰성과 분산 시스템에 적용되는 형식적 방법에 대한 언급이 있음.
    • 아마존 S3 팀이 TLA+를 사용하여 모델링하는 방법에 대한 흥미로운 논문이 있음.
  • 다섯 번째 댓글 요약:

    • 많은 사람들이 SQL을 배워 데이터베이스를 배우지만, B-트리를 이해함으로써 RDBMS의 강점과 약점을 더 잘 이해할 수 있음.
    • 인덱스를 추가하여 데이터베이스를 빠르게 하려고 하지만, 실제로는 문제를 가리는 것에 불과함.
    • 일부 문제는 B-트리에 적합하지만, 많은 문제는 그렇지 않음.
    • SQL은 원격 B-트리 시스템에 대한 쿼리 인터페이스에 불과함.
  • 여섯 번째 댓글 요약:

    • 많은 개발자들이 어느 시점에서 자신만의 작은 데이터베이스를 만들어보는 단계를 거침.
    • 이 과정을 통해 무엇이 작동하지 않는지에 대해 많은 것을 배울 수 있음.
    • 자신만의 데이터베이스를 만드는 것은 기존 솔루션에 대한 존중을 높이는 데 도움이 됨.
    • 디스크로부터 데이터를 빠르고 신뢰성 있게 전송하는 것이 어려운 일임.
  • 일곱 번째 댓글 요약:

    • Bash 버전에서 원자성은 파일을 임시 파일로 복사한 다음 수정하고 sync; mv; sync를 사용하여 달성할 수 있음.
  • 여덟 번째 댓글 요약:

    • 문서 API가 MongoDB와 유사하고, 리더가 없는 복제가 Cassandra와 유사하며, 스레드당 코어 아키텍처가 ScyllaDB와 유사한 매우 멋진 디자인임.
    • 이 모든 것이 Rust로 구현되었음.
  • 아홉 번째 댓글 요약:

    • 'Database Internals'라는 책이 놀라울 정도로 훌륭하며, 내부에 대한 심층적인 탐구를 제공함.
    • 다른 비슷한 책이 있는지 물어봄.
  • 열 번째 댓글 요약:

    • 'Database Design and Implementation'이라는 책도 자바로 작성된 많은 예제와 함께 매우 훌륭한 독서임.
    • 실제 연구를 위해서는 Andy (Pavlo), Viktor Leis, Thorsten Grust, Thomas Neumann 등의 작업을 추천함.