2024/01/095 [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. [CMU 15-445 Intro to DB Sys] Lec09 Index Concurrency Concurrency Control to ensure "correct" results for concurrent operations on a shared object logical correctness: 읽어야 하는 값을 잘 읽어온다는 의미 physical correctness: object의 internal representation이 제대로 되어 있다는 의미 Locks vs. Latches Locks(Transactions): high-level에서 db의 Logical contents를 다른 transaction들로부터 보호함. deadlock이 생기면 rollback할 수 있어야 함. latches(workers): low-level에서 DBMS의 internal data structure가 있는.. 2024. 1. 9. [UCB CS61C] Lec10 RISC-V Memory and Calling Conventions Machine Program Program Counter는 processor 내에 위치하는 레지스터로서, 다음 instruction의 byte address를 보관함. 보통은 다음 instruction을 찾기 위해 4 bytes를 더한다. 32개의 레지스터 중 일부는 symbolic register name을 갖는다. e.g. zero(x0), a0-a7(x10-x17; 즉 argument registers for function calls) pseudo-instructions: 실제 instruction이 아니라 자주 사용되는 것을 ㅈ간단히 표현하는 것임. e.g. (move) mv rd, rs = addi rd, rs, 0, (load immediate) li rd, 13 = addi rd, x0, .. 2024. 1. 9. [UCB CS61C] Lec09 RISC-V Logical Instructions Logical Instructions 항상 2개의 variant가 있다. 하나는 register용(and), 하나는 immediate용(andi)이다. 비트마스크용도로 사용된다. NOT은 존재하지 않는다! 대신에 모든 숫자에 1을 채운 것과 xor을 하여 해결한다. For simplicity! Logical Shifting sll, slli : 몇 bit만큼 왼쪽으로 옮겨준 뒤에 오른쪽에는 0을 삽입해준다. 즉 곱셈을 해준 것과 같은 효과다. 예를 들어서 12로 곱하고 싶다면, 8로 곱해준 결과와 4로 곱해준 결과를 더해주는 식으로 한다.slli x11, x12, 2 # x11 = x 12 >) Arithmetic Shifting sra, srai: 몇 bit만큼 오른쪽으로 옮겨준 뒤에 왼쪽에는 0이 아.. 2024. 1. 9. 이전 1 2 다음