Class EventJournalConfig

  • All Implemented Interfaces:
    DataSerializable, IdentifiedDataSerializable

    public class EventJournalConfig
    extends java.lang.Object
    implements IdentifiedDataSerializable
    Configuration for an event journal. The event journal keeps events related to a specific partition and data structure. For instance, it could keep map add, update, remove, merge events along with the key, old value, new value and so on. This configuration is not tied to a specific data structure and can be reused. NOTE This config is intended to be used with Hazelcast Jet and does not expose any features in Hazelcast IMDG.
    • Field Detail

      • DEFAULT_CAPACITY

        public static final int DEFAULT_CAPACITY
        Default value of capacity of the event journal.
        See Also:
        Constant Field Values
      • DEFAULT_TTL_SECONDS

        public static final int DEFAULT_TTL_SECONDS
        Default value for the time to live property.
        See Also:
        Constant Field Values
    • Constructor Detail

      • EventJournalConfig

        public EventJournalConfig()
      • EventJournalConfig

        public EventJournalConfig​(EventJournalConfig config)
        Parameters:
        config - the event journal config to clone
        Throws:
        java.lang.NullPointerException - if the config is null
    • Method Detail

      • getCapacity

        public int getCapacity()
        Gets the capacity of the event journal. The capacity is the total number of items that the event journal can hold at any moment. The actual number of items contained in the journal can be lower.

        NOTE The capacity is shared equally between all partitions. This is done by assigning each partition getCapacity() / partitionCount available slots in the event journal. Because of this, the effective total capacity may be somewhat lower and you must make sure that the configured capacity is at least greater than the partition count.

        Returns:
        the capacity.
      • setCapacity

        public EventJournalConfig setCapacity​(int capacity)
        Sets the capacity of the event journal. The capacity is the total number of items that the event journal can hold at any moment. The actual number of items contained in the journal can be lower.

        NOTE The capacity is shared equally between all partitions. This is done by assigning each partition getCapacity() / partitionCount available slots in the event journal. Because of this, the effective total capacity may be somewhat lower and you must make sure that the configured capacity is at least greater than the partition count.

        Parameters:
        capacity - the capacity.
        Returns:
        the updated config.
        Throws:
        java.lang.IllegalArgumentException - if capacity smaller than 1.
        See Also:
        getCapacity()
      • getTimeToLiveSeconds

        public int getTimeToLiveSeconds()
        Gets the time to live in seconds.
        Returns:
        the time to live in seconds. Returns 0 the time to live if the items don't expire.
      • setTimeToLiveSeconds

        public EventJournalConfig setTimeToLiveSeconds​(int timeToLiveSeconds)
        Sets the time to live in seconds. Time to live is the time the event journal retains items before removing them from the journal. The events are removed on journal read and write actions, not while the journal is idle.

        Time to live can be disabled by setting timeToLiveSeconds to 0. This means that the events never expire but they can be overwritten when the capacity of the journal is exceeded.

        Parameters:
        timeToLiveSeconds - the time to live period in seconds
        Returns:
        the updated config
        Throws:
        java.lang.IllegalArgumentException - if timeToLiveSeconds smaller than 0.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • isEnabled

        public boolean isEnabled()
        Returns if the event journal is enabled.
        Returns:
        true if the event journal is enabled, false otherwise
      • setEnabled

        public EventJournalConfig setEnabled​(boolean enabled)
        Enables or disables the event journal.
        Parameters:
        enabled - true if enabled, false otherwise.
        Returns:
        the updated config.
      • writeData

        public void writeData​(ObjectDataOutput out)
                       throws java.io.IOException
        Description copied from interface: DataSerializable
        Writes object fields to output stream
        Specified by:
        writeData in interface DataSerializable
        Parameters:
        out - output
        Throws:
        java.io.IOException - if an I/O error occurs. In particular, an IOException may be thrown if the output stream has been closed.
      • readData

        public void readData​(ObjectDataInput in)
                      throws java.io.IOException
        Description copied from interface: DataSerializable
        Reads fields from the input stream
        Specified by:
        readData in interface DataSerializable
        Parameters:
        in - input
        Throws:
        java.io.IOException - if an I/O error occurs. In particular, an IOException may be thrown if the input stream has been closed.
      • equals

        public final boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class java.lang.Object