Package org.jgroups.protocols
Class PDC
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.PDC
- All Implemented Interfaces:
Lifecycle
Persistent Discovery Cache. Caches mapping between logical and physical addresses on disk, merges them with the
results of the get physical address(es) events.
This is done by intercepting the get and set physical address(es) event. Needs to be placed between the transport and
the discovery protocol. The disk cache stores each mapping in a separate file, named by the logical address.
- Since:
- 3.3
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ConcurrentMap<Address, PhysicalAddress> protected Stringprotected FilenameFilterprotected Fileprotected static final StringFields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static StringaddressAsString(Address address) protected voidprotected booleandeleteFile(File file) Attempts to delete the provided file.
Logging is performed on the resultAn event is to be sent down the stack.voidinit()Called after a protocol has been created and before the protocol is started.private PDC.MappingreadAddressMapping(File file) protected voidReads all mappings from diskprotected voidremoveNodeFromDisk(Address logical_addr) protected voidwriteNodeToDisk(Address logical_addr, PhysicalAddress physical_addr) protected FilewriteToTempFile(File dir, Address logical_addr, Address physical_addr, String logical_name) Writes the data to a temporary file.
The file is stored in the same directory as the other cluster files but is given the tmp suffixMethods inherited from class org.jgroups.stack.Protocol
accept, addPolicy, addr, addr, afterCreationHook, destroy, down, down, enableStats, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, isErgonomics, level, parse, policies, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, resetStats, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, start, statsEnabled, stop, toString, up, up, up
-
Field Details
-
cache
-
cache_dir
-
SUFFIX
- See Also:
-
root_dir
-
filter
-
-
Constructor Details
-
PDC
public PDC()
-
-
Method Details
-
printCache
-
init
Description copied from class:ProtocolCalled after a protocol has been created and before the protocol is started. Attributes are already set. Other protocols are not yet connected and events cannot yet be sent. -
down
Description copied from class:ProtocolAn event is to be sent down the stack. A protocol may want to examine its type and perform some action on it, depending on the event's type. If the event is a message MSG, then the protocol may need to add a header to it (or do nothing at all) before sending it down the stack usingdown_prot.down(). -
createDiskCacheFile
- Throws:
IOException
-
readCacheFromDisk
protected void readCacheFromDisk()Reads all mappings from disk -
readAddressMapping
-
writeNodeToDisk
-
writeToTempFile
protected File writeToTempFile(File dir, Address logical_addr, Address physical_addr, String logical_name) throws Exception Writes the data to a temporary file.
The file is stored in the same directory as the other cluster files but is given the tmp suffix- Parameters:
dir- The disk cache root dirlogical_addr- The logical addressphysical_addr- The physical address- Returns:
- Throws:
Exception
-
removeNodeFromDisk
-
addressAsString
-
deleteFile
Attempts to delete the provided file.
Logging is performed on the result- Parameters:
file-- Returns:
-