Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-4639

Share information about DDL schema changes with existing node

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • cache, sql
    • None

    Description

      Some existing nodes will not participate in DDL operations. Namely:
      1) Client nodes;
      2) Server nodes without affected cache;
      3) Nodes which joined before finish of INIT phase of particular DDL operation. At this point coordinator doesn't know whether this operation will be started or not, so information about it is not shared with joining node.

      We need to inform this nodes about started DDL operations somehow, ensuring proper ordering. Custom discovery message is good candidate, but unfortunately it doesn't work for client nodes.

      Possible solution:
      1) Initial state is shared through custom discovery data.
      2) Completed updates are broadcasted from coordinator node to all other nodes through DDL_CHANGE messages.
      3) DDL_CHANGE messages must be processed in a single thread to avoid concurrency issues.
      4) If DDL_CHANGE message arrived before custom discovery data (i.e. we have a race between IO and discovery flows), it's processing should be delayed until custom disco data is processed.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              vozerov Vladimir Ozerov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: