▲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 등의 작업을 추천함.
Hacker News 의견
첫 번째 댓글 요약:
두 번째 댓글 요약:
세 번째 댓글 요약:
네 번째 댓글 요약:
다섯 번째 댓글 요약:
여섯 번째 댓글 요약:
일곱 번째 댓글 요약:
sync; mv; sync를 사용하여 달성할 수 있음.여덟 번째 댓글 요약:
아홉 번째 댓글 요약:
열 번째 댓글 요약: