comparison test/org/dancres/blitz/LeaseReapTest.java @ 0:3dc0c5604566

Initial checkin of blitz 2.0 fcs - no installer yet.
author Dan Creswell <dan.creswell@gmail.com>
date Sat, 21 Mar 2009 11:00:06 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:3dc0c5604566
1 package org.dancres.blitz;
2
3 import java.io.Serializable;
4 import java.rmi.MarshalledObject;
5
6 import net.jini.core.entry.Entry;
7 import net.jini.core.lease.Lease;
8
9 import org.dancres.blitz.mangler.*;
10
11 import org.dancres.blitz.lease.SpaceUID;
12
13 import org.dancres.blitz.disk.Disk;
14
15 public class LeaseReapTest {
16 /**
17 Set Reaper to run every 60 seconds
18
19 Write 3 entries, lease expiries: 30, 90, 360
20
21 sync
22
23 Wait for 2 minutes so reaper does multiple passes and verify that
24 deletion wasn't done more than once.
25
26 stop - includes sync, verify that two entries were deleted and one
27 was saved to disk.
28
29 <pre>
30
31 [dan@rogue space]$ ant testreaper
32 Buildfile: build.xml
33
34 init:
35
36 compile:
37
38 testreaper:
39 [java] Start space
40 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.config.ConfigurationFactory load
41 [java] INFO: Loading config from: config/blitz.config
42 [java] Starting debugger on: 12345
43 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.TxnManager <init>
44 [java] INFO: Doing recovery...
45 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
46 [java] SEVERE: PersistentPersonality
47 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
48 [java] INFO: Max logs before sync: 10000
49 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
50 [java] INFO: Reset log stream: false
51 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
52 [java] INFO: Write barrier window: 20
53 [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
54 [java] SEVERE: *** Using concurrent batcher ***
55 [java] Jun 10, 2004 12:49:54 PM org.dancres.blitz.txn.TxnManager <init>
56 [java] INFO: Recovery complete...
57 [java] Jun 10, 2004 12:49:54 PM org.dancres.blitz.lease.LeaseReaper <init>
58 [java] INFO: Reaper::EntryReaper:theReapTime: 60000
59 [java] Jun 10, 2004 12:49:54 PM org.dancres.blitz.lease.LeaseReaper <init>
60 [java] INFO: Reaper::EntryReaper:Filter = org.dancres.blitz.TxnReapFilter@1f48262
61 Jun 10, 2004 12:49:54 PM org.dancres.blitz.lease.LeaseReaper run
62 INFO: Reaper started up: EntryReaper
63 [java] Prepare entry
64 [java] init'd entry
65 [java] Do writes
66 [java] Flush
67 Write a lease
68 Write a lease
69 Write a lease
70 LeaseTracker bringing out the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
71 Scanning bucket
72 HasLock: false
73 Scanning bucket
74 Scanning bucket
75 LeaseTracker claimed the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
76 LeaseTracker bringing out the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
77 Scanning bucket
78 Scanning bucket
79 Scanning bucket
80 HasLock: false
81 LeaseTracker claimed the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
82 [java] Do stop
83 [java] Interrupting debug thread
84 Jun 10, 2004 12:51:55 PM org.dancres.blitz.lease.LeaseReaper run
85 INFO: Reaper exited: EntryReaper
86 Delete a lease
87 Lease killed
88 Delete a lease
89 Lease killed
90 [java] Jun 10, 2004 12:51:55 PM org.dancres.blitz.disk.WriteDaemon halt
91 [java] SEVERE: WriteDaemon doing halt
92 [java] Jun 10, 2004 12:51:55 PM org.dancres.blitz.disk.WriteDaemon halt
93 [java] SEVERE: WriteDaemon done halt
94 [java] Dumping stats
95 [java] 1, Memory: 2031616 of: 66650112
96 [java] 2, Active Txns: 0
97 [java] 3, Takes:java.lang.Object = 0 (3)
98 [java] 4, Reads:java.lang.Object = 0 (4)
99 [java] 5, Writes:java.lang.Object = 0 (5)
100 [java] 6, Total instance of type java.lang.Object is 0
101 [java] 7, Takes:org.dancres.blitz.LeaseReapTest$TestEntry = 0 (7)
102 [java] 8, Reads:org.dancres.blitz.LeaseReapTest$TestEntry = 0 (8)
103 [java] 9, Writes:org.dancres.blitz.LeaseReapTest$TestEntry = 3 (9)
104 [java] 10, Total instance of type org.dancres.blitz.LeaseReapTest$TestEntry is 1
105 [java] 11, Types: org.dancres.blitz.LeaseReapTest$TestEntry,
106 [java] 12, Blocking reads: 0, takes: 0
107
108 BUILD SUCCESSFUL
109 Total time: 2 minutes 3 seconds
110 </pre>
111
112 */
113 public static void main(String args[]) {
114 try {
115 System.out.println("Start space");
116
117 SpaceImpl mySpace = new SpaceImpl(null);
118
119 System.out.println("Prepare entry");
120
121 EntryMangler myMangler = new EntryMangler();
122 TestEntry myEntry = new TestEntry();
123 myEntry.init();
124
125 System.out.println("init'd entry");
126 MangledEntry myPackedEntry = myMangler.mangle(new TestEntry());
127
128 System.out.println("Do writes");
129
130 mySpace.write(myPackedEntry, null, 30 * 1000);
131 mySpace.write(myPackedEntry, null, 90 * 1000);
132 mySpace.write(myPackedEntry, null, 360 * 1000);
133
134 System.out.println("Flush");
135
136 Disk.sync();
137
138 try {
139 Thread.sleep(120 * 1000);
140 } catch (InterruptedException anIE) {
141 }
142
143 System.out.println("Do stop");
144
145 mySpace.stop();
146
147 } catch (Exception anE) {
148 System.err.println("Got exception :(");
149 anE.printStackTrace(System.err);
150 }
151 }
152
153 public static class TestEntry implements Entry {
154 public String rhubarb;
155 public Integer count;
156
157 public TestEntry() {
158 }
159
160 public void init() {
161 rhubarb = "blah";
162 count = new Integer(5);
163 }
164
165 public String toString() {
166 return super.toString() + ", " + rhubarb + ", " + count;
167 }
168 }
169 }