
alluxio.client.block.BlockStoreClient Maven / Gradle / Ivy
/*
* The Alluxio Open Foundation licenses this work under the Apache License, version 2.0
* (the "License"). You may not use this work except in alluxio.shaded.client.com.liance with the License, which is
* available at www.apache.alluxio.shaded.client.org.licenses/LICENSE-2.0
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied, as more fully set forth in the License.
*
* See the NOTICE file distributed with this work for information regarding copyright ownership.
*/
package alluxio.client.block;
import alluxio.client.file.FileSystemContext;
import alluxio.resource.CloseableResource;
import alluxio.wire.BlockInfo;
import alluxio.shaded.client.com.google.alluxio.shaded.client.com.on.annotations.VisibleForTesting;
import alluxio.shaded.client.org.slf4j.Logger;
import alluxio.shaded.client.org.slf4j.LoggerFactory;
import java.alluxio.shaded.client.io.IOException;
import alluxio.shaded.client.javax.annotation.concurrent.ThreadSafe;
/**
* Alluxio Block Store client. This is an internal client for all block level operations in Alluxio.
* An instance of this class can be obtained via {@link BlockStoreClient} constructors.
*/
@ThreadSafe
public final class BlockStoreClient {
private static final Logger LOG = LoggerFactory.getLogger(BlockStoreClient.class);
private final FileSystemContext mContext;
/**
* Creates an Alluxio block store with default local hostname.
*
* @param context the file system context
* @return the {@link BlockStoreClient} created
*/
public static BlockStoreClient create(FileSystemContext context) {
return new BlockStoreClient(context);
}
/**
* Creates an Alluxio block store.
*
* @param context the file system context
*/
@VisibleForTesting
BlockStoreClient(FileSystemContext context) {
mContext = context;
}
/**
* Gets the block info of a block, if it exists.
*
* @param blockId the blockId to obtain information about
* @return a {@link BlockInfo} containing the metadata of the block
*/
public BlockInfo getInfo(long blockId) throws IOException {
try (CloseableResource masterClientResource =
mContext.acquireBlockMasterClientResource()) {
return masterClientResource.get().getBlockInfo(blockId);
}
}
/**
* Gets the total capacity of Alluxio's BlockStore.
*
* @return the capacity in bytes
*/
public long getCapacityBytes() throws IOException {
try (CloseableResource blockMasterClientResource =
mContext.acquireBlockMasterClientResource()) {
return blockMasterClientResource.get().getCapacityBytes();
}
}
/**
* Gets the used bytes of Alluxio's BlockStore.
*
* @return the used bytes of Alluxio's BlockStore
*/
public long getUsedBytes() throws IOException {
try (CloseableResource blockMasterClientResource =
mContext.acquireBlockMasterClientResource()) {
return blockMasterClientResource.get().getUsedBytes();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy