Examples of PageNumber


Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

public class TreeEnumeratorUtils {
    public static void findLeftMostLeaf(TreeEnumerator treeEnumerator, PageNumber root) throws ChaiDBException {

        BTreePage rootPage = new BTreePage(treeEnumerator.getBtree().getBtreeId(), root, treeEnumerator.getBtreeSpec(), treeEnumerator.getBuffer());
        if (rootPage.getPage() == null) {
            treeEnumerator.setCurrentPageNumber(new PageNumber(treeEnumerator.getBtree().getBtreeId(), 0, -1));
            return;
        }

        // unfix the root page
        treeEnumerator.getBuffer().releasePage(treeEnumerator.getBtree().getBtreeId(), root, false);
        BTreePage page = rootPage;
        while (true) {
            if (page.isLeaf()) {
                treeEnumerator.setCurrentPageNumber(new PageNumber(page.pageNumber));
                treeEnumerator.setNextNodeIndex(0);
                break;
            }

            //crabbing lock algorithm: until a new lock is got, old one doesn't be released
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

    protected void initParameter(IBTree bt, BTreeSpec btSpec, PageBufferManager buffer, KernelContext kContext) {
        setBtree(bt);
        setBtreeSpec(btSpec);
        this.setBuffer(buffer);
        setCurrentPageNumber(new PageNumber());
        this.setkContext(kContext);
    }
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

        setCurrentPageNumber(new PageNumber());
        this.setkContext(kContext);
    }

    protected void init() throws ChaiDBException {
        PageNumber root = null;

        root = getFirstSubTreeRoot();
        setVisitedRoot(new Hashtable());
        setEnumId2root(((Id2nodeBTree) getBtree()).id2root.elements());

        if (root == null) {
            setCurrentPageNumber(new PageNumber(getBtree().getBtreeId(), 0, -1));
            return;
        }
        //remember visited root
        getVisitedRoot().put(root, root);
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

                    //if it's special, get the next sub tree root
                    if (getBeForSpecialTree().hasMoreElements()) {
                        ((Id2nodeBTree) getBtree()).indexBTree.acquire(kContext, IDBIndex.READ_MODE);
                        byte[] bRoot = (byte[]) ((Id2nodeBTree) getBtree()).indexBTree.lookup((Key) getBeForSpecialTree().nextElement(), getkContext());
                        ((Id2nodeBTree) getBtree()).indexBTree.release(kContext);
                        PageNumber subroot = new PageNumber(ByteTool.bytesToInt(bRoot, 0, getBtreeSpec().isMsbFirst()));
                        subroot.setTreeId(getBtree().getBtreeId());
                        //remember visited root
                        getVisitedRoot().put(subroot, subroot);
                        TreeEnumeratorUtils.findLeftMostLeaf(this, subroot);
                    } else {
                        //return false;
                        boolean notFound = true;
                        while (getEnumId2root().hasMoreElements()) {
                            PageNumber subroot = (PageNumber) getEnumId2root().nextElement();
                            if (!getVisitedRoot().containsKey(subroot)) {
                                TreeEnumeratorUtils.findLeftMostLeaf(this, subroot);
                                getVisitedRoot().put(subroot, subroot);
                                notFound = false;
                                break;
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

        ((Id2nodeBTree) getBtree()).indexBTree.release(kContext);
        if (getBeForSpecialTree().hasMoreElements()) {
            ((Id2nodeBTree) getBtree()).indexBTree.acquire(kContext, IDBIndex.READ_MODE);
            byte[] bRoot = (byte[]) ((Id2nodeBTree) getBtree()).indexBTree.lookup((Key) getBeForSpecialTree().nextElement(), getkContext());
            ((Id2nodeBTree) getBtree()).indexBTree.release(kContext);
            PageNumber subroot = new PageNumber(ByteTool.bytesToInt(bRoot, 0, getBtreeSpec().isMsbFirst()));
            subroot.setTreeId(getBtree().getBtreeId());
            return subroot;
        }
        return null;
    }
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

        // parameters validate
        if (change.getClass() != PageNumber.class) {
            // bad parameters
            return;
        }
        PageNumber pno = (PageNumber) change;
        if (pno.getTreeId() != treeid) {
            return;
        }
        BitMap bm;
        Integer pageInFile = new Integer(pno.getFileNumber());
        bm = (BitMap) bitMaps.get(pageInFile);
        if (bm == null) {
            bm = new BitMap(INIT_CAP);
            bitMaps.put(pageInFile, bm);
        }
        bm.set(pno.getPageInFile());
    }
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

            int pos[];
            while (it.hasNext()) {
                Map.Entry ent = (Map.Entry) it.next();
                pos = ((BitMap) ent.getValue()).getTruePositions();
                for (int i = 0; i < pos.length; i++) {
                    pnos.add(new PageNumber(treeid, ((Integer) ent.getKey()).intValue(), pos[i]));
                }
            }

            // backup changes
            int size = 0; // counter for snap file to 4k blocks
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

            int data_offset = in.readInt();
            size += 4;
            ArrayList pnos = new ArrayList(count);

            // read page numbers
            PageNumber pn;
            for (int i = 0; i < count; i++) {
                pn = new PageNumber(in.readInt());
                pn.setTreeId(treeid);
                pnos.add(pn);
            }
            size += 4 * count;

            int remain = data_offset - size;
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

     * Default Constructor
     */
    public DataPage(BTreeSpec btreeSpec, PageBufferManager buffer) {
        this.btreeSpec = btreeSpec;
        this.buffer = buffer;
        this.pageNumber = new PageNumber(-1, -1, -1);
        this.prevPage = new PageNumber(-1, -1, -1);
        this.nextPage = new PageNumber(-1, -1, -1);
    }
View Full Code Here

Examples of org.chaidb.db.index.btree.bufmgr.PageNumber

        this(btreeSpec, buffer);
        nextPage.setTreeId(id);
        prevPage.setTreeId(id);

        pageNumber.setTreeId(id);
        this.pageNumber = new PageNumber(pageNumber);
        this.page = buffer.getPage(id, pageNumber);
        if (this.page != null) {
            // get variables from page
            readMetaData();
        } else {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.