Mercurial > hg > blitz_condensed
comparison src/org/dancres/blitz/txn/PersistentPersonality.java @ 17:4580bb12db30
Separate command execution from command logging.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sun, 05 Jul 2009 16:26:25 +0100 |
parents | 3dc0c5604566 |
children | a77f0a9ed93c |
comparison
equal
deleted
inserted
replaced
16:46ac1a45718a | 17:4580bb12db30 |
---|---|
1 package org.dancres.blitz.txn; | 1 package org.dancres.blitz.txn; |
2 | 2 |
3 import java.util.logging.Level; | 3 import java.util.logging.Level; |
4 | 4 |
5 import org.prevayler.implementation.SnapshotPrevayler; | 5 import org.prevayler.implementation.SnapshotPrevayler; |
6 import org.prevayler.implementation.SnapshotPrevaylerImpl; | 6 import org.prevayler.implementation.PrevaylerCore; |
7 | 7 |
8 import org.prevayler.PrevalentSystem; | 8 import org.prevayler.PrevalentSystem; |
9 | 9 |
10 import org.dancres.blitz.config.Persistent; | 10 import org.dancres.blitz.config.Persistent; |
11 | 11 |
30 TxnManager.theLogger.log(Level.INFO, "Max logs before sync: " + | 30 TxnManager.theLogger.log(Level.INFO, "Max logs before sync: " + |
31 theModel.getMaxLogsBeforeSync()); | 31 theModel.getMaxLogsBeforeSync()); |
32 TxnManager.theLogger.log(Level.INFO, "Reset log stream: " + | 32 TxnManager.theLogger.log(Level.INFO, "Reset log stream: " + |
33 theModel.shouldResetLogStream()); | 33 theModel.shouldResetLogStream()); |
34 TxnManager.theLogger.log(Level.INFO, "Write barrier window: " + | 34 TxnManager.theLogger.log(Level.INFO, "Write barrier window: " + |
35 theModel.getBatchWriteWindowSize()); | 35 theModel.getBatchWriteWindowSizeMs() + ", " + theModel.getBatchWriteWindowSizeNs()); |
36 | 36 |
37 if (theModel.useConcurrentWriteBatcher()) | 37 if (theModel.useConcurrentWriteBatcher()) |
38 TxnManager.theLogger.log(Level.INFO, | 38 TxnManager.theLogger.log(Level.INFO, |
39 "*** Using concurrent batcher ***"); | 39 "*** Concurrent batching enabled ***"); |
40 | 40 |
41 if (theModel.shouldCleanLogs()) { | 41 if (theModel.shouldCleanLogs()) { |
42 TxnManager.theLogger.log(Level.WARNING, | 42 TxnManager.theLogger.log(Level.WARNING, |
43 "*** Automatically cleaning logs *** [EXPERIMENTAL]"); | 43 "*** Automatically cleaning logs *** [EXPERIMENTAL]"); |
44 } | 44 } |
56 throws Exception { | 56 throws Exception { |
57 | 57 |
58 PersistentReboot myReboot = new PersistentReboot(theModel); | 58 PersistentReboot myReboot = new PersistentReboot(theModel); |
59 myReboot.execute(); | 59 myReboot.execute(); |
60 | 60 |
61 SnapshotPrevayler myPrevayler = | 61 PrevaylerCore myPrevayler = |
62 new SnapshotPrevaylerImpl(aSystem, | 62 new PrevaylerCore(aSystem, |
63 theLogDir, | 63 theLogDir, |
64 theModel.shouldResetLogStream(), | 64 theModel.shouldResetLogStream(), |
65 theModel.shouldCleanLogs(), | 65 theModel.shouldCleanLogs(), |
66 theModel.getLogBufferSize()); | 66 theModel.getLogBufferSize()); |
67 | 67 |
68 if (theModel.getBatchWriteWindowSize() != 0) { | 68 if ((theModel.getBatchWriteWindowSizeMs() != 0) || |
69 int myWindowSize = theModel.getBatchWriteWindowSize(); | 69 (theModel.getBatchWriteWindowSizeNs() != 0)) { |
70 long myWindowSizeMs = theModel.getBatchWriteWindowSizeMs(); | |
71 int myWindowSizeNs = theModel.getBatchWriteWindowSizeNs(); | |
70 | 72 |
71 if (theModel.useConcurrentWriteBatcher()) { | 73 if (theModel.useConcurrentWriteBatcher()) { |
72 myPrevayler = | 74 return new ConcurrentWriteBatcher(myPrevayler, myWindowSizeMs, myWindowSizeNs); |
73 new ConcurrentWriteBatcher(myPrevayler, myWindowSize); | |
74 } else { | 75 } else { |
75 myPrevayler = | 76 return new WriteBatcher(myPrevayler, myWindowSizeMs, myWindowSizeNs); |
76 new WriteBatcher(myPrevayler, myWindowSize); | |
77 } | 77 } |
78 } | 78 } else |
79 | 79 return new NullBatcher(myPrevayler); |
80 return myPrevayler; | |
81 } | 80 } |
82 | 81 |
83 public void destroy() { | 82 public void destroy() { |
84 Disk.destroy(); | 83 Disk.destroy(); |
85 Disk.clean(theLogDir); | 84 Disk.clean(theLogDir); |