Thanks for the good videos. I am confused about writing an END log record for an Xact in the 'Committing' state without flushing the dirty pages before it. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-wED22gICTd4.html. I searched the original paper, and the pseudo code shows that: "The only log records that may be written by this routine are end records for transactions that had totally rolled back before system failure, but for whom end records are missing". Is the paper talking about a different version of ARIES?
It's not 100% obvious how sorting and hashing work for duplicate detection. For sorting, see en.wikipedia.org/wiki/Weak_ordering For hashing, suppose we have a bucket with 100 elements in it. Are the elements unique ? Maybe, maybe not. So hashing by itself doesn't completely solve the problem.
Hi, for hashing, i think these elements are not unique, but we can sort it very quickly, guaranteeing duplicate elements are adjacent together, the second phase of video 6 mentions this.
@@zxuhan7 After hashing, we need to remove duplicates from each bucket. If we assume that the bucket size is bounded, then any algorithm is constant time. But we should state that assumption.
@@davidespinosa1910 Yes, maybe video 6 from 5:00 can solve your problem. i think the buckets are not bounded in size, but since we only deal with one partition at a time, we can use in-memory algorithm to sort each bucket chain and make sure duplicate elements are together.
Suppose we hash by gender, as in the earlier video. Then we have three values (M, F, O). This video makes it sound like all men are duplicates of each other, which makes no sense.
When we compare numbers, we have n1 <= n2 and n2 <= n1 implies n1 = n2. But when we compare address records by name, this axiom fails: r1 = "Smith, John, New York" and r2 = "Smith, John, California". To solve this problem, the C++ sort function uses a strict weak ordering: en.wikipedia.org/wiki/Weak_ordering
Because you also need to load the pages in R, so the [R] * [S] part of the equation would be the calculation for the cost of loading S, and the + [R] part the cost for loading R. Together they form the I/O cost for the whole algorithm.