Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-28178

Implement cluster time key access and management

    • Type: Icon: Task Task
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Fully Compatible
    • Sharding 2017-03-27, Sharding 2017-04-17, Sharding 2017-05-08, Sharding 2017-05-29

      This ticket was spun off from SERVER-27768.

      As described in that ticket, the key the mongos and mongod will use to verify the clusterTime will be generated by the config server primary during transition to primary. It will be stored in the admin.system.keys with the following format:

      {
          _id: 'clusterTimeKey',
          key: <secure pseudorandom 20 byte key generated by TimeProofService::generateRandomKey()>
      }
      

      mongod & mongos behavior:

      1. After startup, read the key document from config
      2. Initialize TimeProofService with the key
      3. Attach TimeProofService to LogicalClock

      special for config server:

      1. After becoming primary, upsert the key document as described above

      The key will be fetched from the config server through a new method on the ShardingCatalogClient, and the key will be stored on the config server through a new method on the ShardingCatalogManager.

            Assignee:
            jack.mulrow@mongodb.com Jack Mulrow
            Reporter:
            jack.mulrow@mongodb.com Jack Mulrow
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: