Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


com.tangosol.net.cache
Class ReadWriteBackingMap.WriteQueue

java.lang.Object
  extended by CoherenceApplicationEdition
      extended by com.tangosol.net.cache.ReadWriteBackingMap.WriteQueue

Enclosing class:
ReadWriteBackingMap

public class ReadWriteBackingMap.WriteQueue
extends CoherenceApplicationEdition

A queue that only releases entries after a configurable period of time.

Author:
cp 2002.10.22

Constructor Summary
protected ReadWriteBackingMap.WriteQueue()
          Construct a WriteQueue that holds write-behind entries.

 

Method Summary
protected  ReadWriteBackingMap.Entry add(ReadWriteBackingMap.Entry entryNew, long cDelay)
          Add an entry to the queue.
 java.lang.Object checkPending(java.lang.Object binKey)
          Check for an item known to the WriteBehind queue.
 void clearPending()
          Clear the map of pending entries.
 boolean containsKey(java.lang.Object binKey)
           
 long getDelayMillis()
           
 int getDelaySeconds()
           
protected  java.util.Map getEntryMap()
           
protected  java.util.Map getPendingMap()
          Obtain a map of entries removed from the queue, but not yet persisted to the underlying datastore.
protected  LongArray getRipeArray()
           
 boolean isEmpty()
           
 ReadWriteBackingMap.Entry remove()
          Wait for item in the queue to ripen (to be ready to be removed), and when there is one and it is ripe, then remove and return it.
 ReadWriteBackingMap.Entry remove(long cMillis)
          Wait for the next item in the queue to ripen (to be ready to be removed), and remove and return it, or return null if the specified wait time has passed.
protected  ReadWriteBackingMap.Entry remove(java.lang.Object binKey)
          Remove a key from the queue if the key is in the queue.
protected  ReadWriteBackingMap.Entry removeImmediate()
          Remove the first key from the queue immediately.
 ReadWriteBackingMap.Entry removeNoWait()
          Check for a ripe or soft-ripe item in the queue, and if there is one, return it; otherwise, return null.
 void setDelayMillis(long cMillis)
          Specify the number of millseconds that an entry added to the queue will sit in the queue before being removable ("ripe").
 void setDelaySeconds(int cSeconds)
          Specify the number of seconds that an entry added to the queue will sit in the queue before being removable ("ripe").
 int size()
           

 

Constructor Detail

ReadWriteBackingMap.WriteQueue

protected ReadWriteBackingMap.WriteQueue()
Construct a WriteQueue that holds write-behind entries.

Method Detail

getDelaySeconds

public int getDelaySeconds()
Returns:
the number of seconds that an entry added to the queue will sit in the queue before being removable ("ripe")

setDelaySeconds

public void setDelaySeconds(int cSeconds)
Specify the number of seconds that an entry added to the queue will sit in the queue before being removable ("ripe").
Parameters:
cSeconds - the number of seconds to wait before allowing an entry to be removed from the queue

getDelayMillis

public long getDelayMillis()
Returns:
the number of milliseconds that an entry added to the queue will sit in the queue before being removable ("ripe")
Since:
Coherence 3.4

setDelayMillis

public void setDelayMillis(long cMillis)
Specify the number of millseconds that an entry added to the queue will sit in the queue before being removable ("ripe").
Parameters:
cMillis - the number of milliseconds to wait before allowing an entry to be removed from the queue
Since:
Coherence 3.4

add

protected ReadWriteBackingMap.Entry add(ReadWriteBackingMap.Entry entryNew,
                                        long cDelay)
Add an entry to the queue. By specifying a lRipe that is greater than 0, persisting of this entry will be delayed with the specified number of milliseconds. Note that the delay will always be adjusted to make sure that this entry ripes no earlier than any existing ones.
Parameters:
entryNew - the entry to insert
cDelay - the number of milliseconds until the entry is considered ripe
Returns:
an old entry for the same key, if such an entry existed at the time this method was invoked; null otherwise

remove

protected ReadWriteBackingMap.Entry remove(java.lang.Object binKey)
Remove a key from the queue if the key is in the queue. This method is used, for example, if an item has actually been removed from the backing map.
Parameters:
binKey - the key object
Returns:
the corresponding entry in the queue or null if the specified key was not in the queue

removeImmediate

protected ReadWriteBackingMap.Entry removeImmediate()
Remove the first key from the queue immediately.
Returns:
the first entry in the queue or null if the queue is empty

remove

public ReadWriteBackingMap.Entry remove()
Wait for item in the queue to ripen (to be ready to be removed), and when there is one and it is ripe, then remove and return it.
Returns:
the next item in the queue (it will only return null when the backing map is no longer active)

remove

public ReadWriteBackingMap.Entry remove(long cMillis)
Wait for the next item in the queue to ripen (to be ready to be removed), and remove and return it, or return null if the specified wait time has passed.
Parameters:
cMillis - the number of ms to wait for an entry to ripen; pass -1 to wait indefinitely or 0 for no wait
Returns:
the next item in the queue, or null if the wait time has passed or if the backing map is no longer active

removeNoWait

public ReadWriteBackingMap.Entry removeNoWait()
Check for a ripe or soft-ripe item in the queue, and if there is one, return it; otherwise, return null.

Unlike the remove(java.lang.Object) method, this method will also remove soft-ripe items as calculated using the write-batch factor. A soft-ripe item is an item that has been in the write-behind queue for at least the following duration:

 D' = (1.0 - F)*D
where:
 D = write-behind delay
 F = write-batch factor
Returns:
the next item in the queue if one is ripe or soft-ripe and if the backing map is active, otherwise null

size

public int size()
Returns:
the length of the queue

isEmpty

public boolean isEmpty()
Returns:
true if and only if the queue contains no items

containsKey

public boolean containsKey(java.lang.Object binKey)
Parameters:
binKey - the key to look for
Returns:
true if and only if the queue contains the specified key

checkPending

public java.lang.Object checkPending(java.lang.Object binKey)
Check for an item known to the WriteBehind queue.
Parameters:
binKey - the key object to look for
Returns:
a value from the queue or a pending map

clearPending

public void clearPending()
Clear the map of pending entries.

getEntryMap

protected java.util.Map getEntryMap()
Returns:
the set of items in the queue

getRipeArray

protected LongArray getRipeArray()
Returns:
the list of items in the queue

getPendingMap

protected java.util.Map getPendingMap()
Obtain a map of entries removed from the queue, but not yet persisted to the underlying datastore. The returned map is not thread safe, so all access to its content must be synchronized by the caller.
Returns:
the map of items not yet persisted to the underlying datastore

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.