Package org.lilyproject.repository.api

Examples of org.lilyproject.repository.api.BlobStoreAccess


            register(blobStoreAccess);
        }
    }

    public OutputStream getOutputStream(Blob blob) throws BlobException {
        BlobStoreAccess blobStoreAccess = blobStoreAccessFactory.get(blob);
        return new BlobOutputStream(blobStoreAccess.getOutputStream(blob), blobStoreAccess.getId(), blob, blobManager, blobStoreAccess.incubate());
    }
View Full Code Here


        return new BlobOutputStream(blobStoreAccess.getOutputStream(blob), blobStoreAccess.getId(), blob, blobManager, blobStoreAccess.incubate());
    }

    public BlobAccess getBlobAccess(Blob blob) throws BlobNotFoundException, BlobException {
        Pair<String, byte[]> decodedKey = decodeKey(blob);
        BlobStoreAccess blobStoreAccess = registry.get(decodedKey.getV1());
        return new BlobAccessImpl(blob, blobStoreAccess, decodedKey.getV2());
    }
View Full Code Here

    }


    public void delete(Blob blob) throws BlobNotFoundException, BlobException {
        Pair<String, byte[]> decodedKey = decodeKey(blob);
        BlobStoreAccess blobStoreAccess = registry.get(decodedKey.getV1());
        blobStoreAccess.delete(decodedKey.getV2());
    }
View Full Code Here

        blobStoreAccess.delete(decodedKey.getV2());
    }

    public void delete(byte[] blobKey) throws BlobException {
        Pair<String,byte[]> decodedKey = decode(blobKey);
        BlobStoreAccess blobStoreAccess = registry.get(decodedKey.getV1());
        blobStoreAccess.delete(decodedKey.getV2());
    }
View Full Code Here

        }
        return failedBlobs;
    }

    private boolean reserveBlob(BlobReference referencedBlobthrows BlobNotFoundException, BlobException, IOException {
        BlobStoreAccess blobStoreAccess = registry.getBlobStoreAccess(referencedBlob.getBlob());

        // Inline blobs are not incubated and therefore reserving them always succeeds
        if (!blobStoreAccess.incubate()) {
            return true;
        }
        byte[] row = referencedBlob.getBlob().getValue();
        byte[] family = BlobIncubatorCf.REF.bytes;
        byte[] recordQualifier = BlobIncubatorColumn.RECORD.bytes;
View Full Code Here

        // Remove references from the blobIncubator for the blobs that are still referenced.
        if (referencedBlobs != null) {
            try {
                for (BlobReference blobReference : referencedBlobs) {
                    try {
                        BlobStoreAccess blobStoreAccess = registry.getBlobStoreAccess(blobReference.getBlob());
                        // Only delete from the blobIncubatorTable if incubation applies
                        if (blobStoreAccess.incubate()) {
                            blobIncubatorTable.delete(new Delete(blobReference.getBlob().getValue()));
                        }
                    } catch (BlobNotFoundException bnfe) {
                        // TODO
                    } catch (BlobException be) {
View Full Code Here

    public SizeBasedBlobStoreAccessFactory(List<BlobStoreAccess> availableBlobStoreAccesses, BlobStoreAccessConfig blobStoreAccessConfig) {
        for (BlobStoreAccess blobStoreAccess : availableBlobStoreAccesses) {
            blobStoreAccesses.put(blobStoreAccess.getId(), blobStoreAccess);
        }

        BlobStoreAccess defaultBlobStoreAccess = blobStoreAccesses.get(blobStoreAccessConfig.getDefault());
        usedBlobStoreAccesses.put(Long.MAX_VALUE, defaultBlobStoreAccess);
        log.info("Setting default blobstore " + defaultBlobStoreAccess.getId());
        Map<String, Long> limits = blobStoreAccessConfig.getLimits();
        for (Entry<String, Long> limit : limits.entrySet()) {
            addBlobStoreAccess(limit.getValue(), blobStoreAccesses.get(limit.getKey()));
        }
    }
View Full Code Here

            Conf blobManagerConf) throws IOException, InterruptedException, KeeperException {

        fs = FileSystem.get(DfsUri.getBaseDfsUri(dfsUri), configuration);
        Path blobRootPath = new Path(DfsUri.getDfsPath(dfsUri));

        BlobStoreAccess dfsBlobStoreAccess = new DFSBlobStoreAccess(fs, blobRootPath);
        BlobStoreAccess hbaseBlobStoreAccess = new HBaseBlobStoreAccess(tableFactory);
        BlobStoreAccess inlineBlobStoreAccess = new InlineBlobStoreAccess();
        List<BlobStoreAccess> blobStoreAccesses = Arrays.asList(dfsBlobStoreAccess, hbaseBlobStoreAccess,
                inlineBlobStoreAccess);

        String defaultStoreName = blobManagerConf.getChild("blobStore").getAttribute("default");
        BlobStoreAccessConfig blobStoreAccessConfig = new BlobStoreAccessConfig(defaultStoreName);
View Full Code Here

        URI dfsUri = getDfsUri(zk);
        FileSystem fs = FileSystem.get(DfsUri.getBaseDfsUri(dfsUri), configuration);
        Path blobRootPath = new Path(DfsUri.getDfsPath(dfsUri));

        BlobStoreAccess dfsBlobStoreAccess = new DFSBlobStoreAccess(fs, blobRootPath);
        BlobStoreAccess hbaseBlobStoreAccess = new HBaseBlobStoreAccess(configuration, true);
        BlobStoreAccess inlineBlobStoreAccess = new InlineBlobStoreAccess();
        List<BlobStoreAccess> blobStoreAccesses =
                Arrays.asList(dfsBlobStoreAccess, hbaseBlobStoreAccess, inlineBlobStoreAccess);

        SizeBasedBlobStoreAccessFactory blobStoreAccessFactory =
                new SizeBasedBlobStoreAccessFactory(blobStoreAccesses, getBlobStoreAccessConfig(zk));
View Full Code Here

        repositoryManagerSetup = true;
    }

    private BlobStoreAccessFactory createBlobAccess() throws Exception {
        DFSBlobStoreAccess dfsBlobStoreAccess = new DFSBlobStoreAccess(hbaseProxy.getBlobFS(), new Path("/lily/blobs"));
        BlobStoreAccess hbaseBlobStoreAccess = new HBaseBlobStoreAccess(hadoopConf);
        BlobStoreAccess inlineBlobStoreAccess = new InlineBlobStoreAccess();

        BlobStoreAccessConfig blobStoreAccessConfig = new BlobStoreAccessConfig(dfsBlobStoreAccess.getId());

        if (hbaseBlobLimit != -1) {
            blobStoreAccessConfig.setLimit(hbaseBlobStoreAccess.getId(), hbaseBlobLimit);
        }

        if (inlineBlobLimit != -1) {
            blobStoreAccessConfig.setLimit(inlineBlobStoreAccess.getId(), inlineBlobLimit);
        }

        List<BlobStoreAccess> blobStoreAccesses =
                Arrays.asList(dfsBlobStoreAccess, hbaseBlobStoreAccess, inlineBlobStoreAccess);
        return new SizeBasedBlobStoreAccessFactory(blobStoreAccesses, blobStoreAccessConfig);
View Full Code Here

TOP

Related Classes of org.lilyproject.repository.api.BlobStoreAccess

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.