Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-11241

AccuRev: reduce load and increase speed for SCM polling

    • Icon: Improvement Improvement
    • Resolution: Unresolved
    • Icon: Major Major
    • accurev-plugin
    • None
    • Jenkins v1.432, AccuRev Plugin v0.6.18

      This feature should be usable per job setting so that each job/project can either use the old style or this style because not every project likes to have the extra required stream.

      – -- – -- –

      Here is a suggestion for a more effective AccuRev polling to decide whether a CI build should be started.

      1) One time only: Create a sub-stream of Project named Project_Last_CI and set time-basis to "now"
      accurev mkstream -s Project_Last_CI -b Project -t now

      2) On each polling cycle, check to see if there are any changes in Project (promotes into Project, its parent, its grandparent, any xlinks, etc.)
      accurev diff -a -i -v Project -V Project_Last_CI

      3) If the accurev diff command produces any output, it is time to kick off a CI build
      a) Update Last_CI stream time-basis
      accurev chstream -s Project_Last_CI -t now
      b) Perform regular hist information being done today to capture transactions
      c) workspace update
      d) build

      Because the diff command normally takes just 4-5 seconds, even for a large stream, this will create a significant load reduction. It should actually enable the project to run the polling more frequently while simultaneously creating less load on the AccuRev server.

          [JENKINS-11241] AccuRev: reduce load and increase speed for SCM polling

          robsimon created issue -
          robsimon made changes -
          Description Original: This should feature should be usable per job setting so that each job/project can either use the old style or this style because not every project likes to have the extra stream.

          -- -- -- -- --

          Here is a suggestion for a more effective AccuRev polling to decide whether a CI build should be started.

          1) One time only: Create a sub-stream of Project named Project_Last_CI and set time-basis to "now"
          accurev mkstream -s Project_Last_CI -b Project -t now

          2) On each polling cycle, check to see if there are any changes in Project (promotes into Project, its parent, its grandparent, any xlinks, etc.)
          accurev diff -a -i -v Project -V Project_Last_CI

          3) If the accurev diff command produces any output, it is time to kick off a CI build
          a) Update Last_CI stream time-basis
          accurev chstream -s Project_Last_CI -t now
          b) Perform regular hist information being done today to capture transactions
          c) workspace update
          d) build

          Because the diff command normally takes just 4-5 seconds, even for a large stream, this will create a significant load reduction. It should actually enable the project to run the polling more frequently while simultaneously creating less load on the AccuRev server.
          New: This feature should be usable per job setting so that each job/project can either use the old style or this style because not every project likes to have the extra required stream.

          -- -- -- -- --

          Here is a suggestion for a more effective AccuRev polling to decide whether a CI build should be started.

          1) One time only: Create a sub-stream of Project named Project_Last_CI and set time-basis to "now"
          accurev mkstream -s Project_Last_CI -b Project -t now

          2) On each polling cycle, check to see if there are any changes in Project (promotes into Project, its parent, its grandparent, any xlinks, etc.)
          accurev diff -a -i -v Project -V Project_Last_CI

          3) If the accurev diff command produces any output, it is time to kick off a CI build
          a) Update Last_CI stream time-basis
          accurev chstream -s Project_Last_CI -t now
          b) Perform regular hist information being done today to capture transactions
          c) workspace update
          d) build

          Because the diff command normally takes just 4-5 seconds, even for a large stream, this will create a significant load reduction. It should actually enable the project to run the polling more frequently while simultaneously creating less load on the AccuRev server.
          Joshua Sherwood made changes -
          Assignee Original: Scott Tatum [ statler ] New: Joshua Sherwood [ jsherwood_accurev ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 141460 ] New: JNJira + In-Review [ 175486 ]
          Joseph Petersen (old) made changes -
          Assignee Original: Joshua Sherwood [ jsherwood_accurev ] New: Joseph Petersen (old) [ casz ]
          Joseph Petersen (old) made changes -
          Assignee Original: Joseph Petersen (old) [ casz ]

            Unassigned Unassigned
            robsimon robsimon
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: