Skip to content

GSS UUID Design

Overall thought

  1. Add UUID field: Add UUID column to the existing table and fill UUID for historical datas.
  2. Modify business logic: Modify the code logic of related additions, deletions, modifications and queries, and gradually convert from relying on id to using uuid.
  3. Modify primary key: After the subsequent complete migration to uuid, remove the primary key constraint of id and set uuid as the primary key.
  4. We can set a switch to control the use of the uuid scheme.
  5. Keep id until the uuid solution runs stably.
  1. status_release_note 1. add uuid field 2. setUUID for history release_note 3. add release note: setUUID 4. modify release note: releaseNoteRepository.findById —>releaseNoteRepository.findByUUID 5. delete release note: releaseNoteRepository.deleteById —> releaseNoteRepository.deleteByUUID 6. getReleaseNoteById:releaseNoteRepository.findById —>releaseNoteRepository.findByUUID
  2. status_api_doc 1. add uuid field 2. setUUID for history api_doc 3. add api doc: setUUID 4. modify api doc: statusApiDocRepository.findById —> statusApiDocRepository.findByUUID 5. delete api doc: statusApiDocRepository.deleteById —> statusApiDocRepository.deleteByUUID 6. getStatusApiDocById: statusApiDocRepository.findById —> statusApiDocRepository.findByUUID 7. getAllStatusApiDoc: statusApiDocRepository.findAll(order by id—>order by update_date)
  3. status_maintenance_dcs 1. add dc_uuid field 2. setUUID for history maintenance_dcs 3. add dc: setDCUUID 4. modify dc: dataCenterRepository.findByDcId —> dataCenterRepository.findByDCUUID 5. delete dc: 1. clusterRepository.deleteByDcId —> clusterRepository.deleteByDCUUID 2. dataCenterRepository.deleteById —> dataCenterRepository.deleteByDCUUID 6. getDataCenterbyDcId: dataCenterRepository.findByDcId —> dataCenterRepository.findByDCUUID
  4. status_maintenance_clusters 1. add dc_uuid, cluster_uuid fields 2. setUUID for history maintenance_clusters ( UPDATE STATUS_MAINTENANCE_CLUSTERS SET cluster_uuid = gen_random_uuid(), dc_uuid = (SELECT dc_uuid FROM STATUS_MAINTENANCE_DCS WHERE STATUS_MAINTENANCE_DCS.dc_id = STATUS_MAINTENANCE_CLUSTERS.dc_id); ) 3. add cluster: 1. dataCenterService.getDataCenterbyDcId —> dataCenterService.getDataCenterbyDCUUID 2. add cluster: setUUID 4. modify cluster: clusterRepository.findById —> clusterRepository.findByUUID 5. Delete cluster: clusterRepository.deleteById —> clusterRepository.deleteByUUID 6. getClusterByDcId: clusterRepository.findAllByDcId —> clusterRepository.findAllByDCUUID 7. getClusterbyId: clusterRepository.findById —> clusterRepository.findByUUID 8. getClusterAndDC 1. getClusterByDcId —> getClusterByDcUUID 2. clusterMap.put("value",cluster.getClusterId()) —> clusterMap.put("value",cluster.getClusterUUID()) 3. dcMap.put("value",dataCenter.getDcId()) —> dcMap.put("value",dataCenter.getDcUUID())
  5. status_incident_subscription_info 1. add uuid field 2. setUUID for history incident_subscription_info 3. add: saveOrUpdateSubIncident —> setUUID
  6. status_announcements_subscription_info 1. add uuid field 2. setUUID for history announcements_subscription_info 3. add: saveOrUpdateSubAnnouncement —> setUUID
  7. status_maintenance_event 1. add uuid field 2. setUUID for history maintenance_event 3. add/modify: saveMaintenanceEvent —> setUUID 4. delete: maintenanceEventRepository.deleteById —> maintenanceEventRepository.deleteByUUID
  8. status_maintenance_rss 1. add uuid field 2. setUUID for history maintenance_rss 3. add: saveMaintenanceAnnouncement —> setUUID 4. modify: getAnnouncementByAnnouncementId —> getAnnouncementByAnnouncementUUID 5. delete: 6. 1. maintenanceRssRepository.deleteById —> maintenanceRssRepository.deleteByUUID 2. announcementSubscriptionRepository.deleteByAnnouncementId>announcementSubscriptionRepository.deleteByAnnouncementUUID 7. getAnnouncementByAnnouncementId —> getAnnouncementByAnnouncementUUID