|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.amazon.carbonado.spi.AbstractRepositoryBuilder
com.amazon.carbonado.repo.sleepycat.BDBRepositoryBuilder
public class BDBRepositoryBuilder
Builder and configuration options for BDBRepository.
BDBRepositoryBuilder builder = new BDBRepositoryBuilder();
builder.setProduct("JE");
builder.setName("test");
builder.setEnvironmentHome("/tmp/testRepo");
builder.setTransactionWriteNoSync(true);
Repository repo = builder.build();
The following extra capabilities are supported:
IndexInfoCapability
StorableInfoCapability
ShutdownCapability
LayoutCapability
SequenceCapability
CheckpointCapability
EnvironmentCapability
| Nested Class Summary | |
|---|---|
static interface |
BDBRepositoryBuilder.DatabaseHook
|
| Constructor Summary | |
|---|---|
BDBRepositoryBuilder()
|
|
| Method Summary | |
|---|---|
Repository |
build(AtomicReference<Repository> rootRef)
Builds a repository instance. |
void |
errorCheck(Collection<String> messages)
This method is called by assertReady, and subclasses must override to perform custom checks. |
BDBProduct |
getBDBProduct()
Returns the BDB product to use, which is JE by default. |
Integer |
getCachePercent()
Returns the percent of JVM heap used by the repository cache, or null if default should be selected. |
Long |
getCacheSize()
Returns the repository cache size, or null if default should be selected. |
int |
getCheckpointInterval()
|
int |
getCheckpointThresholdKB()
|
int |
getCheckpointThresholdMinutes()
|
Boolean |
getChecksumEnabled()
Returns true if checksum verification is enabled. |
String |
getCompressor(String type)
Return the compressor used for the given storable. |
BDBRepositoryBuilder.DatabaseHook |
getDatabaseHook()
Returns the custom open database hook, or null if none. |
Boolean |
getDatabasesTransactional()
Returns true if the databases are configured to be transactional, false if configured to not be transactional, null if this override was never set |
String |
getDataHome()
Returns the directory to store data files. |
File |
getDataHomeFile()
Returns the optional directory to store data files. |
String |
getEnvironmentHome()
Returns the repository environment home directory. |
File |
getEnvironmentHomeFile()
Returns the repository environment home directory. |
double |
getIndexRepairThrottle()
Returns the throttle parameter used when indexes are added, dropped or bulk repaired. |
boolean |
getIndexSupport()
Returns true if indexes are supported, which is true by default. |
Object |
getInitialDatabaseConfig()
Returns the optional BDB specific database configuration to use for all databases created. |
Object |
getInitialEnvironmentConfig()
Returns the optional BDB specific environment configuration to use. |
double |
getLockTimeout()
Returns the lock timeout, in seconds. |
long |
getLockTimeoutInMicroseconds()
Returns the lock timeout, in microseconds, limited to max long value. |
Integer |
getLogFileMaxSize()
Returns null if default size will be used. |
boolean |
getLogInMemory()
Returns false by default, indicating that transaction logs are persisted. |
String |
getName()
Returns the name of the repository. |
Runnable |
getPreShutdownHook()
Returns the custom shutdown hook that runs before the repository has finished running its own shutdown hooks, or null if none. |
String |
getProduct()
Returns the BDB product to use, which is JE by default. |
boolean |
getReadOnly()
Returns true if repository should be opened read-only. |
boolean |
getRunCheckpointer()
Returns true if checkpointer is run automatically. |
boolean |
getRunDeadlockDetector()
Returns true if deadlock detector is configured to run. |
boolean |
getRunFullRecovery()
Returns true if a full (catastrophic) recovery should be performed when environment is opened. |
Runnable |
getShutdownHook()
Returns the custom shutdown hook that runs after the repository has finished running its own shutdown hooks, or null if none. |
String |
getSingleFileName()
Returns the single file that all BDB databases should reside in. |
StorableCodecFactory |
getStorableCodecFactory()
Returns the storable codec factory used. |
boolean |
getTransactionNoSync()
Returns true if transactions are not written or flushed to disk. |
double |
getTransactionTimeout()
Returns the repository transaction timeout, in seconds. |
long |
getTransactionTimeoutInMicroseconds()
Returns the repository transaction timeout, in microseconds, limited to max long value. |
boolean |
getTransactionWriteNoSync()
Returns true if transactions are not flushed to disk. |
boolean |
isIndexRepairEnabled()
|
boolean |
isMaster()
Returns true if repository should assume the role of master, which is true by default. |
boolean |
isMultiversion()
Returns false by default because multiversion concurrency control (MVCC) is not enabled. |
boolean |
isPrivate()
Returns true if BDB environment is private. |
void |
setBDBProduct(BDBProduct product)
Sets the BDB product to use, which defaults to JE. |
void |
setCachePercent(int cachePercent)
Set the percent of JVM heap used by the repository cache. |
void |
setCachePercent(Integer cachePercent)
Set the percent of JVM heap used by the repository cache. |
void |
setCacheSize(long cacheSize)
Set the repository cache size, in bytes. |
void |
setCacheSize(Long cacheSize)
Set the repository cache size, in bytes. |
void |
setCheckpointInterval(int intervalMillis)
Set the interval to run checkpoints. |
void |
setCheckpointThresholdKB(int thresholdKB)
Set the size threshold to run checkpoints. |
void |
setCheckpointThresholdMinutes(int thresholdMinutes)
Set the time threshold to run checkpoints. |
void |
setChecksumEnabled(Boolean checksumEnabled)
When true, enable checksum verification of pages read into the cache from the backing filestore. |
void |
setCompressor(String type,
String compressionType)
Set the compressor for the given class, overriding a custom StorableCodecFactory. |
void |
setDatabaseHook(BDBRepositoryBuilder.DatabaseHook hook)
Sets a hook to be called whenever a database is opened. |
void |
setDatabasePageSize(Integer bytes,
Class<? extends Storable> type)
Sets the desired page size for a given type. |
void |
setDatabasesTransactional(Boolean transactional)
When true, allows databases to be transactional. |
void |
setDataHome(String dir)
By default, data files are stored relative to the environment home. |
void |
setDataHomeFile(File dir)
By default, data files are stored relative to the environment home. |
void |
setEnvironmentHome(String envHome)
Sets the repository environment home directory, which is required. |
void |
setEnvironmentHomeFile(File envHome)
Sets the repository environment home directory, which is required. |
void |
setFileName(String filename,
String typeName)
Specify the file that a BDB database should reside in, except for log files and caches. |
void |
setIndexRepairEnabled(boolean enabled)
By default, index repair is enabled. |
void |
setIndexRepairThrottle(double desiredSpeed)
Sets the throttle parameter used when indexes are added, dropped or bulk repaired. |
void |
setIndexSupport(boolean indexSupport)
By default, user specified indexes are supported. |
void |
setInitialDatabaseConfig(Object dbConfig)
Optionally set the BDB specific database configuration to use for all databases created. |
void |
setInitialEnvironmentConfig(Object envConfig)
Optionally set the BDB specific environment configuration to use. |
void |
setLockTimeout(double lockTimeout)
Set the lock timeout, in seconds. |
void |
setLogFileMaxSize(Integer sizeInBytes)
Set the maximum transaction log file size for the BDB environment. |
void |
setLogInMemory(boolean logInMemory)
Set true to store transaction logs in memory only instead of persistent storage. |
void |
setMaster(boolean b)
Set to false if repository should not assume the role of master. |
void |
setMultiversion(boolean multiversion)
Set true to enable multiversion concurrency control (MVCC) on BDB environment. |
void |
setName(String name)
Set name for the repository, which is required. |
void |
setPreShutdownHook(Runnable hook)
Sets a callback to be invoked before the repository has finished running its own shutdown hooks. |
void |
setPrivate(boolean b)
When true, BDB environment cannot be shared by other processes, and region files are not created. |
void |
setProduct(String product)
Sets the BDB product to use, which defaults to JE. |
void |
setReadOnly(boolean readOnly)
Sets the repository to read-only mode. |
void |
setRunCheckpointer(boolean runCheckpointer)
Disable automatic checkpointing of database if another process is responsible for that. |
void |
setRunDeadlockDetector(boolean runDeadlockDetector)
Disable automatic deadlock detection of database if another thread is responsible for that. |
void |
setRunFullRecovery(boolean runRecovery)
Pass true to override the default and run a full (catastrophic) recovery when environment is opened. |
void |
setShutdownHook(Runnable hook)
Sets a callback to be invoked after repository has finished running its own shutdown hooks. |
void |
setSingleFileName(String filename)
Specify that all BDB databases should reside in one file, except for log files and caches. |
void |
setStorableCodecFactory(StorableCodecFactory factory)
Override the default storable codec factory. |
void |
setTransactionNoSync(boolean noSync)
When true, commits are not immediately written or flushed to disk. |
void |
setTransactionTimeout(double txnTimeout)
Set the transaction timeout, in seconds. |
void |
setTransactionWriteNoSync(boolean noSync)
When true, commits are written, but they are not flushed to disk. |
| Methods inherited from class com.amazon.carbonado.spi.AbstractRepositoryBuilder |
|---|
addTriggerFactory, assertReady, build, getTriggerFactories, removeTriggerFactory |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public BDBRepositoryBuilder()
| Method Detail |
|---|
public Repository build(AtomicReference<Repository> rootRef)
throws RepositoryException
RepositoryBuilderIf the repository is being wrapped by a parent repository, the child repository will need to know this fact for some operations to work correctly. Since the parent repository is not built yet, a reference is used instead.
rootRef - reference to root parent repository, to be set by
parent repository upon being built
ConfigurationException - if there is a problem in the builder's configuration
RepositoryException - if there is a general problem opening the repositorypublic String getName()
RepositoryBuilder
public void setName(String name)
RepositoryBuilder
public boolean isMaster()
RepositoryBuilderA master repository is responsible for version and
sequence properties. For insert operations, a master
repository must set these properties if they are uninitialized. For
updates, the version property is checked to see if an OptimisticLockException should be thrown.
ReplicatedRepositoryBuilderpublic void setMaster(boolean b)
RepositoryBuilderA master repository is responsible for version and
sequence properties. For insert operations, a master
repository must set these properties if they are uninitialized. For
updates, the version property is checked to see if an OptimisticLockException should be thrown.
ReplicatedRepositoryBuilderpublic void setProduct(String product)
public String getProduct()
public void setBDBProduct(BDBProduct product)
public BDBProduct getBDBProduct()
public void setEnvironmentHomeFile(File envHome)
public File getEnvironmentHomeFile()
public void setEnvironmentHome(String envHome)
RepositoryException - if environment home is not validpublic String getEnvironmentHome()
public void setDataHomeFile(File dir)
public File getDataHomeFile()
public void setDataHome(String dir)
public String getDataHome()
public void setSingleFileName(String filename)
Note: When setting this option, the storable codec factory must also be changed, since the default storable codec factory is unable to distinguish storable types that reside in a single database file. Call setFileName instead to use built-in BDB feature for supporting multiple databases in one file.
public String getSingleFileName()
public void setFileName(String filename,
String typeName)
filename - BDB database filenametypeName - type to store in file; if null, the file is used by default
for all typespublic void setIndexSupport(boolean indexSupport)
public boolean getIndexSupport()
public boolean isIndexRepairEnabled()
setIndexRepairEnabled(boolean)public void setIndexRepairEnabled(boolean enabled)
When index repair is disabled, the Storable is immediately available. This does have consequences, however. The set of indexes available for queries is defined by the intersection of the old and new index sets. The set of indexes that are kept up-to-date is defined by the union of the old and new index sets.
While index repair is disabled, another process can safely repair the indexes in the background. When it is complete, index repair can be enabled for this repository too.
public double getIndexRepairThrottle()
public void setIndexRepairThrottle(double desiredSpeed)
desiredSpeed - 1.0 = perform work at full speed,
0.5 = perform work at half speed, 0.0 = fully suspend workpublic void setReadOnly(boolean readOnly)
public boolean getReadOnly()
public void setCacheSize(long cacheSize)
public void setCacheSize(Long cacheSize)
cacheSize - cache size to use, or null for defaultpublic Long getCacheSize()
public void setCachePercent(int cachePercent)
public void setCachePercent(Integer cachePercent)
cachePercent - percent of JVM heap to use, or null for defaultpublic Integer getCachePercent()
public void setLockTimeout(double lockTimeout)
public double getLockTimeout()
public long getLockTimeoutInMicroseconds()
public void setTransactionTimeout(double txnTimeout)
public double getTransactionTimeout()
public long getTransactionTimeoutInMicroseconds()
public void setTransactionNoSync(boolean noSync)
public boolean getTransactionNoSync()
public void setTransactionWriteNoSync(boolean noSync)
public boolean getTransactionWriteNoSync()
public void setDatabasesTransactional(Boolean transactional)
public Boolean getDatabasesTransactional()
public void setDatabasePageSize(Integer bytes,
Class<? extends Storable> type)
public void setPrivate(boolean b)
public boolean isPrivate()
public void setMultiversion(boolean multiversion)
public boolean isMultiversion()
public void setLogInMemory(boolean logInMemory)
public boolean getLogInMemory()
public void setLogFileMaxSize(Integer sizeInBytes)
public Integer getLogFileMaxSize()
public void setRunFullRecovery(boolean runRecovery)
public boolean getRunFullRecovery()
public void setRunCheckpointer(boolean runCheckpointer)
public boolean getRunCheckpointer()
public void setCheckpointInterval(int intervalMillis)
intervalMillis - interval between checkpoints, in millisecondspublic int getCheckpointInterval()
public void setCheckpointThresholdKB(int thresholdKB)
Checkpoint threshold is only used by Carbonado's built-in checkpointer, and is ignored when using BDB-JE.
thresholdKB - run checkpoint if at least this many kilobytes in logpublic int getCheckpointThresholdKB()
public void setCheckpointThresholdMinutes(int thresholdMinutes)
Checkpoint threshold is only used by Carbonado's built-in checkpointer, and is ignored when using BDB-JE.
thresholdMinutes - run checkpoint if at least this many minutes
passed since last checkpointpublic int getCheckpointThresholdMinutes()
public void setRunDeadlockDetector(boolean runDeadlockDetector)
public boolean getRunDeadlockDetector()
public void setChecksumEnabled(Boolean checksumEnabled)
public Boolean getChecksumEnabled()
public void setInitialEnvironmentConfig(Object envConfig)
public Object getInitialEnvironmentConfig()
public void setInitialDatabaseConfig(Object dbConfig)
public Object getInitialDatabaseConfig()
public void setStorableCodecFactory(StorableCodecFactory factory)
public StorableCodecFactory getStorableCodecFactory()
public void setPreShutdownHook(Runnable hook)
public Runnable getPreShutdownHook()
public void setShutdownHook(Runnable hook)
public Runnable getShutdownHook()
public void setDatabaseHook(BDBRepositoryBuilder.DatabaseHook hook)
public BDBRepositoryBuilder.DatabaseHook getDatabaseHook()
public void setCompressor(String type,
String compressionType)
type - Storable to compress.compressionType - String representation of type of
compression. Available options are "NONE" for no compression or "GZIP"
for gzip compressionpublic String getCompressor(String type)
type - Storable to compress
public void errorCheck(Collection<String> messages)
throws ConfigurationException
AbstractRepositoryBuildersuper.errorCheck as well.
errorCheck in class AbstractRepositoryBuildermessages - add any error messages to this list
ConfigurationException - if error checking indirectly caused
another exception
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||