Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

numPage的大小计算 #8

Open
AllenWrong opened this issue Jan 8, 2021 · 11 comments
Open

numPage的大小计算 #8

AllenWrong opened this issue Jan 8, 2021 · 11 comments

Comments

@AllenWrong
Copy link

(int) (file.length / pagesize)的话,不就向下取整了吗。这不就把文件最后不足一页大小的数据忽略了吗?还是应该把这些记为一页呢

@adiamoe
Copy link
Collaborator

adiamoe commented Feb 16, 2021

文件是以页的形式储存在磁盘中,大小必然是页大小的整数倍。比如某一文件的页刚好全满,又要添加新的数据,那么是在磁盘中开辟一个新的页储存新数据,如果新数据只占用了页的一小部分,多的空间依然保留着等待其他数据的添加。这里的file.length是指文件的容量/空间,而不是实际大小。

@JackTan25
Copy link

请问有必要使用管网上说的虚拟机吗(而且那个站点好像已经挂了),我这边是直接用的IDEA,Windows10,JDK8可以吗

@JackTan25
Copy link

就是这个网站 http://beta.saasbook.info/bookware-vm-instructions ,课程主页说让我们在这个链接里面找虚拟机镜像,可是这里打不开了

@AllenWrong
Copy link
Author

就是这个网站 http://beta.saasbook.info/bookware-vm-instructions ,课程主页说让我们在这个链接里面找虚拟机镜像,可是这里打不开了

没必要,我用的win10+eclipse+jdk8

@AllenWrong
Copy link
Author

AllenWrong commented Apr 18, 2021

好的,那请问您是直接下载了他的代码然后自己写的吗,那我是不是在学习自己做的时候应该先把网站上的代码下载下来,然后遇到问题在参照您的来看会更好呢??

MIT的课程网站,lab是相同的。http://db.lcs.mit.edu/6.830/sched.php
Github仓库:https://github.com/MIT-DB-Class 建议看18年的指导,21年的也可以,都是一样的。实现的模块不一样多
代码:https://github.com/MIT-DB-Class/simple-db-hw 包括所有的模块

@JackTan25
Copy link

JackTan25 commented May 19, 2021

请问在实现Join操作的时候是在哪里有Join写的那几种方法的测试效率的??因为那个数据量太小了,不知道作者在实现时是怎么去判断执行效率的?执行后貌似并没有感觉到NLJ,BNLJ,DoubleBlockNestedJoin的执行上从测试时间上看不出差异来?

@adiamoe
Copy link
Collaborator

adiamoe commented May 19, 2021

请问在实现Join操作的时候是在哪里有Join写的那几种方法的测试效率的??因为那个数据量太小了,不知道作者在实现时是怎么去判断执行效率的?执行后貌似并没有感觉到NLJ,BNLJ,DoubleBlockNestedJoin的执行上从测试时间上看不出差异来?

这几个方法都是建立在要多次读写磁盘的背景上进行的优化,数据量小的时候数据都在内存中确实没有多大区别,因为磁盘IO才是数据访问中耗时最多的步骤,有关这部分可以看CMU 15-445的 join 部分,除了这几种方法还讲到了sorted join 和 hash join,分析了不同方法的耗时

@JackTan25
Copy link

a
请问为什么这里在插入之前就把页写入到硬盘了呢(我觉得应该先把tuple写到新page里再写到硬盘)??还有向硬盘写入不应该借助BufferPool吗,这里怎么直接用了呢??

@adiamoe
Copy link
Collaborator

adiamoe commented May 21, 2021 via email

@adiamoe
Copy link
Collaborator

adiamoe commented May 21, 2021 via email

@adiamoe
Copy link
Collaborator

adiamoe commented May 21, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants