org.forstdb.SstFileMetaData Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of forstjni Show documentation
Show all versions of forstjni Show documentation
ForSt fat jar with modifications specific for Apache Flink that contains .so files for linux32 and linux64 (glibc and musl-libc), jnilib files
for Mac OSX, and a .dll for Windows x64.
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
// This source code is licensed under both the GPLv2 (found in the
// COPYING file in the root directory) and Apache 2.0 License
// (found in the LICENSE.Apache file in the root directory).
package org.forstdb;
/**
* The metadata that describes a SST file.
*/
public class SstFileMetaData {
private final String fileName;
private final String path;
private final long size;
private final long smallestSeqno;
private final long largestSeqno;
private final byte[] smallestKey;
private final byte[] largestKey;
private final long numReadsSampled;
private final boolean beingCompacted;
private final long numEntries;
private final long numDeletions;
private final byte[] fileChecksum;
/**
* Called from JNI C++
*
* @param fileName the file name
* @param path the file path
* @param size the size of the file
* @param smallestSeqno the smallest sequence number
* @param largestSeqno the largest sequence number
* @param smallestKey the smallest key
* @param largestKey the largest key
* @param numReadsSampled the number of reads sampled
* @param beingCompacted true if the file is being compacted, false otherwise
* @param numEntries the number of entries
* @param numDeletions the number of deletions
* @param fileChecksum the full file checksum (if enabled)
*/
@SuppressWarnings("PMD.ArrayIsStoredDirectly")
protected SstFileMetaData(final String fileName, final String path, final long size,
final long smallestSeqno, final long largestSeqno, final byte[] smallestKey,
final byte[] largestKey, final long numReadsSampled, final boolean beingCompacted,
final long numEntries, final long numDeletions, final byte[] fileChecksum) {
this.fileName = fileName;
this.path = path;
this.size = size;
this.smallestSeqno = smallestSeqno;
this.largestSeqno = largestSeqno;
this.smallestKey = smallestKey;
this.largestKey = largestKey;
this.numReadsSampled = numReadsSampled;
this.beingCompacted = beingCompacted;
this.numEntries = numEntries;
this.numDeletions = numDeletions;
this.fileChecksum = fileChecksum;
}
/**
* Get the name of the file.
*
* @return the name of the file.
*/
public String fileName() {
return fileName;
}
/**
* Get the full path where the file locates.
*
* @return the full path
*/
public String path() {
return path;
}
/**
* Get the file size in bytes.
*
* @return file size
*/
public long size() {
return size;
}
/**
* Get the smallest sequence number in file.
*
* @return the smallest sequence number
*/
public long smallestSeqno() {
return smallestSeqno;
}
/**
* Get the largest sequence number in file.
*
* @return the largest sequence number
*/
public long largestSeqno() {
return largestSeqno;
}
/**
* Get the smallest user defined key in the file.
*
* @return the smallest user defined key
*/
@SuppressWarnings("PMD.MethodReturnsInternalArray")
public byte[] smallestKey() {
return smallestKey;
}
/**
* Get the largest user defined key in the file.
*
* @return the largest user defined key
*/
@SuppressWarnings("PMD.MethodReturnsInternalArray")
public byte[] largestKey() {
return largestKey;
}
/**
* Get the number of times the file has been read.
*
* @return the number of times the file has been read
*/
public long numReadsSampled() {
return numReadsSampled;
}
/**
* Returns true if the file is currently being compacted.
*
* @return true if the file is currently being compacted, false otherwise.
*/
public boolean beingCompacted() {
return beingCompacted;
}
/**
* Get the number of entries.
*
* @return the number of entries.
*/
public long numEntries() {
return numEntries;
}
/**
* Get the number of deletions.
*
* @return the number of deletions.
*/
public long numDeletions() {
return numDeletions;
}
/**
* Get the full file checksum iff full file checksum is enabled.
*
* @return the file's checksum
*/
@SuppressWarnings("PMD.MethodReturnsInternalArray")
public byte[] fileChecksum() {
return fileChecksum;
}
}