Summary of the content on the page No. 1
Checkpoint Service
Programmer’s Reference
6806800C47B
September 2007
Summary of the content on the page No. 2
2007 Motorola All rights reserved. Trademarks Motorola and the stylized M logo are trademarks registered in the U.S. Patent and Trademark Office. All other product or service names are the property of their respective owners. ® Intel is a trademark or registered trademark of Intel Corporation or its subsidiaries in the United States and other countries. ™ Java and all other Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. ®
Summary of the content on the page No. 3
Contents About this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 Models and Concepts . . . .
Summary of the content on the page No. 4
Contents 4 Checkpoint Service Programmer’s Reference (6806800C47B)
Summary of the content on the page No. 5
List of Tables Table 1-1 Compliance Table - Checkpoint Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Table 2-1 ncsCkptRegisterCkptArrivalCallback() Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Table 2-2 ncsCkptRegisterCkptArrivalCallback() Return Values . . . . . . . . . . . . . . . . . . . . . . . . . 18 Table 2-3 (*ncsCkptCkptArrivalCallback)() Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Table 2-4 S
Summary of the content on the page No. 6
List of Tables 6 Checkpoint Service Programmer’s Reference (6806800C47B)
Summary of the content on the page No. 7
List of Figures Figure 1-1 Checkpoint Service -Subparts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 7 Checkpoint Service Programmer’s Reference (6806800C47B)
Summary of the content on the page No. 8
List of Figures 8 Checkpoint Service Programmer’s Reference (6806800C47B)
Summary of the content on the page No. 9
About this Manual Overview of Contents This manual is divided into the following chapters and appendices. Chapter 1, Introduction, on page 13 Provides an overview of the Cechpoint service functionilty and provides references to standard SAF documents. Chapter 2, API Description, on page 17 Provides information that is required when writing applications that make use of the Checkpoint service. It also explains non-standard extensions that were added to the service. Appendix A, Sample A
Summary of the content on the page No. 10
About this Manual Abbreviation Definition MDS Message Distribution Service MIB Management Information Base NCS Netplane Core Services SAF Service Availability Forum Conventions The following table describes the conventions used throughout this manual. Notation Description 0x00000000 Typical notation for hexadecimal numbers (digits are 0 through F), for example used for addresses and offsets 0b0000 Same for binary numbers (digits are 0 and 1) bold Used to emphasize a word Screen Used for o
Summary of the content on the page No. 11
About this Manual Summary of Changes This manual has been revised and replaces all prior editions. Part Number Publication Date Description 6806800C47A February 2007 First edition 6806800C47B September 2007 Minor text updates for Avantellis Release 3.0.2 Comments and Suggestions We welcome and appreciate your comments on our documentation. We want to know what you think about our manuals and how we can make them better. Mail comments to: Motorola GmbH Embedded Communications Computing Lil
Summary of the content on the page No. 12
About this Manual 12 Checkpoint Service Programmer’s Reference (6806800C47B)
Summary of the content on the page No. 13
Introduction 1 1.1 Overview The Checkpoint Service provides a facility for processes to record checkpoint data incrementally, which can be used to protect an application against failures. When recovering from fail-over or switch-over situations, or restart situations, the checkpoint data can be retrieved, and execution can be resumed from the state recorded before the failure. Checkpoints are cluster-wide entities that are designated by unique names. A copy of the data stored in a checkp
Summary of the content on the page No. 14
Introduction Models and Concepts 1.2 Models and Concepts The Checkpoint service comprises three distributed subparts that maintain the cluster-wide checkpoint database. Checkpoint Director Checkpoint Node Director Checkpoint Agent Figure 1-1 Checkpoint Service -Subparts CPD CPD Payload Blade 1 Payload Blade 2 standby active CPND CPND CPND CPND CPA CPA CPA CPA Application Application Application Application Node SMH 1 Node SMH 2 CPD - Checkpoint Director Communication path (MDS) CPND -
Summary of the content on the page No. 15
Checkpoint Agent Introduction choose the CPND that oversees the active replica of a particular checkpoint via the invocation of the saCkptActiveReplicaSet() API. In all other cases, the CPD will designate the CPND that oversees the active replica. The CPND that oversees the active replica of a particular checkpoint will control all the operations on that checkpoint and it is not constrained to be present on the same node where the application resides. The CPND that manages the active rep
Summary of the content on the page No. 16
Introduction Related SAF Standard Documents 1.4 Related SAF Standard Documents The document SAF-AIS-CKPT-B.01.01 is an SAF standard document. It provides the service definition of the Checkpoint service and can be found at the following location: http://www.saforum.org/apps/org/workgroup/twg/ais/download.php/1445/aisCkpt.B0101.pdf The following information can be found in the document: Service concept definitions and descriptions Functional behaviors and relationships A complete set of s
Summary of the content on the page No. 17
API Description 2 2.1 Service Extensions The current release of NCS Checkpoint Service provides one API and a callback function in addition to the APIs defined in the SAF-AIS Checkpoint Service document SAF-AIS-CKPT- B.01.01. These APIs are defined as 'stand-alone' APIs so that other SAF-defined APIs are not disturbed, and compliance to SAF is not compromised. These extensions are defined to provide the hot-standby support to the Checkpoint Service user applications. 2.1.1 ncsCkptRegisterC
Summary of the content on the page No. 18
API Description (*ncsCkptCkptArrivalCallback)() The following table lists possible return values of this call. Table 2-2 ncsCkptRegisterCkptArrivalCallback() Return Values Return Value Description SA_AIS_OK The function completed successfully SA_AIS_ERR_LIBRARY An unexpected problem SA_AIS_ERR_BAD_HANDLE the handle ckptHandle is invalid SA_AIS_ERR_INVALID_PARAM the callback function pointer is wrong SA_AIS_ERR_NO_MEMORY out of memory 2.1.2 (*ncsCkptCkptArrivalCallback)() Prototype typedef vo
Summary of the content on the page No. 19
Implementation Notes API Description If a callback of this form has been registered with the Checkpoint service via ncsCkptRegisterCkptArrivalCallback(), then it will be invoked whenever new or updated checkpoint replica data arrives for the checkpoint identified by checkpointHandle. The checkpoint writer is never called back. Also, applications that have not opened the checkpoint with the SA_CKPT_CHECKPOINT_READ flag are not called back. This callback is invoked in the context of a thre
Summary of the content on the page No. 20
API Description Time-out Arguments for Checkpoint Service APIs Creating extra replicas on the system manager node for non-collated checkpoints is an overhead. The advantage of a non-collocated checkpoint is that replica will be created in two places, no matter from how many nodes it is opened. 2.2.2 Time-out Arguments for Checkpoint Service APIs For all synchronous API calls, the application will provide the “timeout” argument. The application will consider invocation of the particular API