Project

General

Profile

Subtask #2744

Feature #2611: mon: Single-Paxos

Subtask #2621: mon: Single-Paxos: synchronize the MonitorDBStore of oblivious monitor

Subtask #2736: mon: Single-Paxos: Sync: Implement message passing

mon: Single-Paxos: Sync: Create new Message type

Added by Joao Eduardo Luis almost 7 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Category:
Monitor
Target version:
Start date:
07/06/2012
Due date:
% Done:

100%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

Create a new message type MMonSync, to dissociate it from the MMonProbe messages, and to allow us to use fields specific to the Synchronization process.

This new message shall have the following operation types:

 /**
  * Start synchronization request
  * (mon.X -> Leader)
  */
  OP_START        = 1,
  /**
   * Reply to an OP_START
   * (Leader -> mon.X)
   */
  OP_START_REPLY    = 2,
  /**
   * Let the Leader know we are still synchronizing
   * (mon.X -> Leader)
   */
  OP_HEARTBEAT    = 3,
  /**
   * Reply to a hearbeat
   * (Leader -> mon.X)
   */
  OP_HEARTBEAT_REPLY    = 4,
  /**
   * Let the Leader know we finished synchronizing
   * (mon.X -> Leader)
   */
  OP_FINISH        = 5,
  /**
   * Request a given monitor (mon.Y) to start synchronizing with us, hence
   * sending us chunks.
   * (mon.X -> mon.Y)
   */
  OP_START_CHUNKS    = 6,
  /**
   * Send a chunk to a given monitor (mon.X)
   * (mon.Y -> mon.X)
   */
  OP_CHUNK        = 7,
  /**
   * Acknowledge that we received the last chunk sent
   * (mon.X -> mon.Y)
   */
  OP_CHUNK_REPLY    = 8,
  /**
   * Reply to an OP_FINISH
   * (Leader -> mon.X)
   */
  OP_FINISH_REPLY    = 9,
  /**
   * Let the receiver know that he should abort whatever he is in the middle
   * of doing with the sender.
   */
  OP_ABORT        = 10

This message shall have the following flags:

  /**
   * Chunk is the last available
   */
  const static uint8_t FLAG_LAST      = 0x01;
  /**
   * Let the other monitor it should retry again its last operation.
   */
  const static uint8_t FLAG_RETRY     = 0x02;
  /**
   * This message contains a crc
   */
  const static uint8_t FLAG_CRC          = 0x04;
  /**
   * Do not reply to this message to the sender, but to @p reply_to.
   */
  const static uint8_t FLAG_REPLY_TO  = 0x08;

This message shall have the following fields:

  uint32_t op;
  uint8_t flags;
  version_t version;
  bufferlist chunk_bl;
  pair<string,string> last_key;
  __u32 crc;
  entity_inst_t reply_to;

History

#1 Updated by Joao Eduardo Luis almost 7 years ago

  • Description updated (diff)
  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

Only thing missing: adjusting the commit message to fully describe the message in detail.

Also available in: Atom PDF