Project

General

Profile

Story #1952

SerialVersion in SystemMetadata needs to be incremented with each Update

Added by Robert Waltz over 12 years ago. Updated over 12 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Robert Waltz
Category:
Documentation
Target version:
Start date:
2011-11-01
Due date:
% Done:

100%

Story Points:
Sprint:

Description

The serialVersion in SystemMetadata allows for consistency between updates of systemMetadata

systemMetadata can only be updated on the CN
systemMetadata is managed by Hazelcast

Every operation that manipulated SystemMetadata on the CN will follow the pattern:

lock(); get(); increment(); put(); unlock();

if (hzSystemMetadata.tryLock(pid, 500L, TimeUnit.MILLISECONDS)) {
Systemmetadata systemMetadata = hzSystemMetadata.get(pid);
do something here

  systemMetadata.setSerialVersion
                (systemMetadata.getSerialVersion().add(BigInteger.ONE));
  hzSystemMetadata.put(systemMetadata);
  hzSystemMetadata.unlock(pid);

}

and of course you'll want the above in a try catch block too, so that if an exception is raised, a lock will still be released

Locking will be performed on the hzSystemMetadata HazelcastMap

Get will be performed against the hzSystemMetadata HazelcastMap

increment is an operation performed on the SystemMetadata.serialVersion.

Put will be performed against the hzSystemMetadata HazelcastMap

Unlocking will be performed on the Hazelcast Lock structure


Subtasks

Task #1979: Update synchronization to use the locking and serialversion algorithmClosedRobert Waltz

Task #1980: Update replication to use the locking and serialVersion algorithmClosedChris Jones

Task #1981: Update CNReplication implementation to use the locking and serialVersion algorithmClosedChris Jones

Task #1991: Update CNReplication and CNAuthorization interfaces with serialVersion changeClosedChris Jones

Task #1992: Update CNode implementation with serialVersion AdditionsClosedNicholas Dexter

Task #1993: Update Metacat implementation to support serialVersion additionsClosedChris Jones

Task #1994: Update CNReplication proxy classes to support serialVersion additionsClosedChris Jones

Task #1995: Update Metacat auth implementation to support serialVersion additionsClosedChris Jones

Task #1996: Update CNAuthorization proxy classes to support serialVersion additionsClosedChris Jones

Task #1982: Update CNAuthorization implementation to use the locking and serialVersion algorithmClosedChris Jones


Related issues

Related to Infrastructure - Story #1966: CNs should keep all replica MNs up to date with SystemMetadata changes Closed 2011-11-01 2011-11-19

History

#1 Updated by Dave Vieglais over 12 years ago

  • Target version changed from Sprint-2011.44-Block.6 to Sprint-2011.45-Block.6
  • Position set to 1

#2 Updated by Dave Vieglais over 12 years ago

  • Target version changed from Sprint-2011.45-Block.6 to Sprint-2011.46-Block.6
  • Position deleted (9)
  • Position set to 1

#3 Updated by Robert Waltz over 12 years ago

  • Status changed from New to Closed

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)