MCPcopy Create free account
hub / github.com/1345414527/MIT6.830 / writePage

Method writePage

src/java/simpledb/index/BTreeFile.java:144–158  ·  view source on GitHub ↗

Write a page to disk. This should not be called directly but should be called from the BufferPool when pages are flushed to disk @param page - the page to write to disk

(Page page)

Source from the content-addressed store, hash-verified

142 * @param page - the page to write to disk
143 */
144 public void writePage(Page page) throws IOException {
145 BTreePageId id = (BTreePageId) page.getId();
146
147 byte[] data = page.getPageData();
148 RandomAccessFile rf = new RandomAccessFile(f, "rw");
149 if(id.pgcateg() == BTreePageId.ROOT_PTR) {
150 rf.write(data);
151 rf.close();
152 }
153 else {
154 rf.seek(BTreeRootPtrPage.getPageSize() + (long) (page.getId().getPageNumber() - 1) * BufferPool.getPageSize());
155 rf.write(data);
156 rf.close();
157 }
158 }
159
160 /**
161 * Returns the number of pages in this BTreeFile.

Callers 1

convertMethod · 0.95

Calls 7

pgcategMethod · 0.95
getPageSizeMethod · 0.95
getPageSizeMethod · 0.95
getIdMethod · 0.65
getPageDataMethod · 0.65
closeMethod · 0.65
getPageNumberMethod · 0.65

Tested by

no test coverage detected