Package org.apache.jackrabbit.oak.plugins.segment

Examples of org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore


                stores[i] = new FileStore(blobStore,
                        new File(base, unique),
                        EmptyNodeState.EMPTY_NODE,
                        maxFileSizeMB, cacheSizeMB, memoryMapping);
                cluster[i] = new Oak(new SegmentNodeStore(stores[i]));
            }
            return cluster;
        }
View Full Code Here


            closer.register(asCloseable(store));
            return store;
        }
        FileStore fs = new FileStore(new File(src), 256, TAR_STORAGE_MEMORY_MAPPED);
        closer.register(asCloseable(fs));
        return new SegmentNodeStore(fs);
    }
View Full Code Here

                        client.close();
                    }
                } else {
                    FileStore store = new FileStore(new File(dst), 256);
                    try {
                        NodeStore target = new SegmentNodeStore(store);
                        RepositoryUpgrade upgrade =
                                new RepositoryUpgrade(source, target);
                        upgrade.setCopyBinariesByReference(
                                options.has("datastore"));
                        upgrade.copy(null);
View Full Code Here

    public void compactionAndWeakReferenceMagic() throws Exception{
        final int MB = 1024 * 1024;
        final int blobSize = 5 * MB;

        FileStore fileStore = new FileStore(directory, 1, 1, false);
        SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore);

        //1. Create a property with 5 MB blob
        NodeBuilder builder = nodeStore.getRoot().builder();
        builder.setProperty("a1", createBlob(nodeStore, blobSize));
        builder.setProperty("b", "foo");

        //Keep a reference to this nodeState to simulate long
        //running session
        NodeState ns1 = nodeStore.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        System.out.printf("File store pre removal %d%n", mb(fileStore.size()));
        assertEquals(mb(fileStore.size()), mb(blobSize));


        //2. Now remove the property
        builder = nodeStore.getRoot().builder();
        builder.removeProperty("a1");
        nodeStore.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        //Size remains same
        System.out.printf("File store pre compaction %d%n", mb(fileStore.size()));
        assertEquals(mb(fileStore.size()), mb(blobSize));

        //3. Compact
        fileStore.compact();

        //Size still remains same
        System.out.printf("File store post compaction %d%n", mb(fileStore.size()));
        assertEquals(mb(fileStore.size()), mb(blobSize));

        //4. Add some more property to flush the current TarWriter
        builder = nodeStore.getRoot().builder();
        builder.setProperty("a2", createBlob(nodeStore, blobSize));
        nodeStore.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        //Size is double
        System.out.printf("File store pre cleanup %d%n", mb(fileStore.size()));
        assertEquals(mb(fileStore.size()), 2 * mb(blobSize));

 
View Full Code Here

    public void testGainEstimator() throws Exception {
        final int MB = 1024 * 1024;
        final int blobSize = 2 * MB;

        FileStore fileStore = new FileStore(directory, 2, false);
        SegmentNodeStore nodeStore = new SegmentNodeStore(fileStore);

        // 1. Create some blob properties
        NodeBuilder builder = nodeStore.getRoot().builder();

        NodeBuilder c1 = builder.child("c1");
        c1.setProperty("a", createBlob(nodeStore, blobSize));
        c1.setProperty("b", "foo");

        NodeBuilder c2 = builder.child("c2");
        c2.setProperty("a", createBlob(nodeStore, blobSize));
        c2.setProperty("b", "foo");

        NodeBuilder c3 = builder.child("c3");
        c3.setProperty("a", createBlob(nodeStore, blobSize));
        c3.setProperty("b", "foo");
        nodeStore.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        // 2. Now remove the property
        builder = nodeStore.getRoot().builder();
        builder.child("c1").remove();
        builder.child("c2").remove();
        nodeStore.merge(builder, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        fileStore.flush();
        try {
            // should be at 66%
            assertTrue(fileStore.estimateCompactionGain()
View Full Code Here

    @Ignore("OAK-2192"// FIXME OAK-2192
    @Test
    public void testMixedSegments() throws Exception {
        FileStore store = new FileStore(directory, 2, false);
        final SegmentNodeStore nodeStore = new SegmentNodeStore(store);

        NodeBuilder root = nodeStore.getRoot().builder();
        createNodes(root.setChildNode("test"), 10, 3);
        nodeStore.merge(root, EmptyHook.INSTANCE, CommitInfo.EMPTY);

        final Set<UUID> beforeSegments = new HashSet<UUID>();
        collectSegments(store.getHead(), beforeSegments);

        final AtomicReference<Boolean> run = new AtomicReference<Boolean>(true);
        final List<Integer> failedCommits = newArrayList();
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int k = 0; run.get(); k++) {
                    try {
                        NodeBuilder root = nodeStore.getRoot().builder();
                        root.setChildNode("b" + k);
                        nodeStore.merge(root, EmptyHook.INSTANCE, CommitInfo.EMPTY);
                        Thread.sleep(5);
                    } catch (CommitFailedException e) {
                        failedCommits.add(k);
                    } catch (InterruptedException e) {
                        Thread.interrupted();
View Full Code Here

            try {
                createSourceContent(repository);
            } finally {
                repository.shutdown();
            }
            NodeStore target = new SegmentNodeStore();
            RepositoryUpgrade.copy(source, target);
            targetRepository = new Jcr(new Oak(target)).createRepository();
        }
    }
View Full Code Here

    }
   
    private void addRemoveSetMoveCopy(boolean branchMerge) throws Exception {
        ns = createNodeStore();
        mk = new NodeStoreKernel(ns);
        mkGold = new NodeStoreKernel(new SegmentNodeStore());
        HashMap<Integer, String> revsGold = new HashMap<Integer, String>();
        HashMap<Integer, String> revs = new HashMap<Integer, String>();
        Random r = new Random(1);
        int operations = 1000, nodeCount = 10;
        int propertyCount = 5, valueCount = 10;
View Full Code Here

    private NodeStore store;

    @Before
    public void setUp() throws Exception {
        store = new SegmentNodeStore();
        NodeBuilder builder = store.getRoot().builder();
        builder.setProperty("a", 1)
                .setProperty("b", 2)
                .setProperty("c", 3);
View Full Code Here

        return true;
    }

    @Override
    public void setUpCluster(MicroKernel[] cluster) throws Exception {
        server = new Server(new NodeStoreKernel(new SegmentNodeStore()));
        server.start();

        InetSocketAddress address = server.getAddress();
        cluster[0] = new Client(address);
        for (int i = 1; i < cluster.length; i++) {
View Full Code Here

TOP

Related Classes of org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore

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.