Bacula-users

Re: [Bacula-users] Volumes are not being recycled?

2016-02-18 02:50:07
Subject: Re: [Bacula-users] Volumes are not being recycled?
From: Kern Sibbald <kern AT sibbald DOT com>
To: Ana Emília M. Arruda <emiliaarruda AT gmail DOT com>
Date: Thu, 18 Feb 2016 17:44:20 +1000
Hello Ana,

It may be possible that your code would work.  However, please be aware 
that it was *very* complicated to get the current code to produce the 
right results.  It is very easy to get an answer that is wrong by 1 hour 
or something like that.

Thus anything that one would submit would need to be *really* well tested.

Best regards,
Kern

On 02/18/2016 10:45 AM, Ana Emília M. Arruda wrote:
> Hello Kern,
>
> Thank you for your clear explanation. I was thinking about an
> "ExpiresAt" field instead of an "ExpiresIn". The meaning of an ExpiresIn
> field is perfectly clear for me expressed in seconds. Also, I agree that
> the results from bconsole commands should be less human-readable since
> we have GUI interfaces for this purpose. IMHO these values should be in
> a kind of raw format that can make their use easier with/in other
> languages/frameworks.
>
> Maybe the bellow PostgreSQL/MySQL queries (included in query.sql) could
> help with an "ExpiresAt" field:
>
>      21: List Media for a selected Pool
> Choose a query (1-21): 21
> Enter Pool name: File
> +---------+------------+--------------+---------------------+---------------------+
> | mediaid | volumename | volretention | lastwritten         |
> expiresat           |
> +---------+------------+--------------+---------------------+---------------------+
> |       1 | Vol-0001   |   31,536,000 | 2016-01-21 23:10:03 | 2017-01-20
> 23:10:04 |
> +---------+------------+--------------+---------------------+---------------------+
>
> For a PostgreSQL bacula database:
>
> # 21
> :List Media for a selected Pool
> *Enter Pool name:
> SELECT
> MediaId,VolumeName,Media.VolRetention,Media.LastWritten,to_timestamp(extract('epoch'
> from LastWritten)+Media.VolRetention+1) at time zone 'UTC' as ExpiresAt
>   FROM Media,Pool
>   WHERE Name='%1' AND Media.PoolId=Pool.PoolId;
>
>
> For a MySQL bacula database:
>
> # 21
> :List Media for a selected Pool
> *Enter Pool name:
> SELECT
> MediaId,VolumeName,Media.VolRetention,Media.LastWritten,FROM_UNIXTIME(UNIX_TIMESTAMP(LastWritten)+Media.VolRetention+1)
> AS ExpiresAt
>   FROM Media,Pool
>   WHERE Name='%1' AND Media.PoolId=Pool.PoolId;
>
> I'm not sure about adding one second to this value...
>
> Am I misunderstanding something here?
>
> Thank you.
>
> Best regards,
> Ana
>
>
>
> On Thu, Feb 18, 2016 at 12:58 AM, Kern Sibbald <kern AT sibbald DOT com
> <mailto:kern AT sibbald DOT com>> wrote:
>
>     Hello Heitor,
>
>     One of the basic design conditions for Bacula is that as much as
>     possible that goes into it officially should be understandable and
>     maintainable by an average C/C++ programmer.  Once things start
>     getting complicated, I slow down ...
>
>     Best regards,
>     Kern
>
>     On 02/18/2016 08:25 AM, Heitor Faria wrote:
>
>         Kern,
>
>         Sorry for the dumb question but could not bconsole make the values
>         conversion in similar way to this shell script bytes conversion
>         snippet
>         before printing?
>
>         xargs -i echo 'scale=2; {}/1073741824' | bc
>
>         May it would be a more database independent approach.
>
>         Regards,
>         
> ===========================================================================
>         Heitor Medrado de Faria - LPIC-III | ITIL-F |  Bacula Systems
>         Certified
>         Administrator II
>         Do you need Bacula training?
>         <http://bacula.us/video-classes>http://bacula.us/video-classes/
>         +55 61 8268-4220 <tel:%2B55%2061%208268-4220>
>         Site: <http://bacula.us>http://bacula.us FB: heitor.faria
>         
> ===========================================================================
>
>         Enviado por TypeApp <http://www.typeapp.com/r>
>
>         Em 17 de fev de 2016, em 20:05, Kern Sibbald <kern AT sibbald DOT com
>         <mailto:kern AT sibbald DOT com>
>         <mailto:kern AT sibbald DOT com <mailto:kern AT sibbald DOT com>>> 
> escreveu:
>
>
>              Hello Ana (and Heitor),
>
>              Please note that at the current time, the list command is
>         generic, and
>              thus it only knows how to print character strings that have
>         been
>              returned by the SQL engine.  Though there may be some way
>         to tell SQL
>              that the result we get for expiresin is a "duration" (note:
>         very
>              different from a date such as LastWritten), I do not know
>         how to do it.
>
>              Thus for the moment, we are limited to displaying SQL generated
>              character strings in the form that SQL gives them to us.
>
>              The main point of the new expiresin field is that it is not
>         zero, the
>              retention period has not expired.  If it is a big positive
>         number
>              (number of seconds remaining before the volume expires),
>         then the Volume
>              will not be recycled.
>
>              Many people forget that the retention period *begins* from the
>              LastWritten time, which means that as long as you are
>         writing on the
>              Volume, nothing will be expired.  Maybe devoting a bit of
>         thought to
>              that particular point, and what would happen if we changed
>         it, would
>              make retention periods easier to understand.
>
>              Best regards,
>              Kern
>
>              On 02/16/2016 07:19 PM, Ana Emília M. Arruda wrote:
>
>                  Hello Kern and Heitor,
>
>                  I can see the ExpiresIn field in Bacula 7.4.0 version.
>                  Maybe the ExpiresIn value could be more useful if
>         displayed in
>                  the same
>                  format as the LastWritten field.
>
>                  Best regards,
>                  Ana
>
>                  On Tue, Feb 16, 2016 at 2:46 AM, Heitor Faria
>         <heitor AT bacula.com DOT br <mailto:heitor AT bacula.com DOT br>
>                  <mailto:heitor AT bacula.com DOT br
>         <mailto:heitor AT bacula.com DOT br>>> wrote:
>
>                              Recently I got tired of doing the mental
>         gymnastics
>                              to see when Volumes
>                              will expire and with Eric's SQL help, we
>         modified
>                              the list (and llist)
>                              media output to eliminate one or two of the
>         columns
>                              in the case of list
>                              media, but to add an "expiresin" field,
>         which makes
>                              it much easier to
>                              see when a volume will expire.
>
>                              This code has been in the public git
>         repository in
>                              Branch-7.4 along with
>                              a number of bug fixes since the 7.4.0
>         release. If
>                              you are interested in
>                              simplifying the Volume expiration mind
>         gymnastics
>                              you might checkout and
>                              try the new code.
>
>                              By the way, I thought that the above
>         feature was
>                              added after the 7.4.0
>                              release, but according to what I see in the
>         repo,
>                              much to my surprise it
>                              should also be in the released 7.4.0 version.
>
>                              I would be interested in any feedback.
>
>
>                          Hello, Kern: this feature is great and I'm
>         thankful for
>                          it, but is there a way
>                          to make information human readable?
>
>
>                      What do you mean?
>
>                      Please show me what you currently see and what you
>         prefer to
>                      see.
>
>
>                  Hello, Kern: sorry for being laconic.
>                  When I mean "human readable" is in the sense of ls, df
>         and other
>                  Linux commands:
>
>                  "-h, --human-readable
>                  print sizes in human readable format (e.g., 1K 234M 2G)"
>
>                  *What I see today:*
>
>                  *list media pool=File
>
>         
> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>                  | MediaId | VolumeName | VolStatus | Enabled | VolBytes |
>                  VolFiles | VolRetention | Recycle | Slot | InChanger |
>         MediaType |
>                  LastWritten | ExpiresIn |
>
>         
> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>                  | 1 | Vol-0001 | Error | 1 | 1,286,119,412 |
>                  0 | 31,536,000 | 1 | 0 | 0 | File1 |
>                  2015-10-21 23:57:35 | 21,428,702 |
>
>         
> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>
>                  *What I think would make the user life easier:*
>
>                  *list media pool=File human
>
>         
> +---------+------------+-----------+---------+----------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>                  | MediaId | VolumeName | VolStatus | Enabled | VolBytes
>         | VolFiles |
>                  VolRetention | Recycle | Slot | InChanger | MediaType |
>         LastWritten
>                  | ExpiresIn |
>
>         
> +---------+------------+-----------+---------+---------------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>                  | 1 | Vol-0001 | Error | 1 | 1,29 GB | 0
>                  | 31,536,000 | 1 | 0 | 0 | File1 | 2015-10-21
>                  23:57:35 | 248 days |
>
>         
> +---------+------------+-----------+---------+----------+----------+--------------+---------+------+-----------+-----------+---------------------+------------+
>
>                      Best regards,
>                      Kern
>
>
>                  Regards,
>                  --
>
>         
> ------------------------------------------------------------------------
>
>                  Heitor Medrado de Faria - LPIC-III | ITIL-F | Bacula
>         Systems
>                  Certified Administrator II
>                  Do you need Bacula training?
>         http://bacula.us/video-classes/
>         +55 61 8268-4220 <tel:%2B55%2061%208268-4220>
>         <tel:%2B55%2061%208268-4220>
>                  Site: http://bacula.us FB: heitor.faria
>
>         
> ------------------------------------------------------------------------
>
>
>
>         
> ------------------------------------------------------------------------
>
>                  Site24x7 APM Insight: Get Deep Visibility into Application
>                  Performance
>                  APM + Mobile APM + RUM: Monitor 3 App instances at just
>         $35/Month
>                  Monitor end-to-end web transactions and take corrective
>         actions now
>                  Troubleshoot faster and improve end-user experience.
>         Signup Now!
>         http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
>
>         
> ------------------------------------------------------------------------
>
>                  Bacula-users mailing list
>         Bacula-users AT lists.sourceforge DOT net
>         <mailto:Bacula-users AT lists.sourceforge DOT net>
>                  <mailto:Bacula-users AT lists.sourceforge DOT net
>         <mailto:Bacula-users AT lists.sourceforge DOT net>>
>         https://lists.sourceforge.net/lists/listinfo/bacula-users
>
>
>
>

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users