[OpenSIPS-Devel] [OpenSIPS/opensips] 0b3ad4: clusterer: Make the data sync interface more robust

Liviu Chircu noreply at github.com
Mon Jul 29 07:12:35 EDT 2019


  Branch: refs/heads/bugfix/fix-dialog-sync-bugs
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 0b3ad435be73d7ef49c511d2b70039c39a883135
      https://github.com/OpenSIPS/opensips/commit/0b3ad435be73d7ef49c511d2b70039c39a883135
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-07-29 (Mon, 29 Jul 2019)

  Changed paths:
    M modules/clusterer/sync.c

  Log Message:
  -----------
  clusterer: Make the data sync interface more robust

This patch improves the data sync interface so that during a sync,
modules are no longer forced to micro-manage the data packets they are
receiving from the interface.  They can now freely abort the processing
of a sync chunk at any time, without disrupting the processing of the
entire sync packet (composed of many more of such data chunks).

Additionally, since the sync packet format has changed (an extra integer
is needed for each chunk in order to allow the "skip" mechanism), the
sync packet version is now bumped from 1 -> 2, in order to prevent any
compatibility issues with OpenSIPS nodes without this patch.


  Commit: cdec657458086f2624ae58fa7fb318de504c53eb
      https://github.com/OpenSIPS/opensips/commit/cdec657458086f2624ae58fa7fb318de504c53eb
  Author: Liviu Chircu <liviu at opensips.org>
  Date:   2019-07-29 (Mon, 29 Jul 2019)

  Changed paths:
    M bin_interface.c
    M bin_interface.h
    M modules/clusterer/api.h
    M modules/clusterer/clusterer.h
    M modules/clusterer/sync.c
    M modules/clusterer/sync.h
    M modules/dialog/dlg_replication.c
    M modules/usrloc/ureplication.c

  Log Message:
  -----------
  clusterer: Enhance the versioning of sync packets

This commit adds an additional "version" field for the sync packets,
which are more complex than the other ones.  Since they contain
serialization logic from two different layers (clusterer + data module),
they should also contain two version fields, to allow each module to
discard data coming from an OpenSIPS donor node running on a differing
binary version.


Compare: https://github.com/OpenSIPS/opensips/compare/0b3ad435be73%5E...cdec65745808



More information about the Devel mailing list