view test/org/dancres/blitz/LeaseReapTest.java @ 34:6f68e94c1fb8 default tip

Add CondensedStats monitoring utility, equivalent to vmstat
author Dominic Cleal <dominic-cleal@cdo2.com>
date Thu, 05 Aug 2010 11:07:25 +0100
parents 3dc0c5604566
children
line wrap: on
line source

package org.dancres.blitz;

import java.io.Serializable;
import java.rmi.MarshalledObject;

import net.jini.core.entry.Entry;
import net.jini.core.lease.Lease;

import org.dancres.blitz.mangler.*;

import org.dancres.blitz.lease.SpaceUID;

import org.dancres.blitz.disk.Disk;

public class LeaseReapTest {
    /**
       Set Reaper to run every 60 seconds

       Write 3 entries, lease expiries: 30, 90, 360

       sync

       Wait for 2 minutes so reaper does multiple passes and verify that
       deletion wasn't done more than once.

       stop - includes sync, verify that two entries were deleted and one
       was saved to disk.

       <pre>

[dan@rogue space]$ ant testreaper
Buildfile: build.xml

init:

compile:

testreaper:
     [java] Start space
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.config.ConfigurationFactory load
     [java] INFO: Loading config from: config/blitz.config
     [java] Starting debugger on: 12345
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.TxnManager <init>
     [java] INFO: Doing recovery...
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
     [java] SEVERE: PersistentPersonality
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
     [java] INFO: Max logs before sync: 10000
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
     [java] INFO: Reset log stream: false
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
     [java] INFO: Write barrier window: 20
     [java] Jun 10, 2004 12:49:53 PM org.dancres.blitz.txn.PersistentPersonality <init>
     [java] SEVERE: *** Using concurrent batcher ***
     [java] Jun 10, 2004 12:49:54 PM org.dancres.blitz.txn.TxnManager <init>
     [java] INFO: Recovery complete...
     [java] Jun 10, 2004 12:49:54 PM org.dancres.blitz.lease.LeaseReaper <init>
     [java] INFO: Reaper::EntryReaper:theReapTime: 60000
     [java] Jun 10, 2004 12:49:54 PM org.dancres.blitz.lease.LeaseReaper <init>
     [java] INFO: Reaper::EntryReaper:Filter = org.dancres.blitz.TxnReapFilter@1f48262
Jun 10, 2004 12:49:54 PM org.dancres.blitz.lease.LeaseReaper run
INFO: Reaper started up: EntryReaper
     [java] Prepare entry
     [java] init'd entry
     [java] Do writes
     [java] Flush
Write a lease
Write a lease
Write a lease
LeaseTracker bringing out the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
Scanning bucket
HasLock: false
Scanning bucket
Scanning bucket
LeaseTracker claimed the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
LeaseTracker bringing out the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
Scanning bucket
Scanning bucket
Scanning bucket
HasLock: false
LeaseTracker claimed the dead for: org.dancres.blitz.LeaseReapTest$TestEntry
     [java] Do stop
     [java] Interrupting debug thread
Jun 10, 2004 12:51:55 PM org.dancres.blitz.lease.LeaseReaper run
INFO: Reaper exited: EntryReaper
Delete a lease
Lease killed
Delete a lease
Lease killed
     [java] Jun 10, 2004 12:51:55 PM org.dancres.blitz.disk.WriteDaemon halt
     [java] SEVERE: WriteDaemon doing halt
     [java] Jun 10, 2004 12:51:55 PM org.dancres.blitz.disk.WriteDaemon halt
     [java] SEVERE: WriteDaemon done halt
     [java] Dumping stats
     [java] 1, Memory: 2031616 of: 66650112
     [java] 2, Active Txns: 0
     [java] 3, Takes:java.lang.Object = 0 (3)
     [java] 4, Reads:java.lang.Object = 0 (4)
     [java] 5, Writes:java.lang.Object = 0 (5)
     [java] 6, Total instance of type java.lang.Object is 0
     [java] 7, Takes:org.dancres.blitz.LeaseReapTest$TestEntry = 0 (7)
     [java] 8, Reads:org.dancres.blitz.LeaseReapTest$TestEntry = 0 (8)
     [java] 9, Writes:org.dancres.blitz.LeaseReapTest$TestEntry = 3 (9)
     [java] 10, Total instance of type org.dancres.blitz.LeaseReapTest$TestEntry is 1
     [java] 11, Types: org.dancres.blitz.LeaseReapTest$TestEntry,
     [java] 12, Blocking reads: 0, takes: 0

BUILD SUCCESSFUL
Total time: 2 minutes 3 seconds
</pre>

     */
    public static void main(String args[]) {
        try {
            System.out.println("Start space");

            SpaceImpl mySpace = new SpaceImpl(null);

            System.out.println("Prepare entry");

            EntryMangler myMangler = new EntryMangler();
            TestEntry myEntry = new TestEntry();
            myEntry.init();

            System.out.println("init'd entry");
            MangledEntry myPackedEntry = myMangler.mangle(new TestEntry());

            System.out.println("Do writes");

            mySpace.write(myPackedEntry, null, 30 * 1000);
            mySpace.write(myPackedEntry, null, 90 * 1000);
            mySpace.write(myPackedEntry, null, 360 * 1000);

            System.out.println("Flush");

            Disk.sync();

            try {
                Thread.sleep(120 * 1000);
            } catch (InterruptedException anIE) {
            }

            System.out.println("Do stop");

            mySpace.stop();

        } catch (Exception anE) {
            System.err.println("Got exception :(");
            anE.printStackTrace(System.err);
        }
    }

    public static class TestEntry implements Entry {
        public String rhubarb;
        public Integer count;

        public TestEntry() {
        }

        public void init() {
            rhubarb = "blah";
            count = new Integer(5);
        }

        public String toString() {
            return super.toString() + ", " + rhubarb + ", " + count;
        }
    }
}