Interface PqStorage
- All Known Implementing Classes:
PqStorageEtcdImpl
,PqStorageEtcdV2Impl
,PqStorageKvBase
,PqStoragePhtImpl
public interface PqStorage
Interface for storage of persistent query configurations. Implementations must provide a no-arg constructor as they will
be created reflectively.
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Add the specified persistent query configuration.void
Commit a checkpoint.boolean
Delete the specified persistent query configuration.void
disconnect
(boolean forceCheckpoint) Disconnect from the storage mechanism.getPersistentQueryConfiguration
(long serial) Return thePersistentQueryConfiguration
for the specified serial.default void
Do any initialization work required.keySet()
Return the Set of persisted serials.boolean
Update the specified persistent query configuration.values()
Return a Collection containing all the persistedPersistentQueryConfiguration
instances.
-
Method Details
-
initialize
Do any initialization work required.- Throws:
PqStorageException
-
getPersistentQueryConfiguration
@Nullable PersistentQueryConfiguration getPersistentQueryConfiguration(long serial) throws PqStorageException Return thePersistentQueryConfiguration
for the specified serial.- Parameters:
serial
- the serial for the query- Returns:
- the query, or null if it does not exist
- Throws:
PqStorageException
-
addPersistentQueryConfiguration
boolean addPersistentQueryConfiguration(@NotNull PersistentQueryConfiguration config) throws IOException, PqStorageException Add the specified persistent query configuration. If the configuration already exists, it will not be updated.- Parameters:
config
- the configuration to add- Returns:
- true if the configuration was added, false if it already existed
- Throws:
IOException
- if an error occurs during the persistence operationPqStorageException
-
updatePersistentQueryConfiguration
boolean updatePersistentQueryConfiguration(@NotNull PersistentQueryConfiguration config) throws IOException, PqStorageException Update the specified persistent query configuration. If the configuration does not exist, it will not be created.- Parameters:
config
- the configuration to update- Returns:
- true if the (existing) configuration was updated, false if it did not exist
- Throws:
IOException
- if an error occurs during the persistence operationPqStorageException
-
deletePersistentQueryConfiguration
boolean deletePersistentQueryConfiguration(@NotNull PersistentQueryConfiguration config) throws IOException, PqStorageException Delete the specified persistent query configuration.- Parameters:
config
- the configuration to update- Returns:
- true if the configuration was deleted, false if it did not exist
- Throws:
IOException
- if an error occurs during the persistence operationPqStorageException
-
commitCheckPoint
Commit a checkpoint. This may be a no-op.- Throws:
IOException
- if an error occurs committing the checkpoint
-
disconnect
void disconnect(boolean forceCheckpoint) Disconnect from the storage mechanism.- Parameters:
forceCheckpoint
- if true, perform a checkpoint
-
keySet
Return the Set of persisted serials. There are no guarantees on the type, mutability, serializability, or thread-safety of the Set returned.- Returns:
- a Set of the serials
- Throws:
PqStorageException
-
values
Return a Collection containing all the persistedPersistentQueryConfiguration
instances. Updates to these PersistentQueryConfiguration instances should be persisted viaupdatePersistentQueryConfiguration(com.illumon.iris.controller.PersistentQueryConfiguration)
. There are no guarantees on the type, mutability, serializability, or thread-safety of the Collection returned, or of the objects contained within the Collection.- Returns:
- a Collection of persistent query configurations
- Throws:
PqStorageException
-