Paparazzi disc space guideline


Capture rate

Paparazzi can take a multi-monitor screenshot as fast as every second. We do not run it at its fastest rate ourselves. We capture every 3 seconds.

The resulting 5130x1320 pixel image averages 1.5 mb with most values between .8-1.9 mb. At a capture every second, there is a need for 3600 screenshots occupying 5.4 gb/hour. A week's worth of capture would nearly fill a 1 tb disc.

Clearly, there is a need to cull the results.

Cull architecture

Paparazzi culls captured screenshots by keeping some screenshots and discarding others. It sets staged time limits (like fig 1) on how many screenshots may occupy the following time slots:

Fig. 1 Time ranges act like a staged waterfall
 
Fig. 2 Editing the Paparazzi_cull.xml configuration
  • minute - the most recent past minute
  • hours - the next 119 minutes (2 hours)
  • day - the next 22 hours (first day)
  • week1 - the next 6 days (first week)
  • week2 - the next 7 days (second week)
  • year1 - the next 50 weeks (first year)
  • year2 - the next year (second year)
  • year3 - anything beyond above

The default for the most recent minute is 4 and 0 everywhere else. You can edit this configuration by right clicking the Perserv tray icon and following the path mapped out in fig. .2.

The cull process itself runs periodically, presently every 15 seconds. So, if you capture once every second, there would be between 0 and 15 screenshots before the cull runs. The cull time-shares with the viewer so heavy viewer load can space out when the cull runs.

The cull operates by enforcing a minimum time between successive screenshots. Using the default 4 for first minute, the cull will delete screenshots that are within 15 seconds of their most recent past neighbor.

Guidelines

Here is a framework for setting up a screenshot retention policy. Indeed, since the amount below is 1 screenshot, it could just as well apply to 1 of anything.:
    timeslot  amount          interval saved     calculation
    ------      ---          ---------------    ------------
    minute        4          every 15 second    (60/4)
    2 hours      24          every 5 minute     (2*60/24)
    restofday    88          every 15 min       (60*22/88)
    week1        72          every 2 hour       (6*24/72)
    week2        84          every 2 hour       (7*24/84)
    year1       351          daily              365-14
    year2        52          weekly             52
    year3         0          discard             0
              -----
   subtotal     675     
    system       15   
               ----
total           690 screenshots @ 1.mb avg = 1035 mb = 1.0 gb
Note that over half the screenshots are invested here in a single timeslot: 351 screenshots providing daily screenshots. You can adjust this (and other) timeslot up or down to devote more or less to any timeslot.

Another approach is simply use these guidelines as a base distribution and note the disc space total is a neat 1 gb. So, for 100 gb, you can be 100x more aggressive. Just multiply everything by 100 (subject to 60 max for minute and appx 7140 for 2 hours considering uncalibrated max scan rate and cull upper bound performance)

Default

Here is how Paparazzi is distributed by default:
    timeslot  amount          interval saved     calculation
    ------      ---          ---------------    ------------
    minute        4          every 15 second    (60/4)
              -----
   subtotal       4     
    system       15
    pretty        1   
               ----
total            20 screenshots @ 1.mb avg = 30 mb = .03 gb
The default is not meant to capture history. It is distributed this way so it does not gobble up disc space until you explicitly tell it how much.

Cull vs. viewer

You may note that the Paparazzi viewer has a comparable but not equivalent timeslot scheme. They were developed separately and the timeslot schemes not aligned. We considered unifying the schemes but that would have subordinated the needs of one for the other. We did not go in that direction. What we have are the crucial cull task and human interface each have timeslot schemes originally developed to optimize the needs of each task. The time periods are fixed in each scheme and you may set the amounts to meet your needs.