java.lang.Object | |
↳ | org.rrd4j.core.RrdBackendFactory |
![]() |
![]() |
Base (abstract) backend factory class which holds references to all concrete backend factories and defines abstract methods which must be implemented in all concrete factory implementations.
Factory classes are used to create concrete RrdBackend
implementations.
Each factory creates unlimited number of specific backend objects.
Rrd4j supports four different backend types (backend factories) out of the box:
RrdFileBackend
: objects of this class are created from the
RrdFileBackendFactory
class. This was the default backend used in all
Rrd4j releases before 1.4.0 release. It uses java.io.* package and RandomAccessFile class to store
RRD data in files on the disk.
RrdSafeFileBackend
: objects of this class are created from the
RrdSafeFileBackendFactory
class. It uses java.io.* package and RandomAccessFile class to store
RRD data in files on the disk. This backend is SAFE:
it locks the underlying RRD file during update/fetch operations, and caches only static
parts of a RRD file in memory. Therefore, this backend is safe to be used when RRD files should
be shared between several JVMs at the same time. However, this backend is *slow* since it does
not use fast java.nio.* package (it's still based on the RandomAccessFile class).
RrdNioBackend
: objects of this class are created from the
RrdNioBackendFactory
class. The backend uses java.io.* and java.nio.*
classes (mapped ByteBuffer) to store RRD data in files on the disk. This is the default backend
since 1.4.0 release.
RrdMemoryBackend
: objects of this class are created from the
RrdMemoryBackendFactory
class. This backend stores all data in memory. Once
JVM exits, all data gets lost. The backend is extremely fast and memory hungry.
name
. Constructors
are provided in the RrdDb
class to create RrdDb objects (RRD databases)
backed with a specific backend.
See javadoc for RrdBackend
to find out how to create your custom backends.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the defaul backend factory.
| |||||||||||
Returns backend factory for the given backend factory name.
| |||||||||||
Returns the name (primary ID) for the factory.
| |||||||||||
Registers new (custom) backend factory within the Rrd4j framework and sets this
factory as the default.
| |||||||||||
Registers new (custom) backend factory within the Rrd4j framework.
| |||||||||||
Replaces the default backend factory with a new one.
|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Determines if a storage with the given path already exists.
| |||||||||||
Creates RrdBackend object for the given storage path.
| |||||||||||
Determines if the header should be validated.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Returns the defaul backend factory. This factory is used to construct
RrdDb
objects if no factory is specified in the RrdDb constructor.
Returns backend factory for the given backend factory name.
name | Backend factory name. Initially supported names are:
|
---|
Returns the name (primary ID) for the factory.
Registers new (custom) backend factory within the Rrd4j framework and sets this factory as the default.
factory | Factory to be registered and set as default |
---|
Registers new (custom) backend factory within the Rrd4j framework.
factory | Factory to be registered |
---|
Replaces the default backend factory with a new one. This method must be called before the first RRD gets created.
factoryName | Name of the default factory. Out of the box, Rrd4j supports four different RRD backends: "FILE" (java.io.* based), "SAFE" (java.io.* based - use this backend if RRD files may be accessed from several JVMs at the same time), "NIO" (java.nio.* based) and "MEMORY" (byte[] based). |
---|
Determines if a storage with the given path already exists.
path | Storage path |
---|
IOException |
---|
Creates RrdBackend object for the given storage path.
path | Storage path |
---|---|
readOnly | True, if the storage should be accessed in read/only mode. False otherwise. |
IOException | Thrown in case of I/O error. |
---|
Determines if the header should be validated.
IOException |
---|