SDP-352 #6

  • //
  • spec/
  • job/
  • SDP-352
  • View
  • Commits
  • Open Download .zip Download (4 KB)
# The form data below was edited by robert_cowham
# Perforce Workshop Jobs
#
#  Job:           The job name. 'new' generates a sequenced job number.
#
#  Status:        Job status; required field.  There is no enforced or
#                 promoted workflow for transition of jobs from one
#                 status to another, just a set of job status values
#                 for users to apply as they see fit.  Possible values:
#
#                 open - Issue is available to be worked on.
#
#                 inprogress - Active development is in progress.
#
#                 blocked - Issue cannot be implemented for some reason.
#
#                 fixed - Fixed, optional status to use before closed.
#                 
#                 closed - Issue has been dealt with definitively.
#
#                 punted - Decision made not to address the issue,
#                    possibly not ever.
#
#                 suspended - Decision made not to address the issue
#                    in the immediate future, but noting that it may
#                    have some merit and may be revisited later.
#
#                 duplicate - Duplicate of another issue that.
#
#                 obsolete - The need behind the request has become
#                    overcome by events.
#
#  Project:       The project this job is for. Required.
#
#  Severity:      [A/B/C] (A is highest)  Required.
#
#  ReportedBy     The user who created the job. Can be changed.
#
#  ReportedDate:  The date the job was created.  Automatic.
#
#  ModifiedBy:    The user who last modified this job. Automatic.
#
#  ModifiedDate:  The date this job was last modified. Automatic.
#
#  OwnedBy:       The owner, responsible for doing the job. Optional.
#
#  Description:   Description of the job.  Required.
#
#  DevNotes:      Developer's comments.  Optional.  Can be used to
#                 explain a status, e.g. for blocked, punted,
#                 obsolete or duplicate jobs.  May also provide
#                 additional information such as the earliest release
#                 in which a bug is known to exist.
#
# Component:      Projects may use this optional field to indicate
#                 which component of the project a givenjob is associated
#                 with.
#
#                 For the SDP, the list of components is defined in:
#                 //guest/perforce_software/sdp/tools/components.txt
#
#  Type:          Type of job [Bug/Feature].  Required.
#
#  Release:       Release in which job is intended to be fixed.

Job:	SDP-352

Status:	closed

Project:	perforce-software-sdp

Severity:	C

ReportedBy:	robert_cowham

ReportedDate:	2018/10/12 14:37:39

ModifiedBy:	robert_cowham

ModifiedDate:	2019/10/21 06:49:16

OwnedBy:	tom_tyler

Description:
	Eliminate excessive journal rotations on p4d startup.
	
	We want to get closer to the comfortable, familiar old idea that
	"one journal rotation is roughly one day."
	
	Change @22215 introduced a change to rotate the journal on every
	p4d startup.  This was done for good reason:  In the event of
	journal corruption, e.g. in a 'sudden death' scenario for the
	master server, we want any corruption to be at the tail end of
	the journal file.  Rotating the journal on p4d start ensures
	that any corruption is always at the end of a journal file.
	
	In sophisticated topolgies when there is a "sudden death" of
	the master server, having journal corruption reliablhy at the
	end of a journal file can be a life saver, especially if you
	have a global topology replica and edge servers that need to
	be adjusted to skip the busted journal entries.
	
	HOWEVER, rotating the journal on every p4d startup causes
	confusion, and violates the "principal of least surprise."
	On a maintenance window with lots of things going on like
	sanity checks, p4d may be restarted a dozen times or so over
	the course of a long weekend.  You may have thought you
	had KEEPLOGS/KEEPJNLS/KEEPCKPS settings to preserve, say 14
	days worth of data, but reallly it is 14 journal rotataions,
	and they can get gobbled up fast in a maintenanc window.
	
	So, we want the "Have our cake and eat it to" solution.
	
	We want journal courrption to be reliably at the end of
	of journal file, but we don't want excessive journal
	rotations.  So, with SDP-351, we're adding detection
	of journal corruption to the preflight checks done
	during p4d startup.  If we detect corruption, we will
	rotate the journal on startup.  Otherwise, we won't.
	
	See also:  SDP-351

Component:	core-unix

Type:	Feature
# Change User Description Committed
#6 default
#5 default
#4 default
#3 default
#2 default
#1 default