Do not attempt to clean the same segment multiple times.
authorMichael Vrable <mvrable@cs.ucsd.edu>
Wed, 13 Feb 2008 22:27:52 +0000 (14:27 -0800)
committerMichael Vrable <mvrable@turin.ucsd.edu>
Wed, 13 Feb 2008 22:27:52 +0000 (14:27 -0800)
contrib/upgrade0.6-localdb.sql
lbs.py
schema.sql

index ce8797c..49fc1aa 100644 (file)
@@ -68,8 +68,8 @@ drop view cleaning_order;
 drop view segment_info;
 
 create view segment_info as
 drop view segment_info;
 
 create view segment_info as
-select segmentid, mtime, size, cast(size * utilization as integer) as used,
-       utilization
+select segmentid, mtime, size, expire_time,
+       cast(size * utilization as integer) as used, utilization
 from segments join
      (select segmentid, max(utilization) as utilization
       from segments_used group by segmentid)
 from segments join
      (select segmentid, max(utilization) as utilization
       from segments_used group by segmentid)
diff --git a/lbs.py b/lbs.py
index 4224cf9..c2fd75b 100644 (file)
--- a/lbs.py
+++ b/lbs.py
@@ -564,7 +564,8 @@ class LocalDatabase:
         cur = self.cursor()
         segments = []
         cur.execute("""select segmentid, used, size, mtime,
         cur = self.cursor()
         segments = []
         cur.execute("""select segmentid, used, size, mtime,
-                       julianday('now') - mtime as age from segment_info""")
+                       julianday('now') - mtime as age from segment_info
+                       where expire_time is null""")
         for row in cur:
             info = self.SegmentInfo()
             info.id = row[0]
         for row in cur:
             info = self.SegmentInfo()
             info.id = row[0]
index f406d91..850e6a9 100644 (file)
@@ -47,8 +47,8 @@ create unique index segments_used_index
 
 -- Overall estimate of segment utilization, for all snapshots combined.
 create view segment_info as
 
 -- Overall estimate of segment utilization, for all snapshots combined.
 create view segment_info as
-select segmentid, mtime, size, cast(size * utilization as integer) as used,
-       utilization
+select segmentid, mtime, size, expire_time,
+       cast(size * utilization as integer) as used, utilization
 from segments join
      (select segmentid, max(utilization) as utilization
       from segments_used group by segmentid)
 from segments join
      (select segmentid, max(utilization) as utilization
       from segments_used group by segmentid)