본문 바로가기

컴퓨터/데이터베이스9

[CMU 15-445 Intro to DB Sys] Lec13 Query Execution(2) Parellel Execution 같은 HW 자원을 가지고 더 많은 퍼포먼스를 낼 수 있다(higher throughput, lower latency) 시스템의 responsiveness 향상(한 worker가 stall된 동안 다른 worker가 일함에 따라 외부에서 보기에 stall이 적어 보임) lower total cost of ownership(TCO)(HW, SW, labor overhead, energy 등을 아낄 수 있음) Parallel vs. Distributed 어플리케이션이 겉으로 보기에는 모두 single logical database로 보이게 된다. Parallel DBMS에서는 자원들이 physically 서로 가까이 있고, high-speed interconnect로 소통하게.. 2024. 1. 12.
[CMU 15-445 Intro to DB Sys] Lec12 Query Execution(1) Query Processing Models Iterator Model 각 operator는 open(), next(), close() 함수를 갖고 있음. next()를 통해 다음 single tuple을 반환하거나, 더 이상 없을 경우 EOF를 반환함. 일종의 iterator 작동과 동일하다고 생각하면 됨. open(), close()는 C++의 constructor, destructor와 유사한 역할로 생각하면 됨. 우선 쿼리의 윗부분부터 시작해서 아래로 가기까지 operator들을 open해준다. 그리고 next() 함수는 child operator가 반환한 값을 iterate하는 형식으로 되어 있다. root node에서 child에 대해 next()를 호출하면, child는 또 마찬가지로 chil.. 2024. 1. 11.
[CMU 15-445 Intro to DB Sys] Lec11 Join Algorithms Operator Output Data Early Materialization: inner table과 outer table에서 attribute의 값들을 복사하여 새로운 output tuple들로 만들어 줌. 이렇게 하면 이후에 다시 base table로 돌아갈 필요가 없다는 장점이 있음. Late Materialization: join key들과 함께, 해당되는 tuple들의 record ID들만을 복사함. 이는 이후에 다시 base table로 와서 attribute 값들을 찾아야 함. 불필요한 데이터를 복사하지 않기 때문에 column store에 있어서 이상적임. 하지만 이렇게 하면 최종 output을 얻기 전에는 cost가 어느 정도 들지 예상하기 어렵고, 오늘날 storage와 computin.. 2024. 1. 10.
[CMU 15-445 Intro to DB Sys] Lec10 Sorting and Aggregation disk-oriented DBMS에서 buffer pool을 사용하고, i/o를 최소화(즉 sequential i/o를 최대화)하고자 함. Sorting 직접적으로 ORDER BY에 사용하는 경우 이외에도, DISTINCT, GROUP BY, JOIN, bulk loading into B+tree index 등에 사용되기 때문에 sort가 필요함.In-Memory Sorting memory 내에 데이터가 들어온다면 quicksort 등 통상적인 정렬 알고리즘을 사용 가능함. 대부분의 DBMS에서는 퀵소트를 사용함. 만약 memory에 맞지 않는다면 read/write하는 비용을 고려해야 할 것임. Top-N Heap Sort ORDER BY와 LIMIT를 사용한 쿼리에 대해서는 상위 N개만을 찾아내면 됨.. 2024. 1. 9.