Skip to content

ActivePeter/learn_cmu15_445

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

之前在做pingcap talent plan 的 lab5,发现一个关于数据库何时返回结果的问题(写入内存后就返回还是持久化到磁盘后返回) 然后问了下群佬(冰冰的小冰),便让来学习cmu15_445的lab了

project0 是简单地cpp操作,矩阵运算细心点看就行了,比如row,col-》对应的下标就是rowi*col+coli

project1-1 LRU REPLACEMENT POLICY 实现lru replacer

  • pin表示线程在使用,所以不能被回收,所以从中移出
  • unpin表示最近使用完,加入队列
  • 有新的要加入,或者扫描触发,Victim移出最旧的,

project1-2 BufferPoil

  • Page Object (容器,装从硬盘加载出的数据)
    • page_id 代表哪一个物理page
    • 无指向 INVALID_PAGE_ID
    • pin了这个page的thread的计数(pin了就不能free)
    • 是否dirty

project1-3 Parrallel

  • 单个mananger会导致多个访问时,过度竞争锁,所以把page的管理分散到多个manager里,每次新申请page,都从新的manager偏移开始尝试申请page,以分散page在managers中的分布

Releases

No releases published

Packages

No packages published