Package org.chaidb.db.index.btree.bufmgr

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


        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

                    //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

        ((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

        // 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

            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

            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

     * 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

        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

        // ### not write to page yet!
        newPage.setNodes((short) 0);
        newPage.setUpperBound((short) newPage.btreeSpec.getPageSize());

        newPage.setNextPage(new PageNumber(BTreeSpec.INVALID_PAGENO));
        newPage.setPrevPage(new PageNumber(BTreeSpec.INVALID_PAGENO));

        if (!isOverflowPage) {
            newPage.setFlags(0);
        } else {
            newPage.setOverflow();
View Full Code Here

TOP

Related Classes of org.chaidb.db.index.btree.bufmgr.PageNumber

Copyright © 2018 www.massapicom. 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.