public class org.apache.zookeeper.server.ZKDatabase extends java.lang.Object
{
private static final org.slf4j.Logger LOG;
protected org.apache.zookeeper.server.DataTree dataTree;
protected java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts;
protected org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog;
protected long minCommittedLog;
protected long maxCommittedLog;
public static final java.lang.String SNAPSHOT_SIZE_FACTOR;
public static final double DEFAULT_SNAPSHOT_SIZE_FACTOR;
private double snapshotSizeFactor;
public static final java.lang.String COMMIT_LOG_COUNT;
public static final int DEFAULT_COMMIT_LOG_COUNT;
public int commitLogCount;
protected java.util.Queue committedLog;
protected java.util.concurrent.locks.ReentrantReadWriteLock logLock;
private volatile boolean initialized;
private java.util.concurrent.atomic.AtomicInteger txnCount;
private final org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener commitProposalPlaybackListener;
public void <init>(org.apache.zookeeper.server.persistence.FileTxnSnapLog)
{
java.lang.Integer v, v, v;
byte v;
java.util.concurrent.atomic.AtomicInteger v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Double v, v, v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
int v, v, v;
java.lang.String v, v, v, v;
double v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.lang.NumberFormatException v, v;
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase$1 v;
java.util.ArrayDeque v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.server.persistence.FileTxnSnapLog;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>()>();
v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock logLock> = v;
v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized> = 0;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.atomic.AtomicInteger txnCount> = v;
v = new org.apache.zookeeper.server.ZKDatabase$1;
specialinvoke v.<org.apache.zookeeper.server.ZKDatabase$1: void <init>(org.apache.zookeeper.server.ZKDatabase)>(v);
v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener commitProposalPlaybackListener> = v;
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree createDataTree()>();
v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts> = v;
v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog> = v;
label:
v = staticinvoke <java.lang.Double: java.lang.String toString(double)>(0.33);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("zookeeper.snapshotSizeFactor", v);
v = staticinvoke <java.lang.Double: double parseDouble(java.lang.String)>(v);
v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor> = v;
v = v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor>;
v = v cmpl 1.0;
if v <= 0 goto label;
v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor> = 0.33;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(0.33);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("The configured {} is invalid, going to use the default {}", "zookeeper.snapshotSizeFactor", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(0.33);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Error parsing {}, using default value {}", "zookeeper.snapshotSizeFactor", v);
v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor> = 0.33;
label:
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{} = {}", "zookeeper.snapshotSizeFactor", v);
label:
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(500);
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("zookeeper.commitLogCount", v);
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
v.<org.apache.zookeeper.server.ZKDatabase: int commitLogCount> = v;
v = v.<org.apache.zookeeper.server.ZKDatabase: int commitLogCount>;
if v >= 500 goto label;
v.<org.apache.zookeeper.server.ZKDatabase: int commitLogCount> = 500;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(500);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("The configured commitLogCount {} is less than the recommended {}, going to use the recommended one", "zookeeper.commitLogCount", v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(500);
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Error parsing {} - use default value {}", "zookeeper.commitLogCount", v);
v.<org.apache.zookeeper.server.ZKDatabase: int commitLogCount> = 500;
label:
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.ZKDatabase: int commitLogCount>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("{}={}", "zookeeper.commitLogCount", v);
return;
catch java.lang.NumberFormatException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
}
public boolean isInitialized()
{
org.apache.zookeeper.server.ZKDatabase v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized>;
return v;
}
public void clear()
{
java.lang.Throwable v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.concurrent.ConcurrentHashMap v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
org.apache.zookeeper.server.DataTree v, v;
java.util.Queue v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v.<org.apache.zookeeper.server.ZKDatabase: long minCommittedLog> = 0L;
v.<org.apache.zookeeper.server.ZKDatabase: long maxCommittedLog> = 0L;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void shutdownWatcher()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree createDataTree()>();
v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree> = v;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts>;
virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: void clear()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock logLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
interfaceinvoke v.<java.util.Queue: void clear()>();
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized> = 0;
return;
catch java.lang.Throwable from label to label with label;
}
public org.apache.zookeeper.server.DataTree getDataTree()
{
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
return v;
}
public long getmaxCommittedLog()
{
long v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: long maxCommittedLog>;
return v;
}
public long getminCommittedLog()
{
long v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: long minCommittedLog>;
return v;
}
public java.util.concurrent.locks.ReentrantReadWriteLock getLogLock()
{
java.util.concurrent.locks.ReentrantReadWriteLock v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock logLock>;
return v;
}
public synchronized java.util.Collection getCommittedLog()
{
java.lang.Throwable v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.Collection v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v;
java.util.ArrayList v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v;
int v;
java.util.Queue v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock logLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock logLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: int getReadHoldCount()>();
if v <= 0 goto label;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
goto label;
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = new java.util.ArrayList;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = v;
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
v = staticinvoke <java.util.Collections: java.util.Collection unmodifiableCollection(java.util.Collection)>(v);
return v;
catch java.lang.Throwable from label to label with label;
}
public long getDataTreeLastProcessedZxid()
{
org.apache.zookeeper.server.DataTree v;
long v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = v.<org.apache.zookeeper.server.DataTree: long lastProcessedZxid>;
return v;
}
public java.util.Collection getSessions()
{
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.Collection v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: java.util.Collection getSessions()>();
return v;
}
public long getSessionCount()
{
int v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: int size()>();
return v;
}
public java.util.concurrent.ConcurrentHashMap getSessionWithTimeOuts()
{
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts>;
return v;
}
public long loadDataBase() throws java.io.IOException
{
java.lang.Object[] v;
org.apache.zookeeper.server.ZKDatabase v;
long v, v, v, v, v;
org.apache.zookeeper.metrics.Summary v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
java.lang.Long v, v;
org.apache.zookeeper.server.ServerMetrics v;
java.lang.String v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener v;
org.slf4j.Logger v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.DataTree v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts>;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener commitProposalPlaybackListener>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: long restore(org.apache.zookeeper.server.DataTree,java.util.Map,org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener)>(v, v, v);
v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized> = 1;
v = staticinvoke <org.apache.zookeeper.common.Time: long currentElapsedTime()>();
v = v - v;
v = staticinvoke <org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.server.ServerMetrics getMetrics()>();
v = v.<org.apache.zookeeper.server.ServerMetrics: org.apache.zookeeper.metrics.Summary DB_INIT_TIME>;
interfaceinvoke v.<org.apache.zookeeper.metrics.Summary: void add(long)>(v);
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
v[1] = v;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: long getTreeDigest()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Snapshot loaded in {} ms, highest zxid is 0x{}, digest is {}", v);
return v;
}
public long fastForwardDataBase() throws java.io.IOException
{
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.zookeeper.server.DataTree v;
long v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap sessionsWithTimeouts>;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener commitProposalPlaybackListener>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: long fastForwardFromEdits(org.apache.zookeeper.server.DataTree,java.util.Map,org.apache.zookeeper.server.persistence.FileTxnSnapLog$PlayBackListener)>(v, v, v);
v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized> = 1;
return v;
}
private void addCommittedProposal(org.apache.zookeeper.txn.TxnHeader, org.apache.jute.Record, org.apache.zookeeper.txn.TxnDigest)
{
org.apache.zookeeper.server.ZKDatabase v;
long v;
org.apache.jute.Record v;
org.apache.zookeeper.txn.TxnHeader v;
org.apache.zookeeper.txn.TxnDigest v;
org.apache.zookeeper.server.Request v;
int v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.txn.TxnHeader;
v := @parameter: org.apache.jute.Record;
v := @parameter: org.apache.zookeeper.txn.TxnDigest;
v = new org.apache.zookeeper.server.Request;
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getCxid()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: int getType()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
specialinvoke v.<org.apache.zookeeper.server.Request: void <init>(long,int,int,org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record,long)>(0L, v, v, v, v, v);
virtualinvoke v.<org.apache.zookeeper.server.Request: void setTxnDigest(org.apache.zookeeper.txn.TxnDigest)>(v);
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void addCommittedProposal(org.apache.zookeeper.server.Request)>(v);
return;
}
public void addCommittedProposal(org.apache.zookeeper.server.Request)
{
java.lang.Throwable v;
byte[] v;
org.apache.zookeeper.server.ZKDatabase v;
long v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v;
org.apache.zookeeper.server.quorum.QuorumPacket v, v, v;
int v, v;
boolean v;
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.quorum.Leader$Proposal v;
java.lang.Object v;
java.util.Queue v, v, v, v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.server.Request;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.locks.ReentrantReadWriteLock logLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
v = interfaceinvoke v.<java.util.Queue: int size()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: int commitLogCount>;
if v <= v goto label;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
interfaceinvoke v.<java.util.Queue: java.lang.Object remove()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object peek()>();
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v.<org.apache.zookeeper.server.ZKDatabase: long minCommittedLog> = v;
label:
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
v = interfaceinvoke v.<java.util.Queue: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.Request: long zxid>;
v.<org.apache.zookeeper.server.ZKDatabase: long minCommittedLog> = v;
v = v.<org.apache.zookeeper.server.Request: long zxid>;
v.<org.apache.zookeeper.server.ZKDatabase: long maxCommittedLog> = v;
label:
v = virtualinvoke v.<org.apache.zookeeper.server.Request: byte[] getSerializeData()>();
v = new org.apache.zookeeper.server.quorum.QuorumPacket;
v = v.<org.apache.zookeeper.server.Request: long zxid>;
specialinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: void <init>(int,long,byte[],java.util.List)>(2, v, v, null);
v = new org.apache.zookeeper.server.quorum.Leader$Proposal;
specialinvoke v.<org.apache.zookeeper.server.quorum.Leader$Proposal: void <init>()>();
v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet> = v;
v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.Request request> = v;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.Queue committedLog>;
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
v = v.<org.apache.zookeeper.server.quorum.Leader$Proposal: org.apache.zookeeper.server.quorum.QuorumPacket packet>;
v = virtualinvoke v.<org.apache.zookeeper.server.quorum.QuorumPacket: long getZxid()>();
v.<org.apache.zookeeper.server.ZKDatabase: long maxCommittedLog> = v;
label:
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean isTxnLogSyncEnabled()
{
org.slf4j.Logger v, v;
java.lang.Double v;
org.apache.zookeeper.server.ZKDatabase v;
byte v;
boolean v, v;
double v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor>;
v = v cmpl 0.0;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v == 0 goto label;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor>;
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("On disk txn sync enabled with snapshotSizeFactor {}", v);
goto label;
label:
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("On disk txn sync disabled");
label:
return v;
}
public long calculateTxnLogSizeLimit()
{
org.slf4j.Logger v;
org.apache.zookeeper.server.ZKDatabase v;
java.io.IOException v;
long v;
java.io.File v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
double v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = 0L;
label:
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: java.io.File findMostRecentSnapshot()>();
if v == null goto label;
v = virtualinvoke v.<java.io.File: long length()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Unable to get size of most recent snapshot");
label:
v = v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor>;
v = v * v;
return v;
catch java.io.IOException from label to label with label;
}
public java.util.Iterator getProposalsFromTxnLog(long, long)
{
org.apache.zookeeper.server.TxnLogProposalIterator v, v, v, v, v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.persistence.TxnLog$TxnIterator v;
long v, v, v, v;
byte v, v, v, v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
java.lang.Long v, v;
java.lang.String v;
org.slf4j.Logger v, v, v, v, v;
java.io.IOException v, v;
org.apache.zookeeper.txn.TxnHeader v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: long;
v := @parameter: long;
v = v cmp 0L;
if v >= 0 goto label;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Negative size limit - retrieving proposal via txnlog is disabled");
v = <org.apache.zookeeper.server.TxnLogProposalIterator: org.apache.zookeeper.server.TxnLogProposalIterator EMPTY_ITERATOR>;
return v;
label:
v = null;
label:
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: org.apache.zookeeper.server.persistence.TxnLog$TxnIterator readTxnLog(long,boolean)>(v, 0);
v = interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: org.apache.zookeeper.txn.TxnHeader getHeader()>();
if v == null goto label;
v = interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: org.apache.zookeeper.txn.TxnHeader getHeader()>();
v = virtualinvoke v.<org.apache.zookeeper.txn.TxnHeader: long getZxid()>();
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.String toHexString(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Unable to find proposals from txnlog for zxid: 0x{}", v);
interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: void close()>();
v = <org.apache.zookeeper.server.TxnLogProposalIterator: org.apache.zookeeper.server.TxnLogProposalIterator EMPTY_ITERATOR>;
label:
return v;
label:
v = v cmp 0L;
if v <= 0 goto label;
v = interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: long getStorageSize()>();
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Txnlog size: {} exceeds sizeLimit: {}", v, v);
interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: void close()>();
v = <org.apache.zookeeper.server.TxnLogProposalIterator: org.apache.zookeeper.server.TxnLogProposalIterator EMPTY_ITERATOR>;
label:
return v;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Unable to read txnlog from disk", v);
label:
if v == null goto label;
interfaceinvoke v.<org.apache.zookeeper.server.persistence.TxnLog$TxnIterator: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Error closing file iterator", v);
label:
v = <org.apache.zookeeper.server.TxnLogProposalIterator: org.apache.zookeeper.server.TxnLogProposalIterator EMPTY_ITERATOR>;
return v;
label:
v = new org.apache.zookeeper.server.TxnLogProposalIterator;
specialinvoke v.<org.apache.zookeeper.server.TxnLogProposalIterator: void <init>(org.apache.zookeeper.server.persistence.TxnLog$TxnIterator)>(v);
return v;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public java.util.List aclForNode(org.apache.zookeeper.server.DataNode)
{
java.util.List v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.DataNode v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.server.DataNode;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: java.util.List getACL(org.apache.zookeeper.server.DataNode)>(v);
return v;
}
public void removeCnxn(org.apache.zookeeper.server.ServerCnxn)
{
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ServerCnxn v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.server.ServerCnxn;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void removeCnxn(org.apache.zookeeper.Watcher)>(v);
return;
}
public void killSession(long, long)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
long v, v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: long;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void killSession(long,long)>(v, v);
return;
}
public void dumpEphemerals(java.io.PrintWriter)
{
java.io.PrintWriter v;
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.io.PrintWriter;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void dumpEphemerals(java.io.PrintWriter)>(v);
return;
}
public java.util.Map getEphemerals()
{
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.Map v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: java.util.Map getEphemerals()>();
return v;
}
public int getNodeCount()
{
int v;
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: int getNodeCount()>();
return v;
}
public java.util.Set getEphemerals(long)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
java.util.Set v;
long v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: java.util.Set getEphemerals(long)>(v);
return v;
}
public void setlastProcessedZxid(long)
{
org.apache.zookeeper.server.DataTree v;
long v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: long;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v.<org.apache.zookeeper.server.DataTree: long lastProcessedZxid> = v;
return;
}
public org.apache.zookeeper.server.DataTree$ProcessTxnResult processTxn(org.apache.zookeeper.txn.TxnHeader, org.apache.jute.Record, org.apache.zookeeper.txn.TxnDigest)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
org.apache.jute.Record v;
org.apache.zookeeper.txn.TxnHeader v;
org.apache.zookeeper.txn.TxnDigest v;
org.apache.zookeeper.server.DataTree$ProcessTxnResult v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.txn.TxnHeader;
v := @parameter: org.apache.jute.Record;
v := @parameter: org.apache.zookeeper.txn.TxnDigest;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: org.apache.zookeeper.server.DataTree$ProcessTxnResult processTxn(org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record,org.apache.zookeeper.txn.TxnDigest)>(v, v, v);
return v;
}
public org.apache.zookeeper.data.Stat statNode(java.lang.String, org.apache.zookeeper.server.ServerCnxn) throws org.apache.zookeeper.KeeperException$NoNodeException
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ServerCnxn v;
java.lang.String v;
org.apache.zookeeper.data.Stat v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.server.ServerCnxn;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: org.apache.zookeeper.data.Stat statNode(java.lang.String,org.apache.zookeeper.Watcher)>(v, v);
return v;
}
public org.apache.zookeeper.server.DataNode getNode(java.lang.String)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
org.apache.zookeeper.server.DataNode v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: org.apache.zookeeper.server.DataNode getNode(java.lang.String)>(v);
return v;
}
public byte[] getData(java.lang.String, org.apache.zookeeper.data.Stat, org.apache.zookeeper.Watcher) throws org.apache.zookeeper.KeeperException$NoNodeException
{
byte[] v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.Watcher v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
org.apache.zookeeper.data.Stat v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.data.Stat;
v := @parameter: org.apache.zookeeper.Watcher;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: byte[] getData(java.lang.String,org.apache.zookeeper.data.Stat,org.apache.zookeeper.Watcher)>(v, v, v);
return v;
}
public void setWatches(long, java.util.List, java.util.List, java.util.List, java.util.List, java.util.List, org.apache.zookeeper.Watcher)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.Watcher v;
long v;
java.util.List v, v, v, v, v;
org.apache.zookeeper.server.DataTree v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: long;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v := @parameter: org.apache.zookeeper.Watcher;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void setWatches(long,java.util.List,java.util.List,java.util.List,java.util.List,java.util.List,org.apache.zookeeper.Watcher)>(v, v, v, v, v, v, v);
return;
}
public void addWatch(java.lang.String, org.apache.zookeeper.Watcher, int)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.Watcher v;
int v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.Watcher;
v := @parameter: int;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void addWatch(java.lang.String,org.apache.zookeeper.Watcher,int)>(v, v, v);
return;
}
public java.util.List getACL(java.lang.String, org.apache.zookeeper.data.Stat) throws org.apache.zookeeper.KeeperException$NoNodeException
{
java.util.List v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
org.apache.zookeeper.data.Stat v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.data.Stat;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: java.util.List getACL(java.lang.String,org.apache.zookeeper.data.Stat)>(v, v);
return v;
}
public java.util.List getChildren(java.lang.String, org.apache.zookeeper.data.Stat, org.apache.zookeeper.Watcher) throws org.apache.zookeeper.KeeperException$NoNodeException
{
java.util.List v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.Watcher v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
org.apache.zookeeper.data.Stat v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.data.Stat;
v := @parameter: org.apache.zookeeper.Watcher;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: java.util.List getChildren(java.lang.String,org.apache.zookeeper.data.Stat,org.apache.zookeeper.Watcher)>(v, v, v);
return v;
}
public int getAllChildrenNumber(java.lang.String) throws org.apache.zookeeper.KeeperException$NoNodeException
{
org.apache.zookeeper.server.ZKDatabase v;
int v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: int getAllChildrenNumber(java.lang.String)>(v);
return v;
}
public boolean isSpecialPath(java.lang.String)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: boolean isSpecialPath(java.lang.String)>(v);
return v;
}
public int getAclSize()
{
int v;
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: int aclCacheSize()>();
return v;
}
public boolean truncateLog(long) throws java.io.IOException
{
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
org.apache.zookeeper.server.ZKDatabase v;
long v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: long;
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void clear()>();
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: boolean truncateLog(long)>(v);
if v != 0 goto label;
return 0;
label:
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: long loadDataBase()>();
return 1;
}
public void deserializeSnapshot(org.apache.jute.InputArchive) throws java.io.IOException
{
org.apache.zookeeper.server.ZKDatabase v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.jute.InputArchive v;
org.apache.zookeeper.server.DataTree v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.jute.InputArchive;
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void clear()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree getDataTree()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap getSessionWithTimeOuts()>();
staticinvoke <org.apache.zookeeper.server.util.SerializeUtils: void deserializeSnapshot(org.apache.zookeeper.server.DataTree,org.apache.jute.InputArchive,java.util.Map)>(v, v, v);
v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized> = 1;
return;
}
public void deserializeSnapshot(org.apache.jute.InputArchive, java.util.zip.CheckedInputStream) throws java.io.IOException
{
java.util.zip.CheckedInputStream v;
org.apache.zookeeper.server.ZKDatabase v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.jute.InputArchive v;
long v;
org.apache.zookeeper.server.DataTree v;
boolean v, v;
org.apache.zookeeper.server.DataTree$ZxidDigest v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.jute.InputArchive;
v := @parameter: java.util.zip.CheckedInputStream;
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void clear()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree getDataTree()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap getSessionWithTimeOuts()>();
staticinvoke <org.apache.zookeeper.server.persistence.FileSnap: void deserialize(org.apache.zookeeper.server.DataTree,java.util.Map,org.apache.jute.InputArchive)>(v, v, v);
staticinvoke <org.apache.zookeeper.server.persistence.SnapStream: void checkSealIntegrity(java.util.zip.CheckedInputStream,org.apache.jute.InputArchive)>(v, v);
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: boolean deserializeZxidDigest(org.apache.jute.InputArchive,long)>(v, 0L);
if v == 0 goto label;
staticinvoke <org.apache.zookeeper.server.persistence.SnapStream: void checkSealIntegrity(java.util.zip.CheckedInputStream,org.apache.jute.InputArchive)>(v, v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: boolean deserializeLastProcessedZxid(org.apache.jute.InputArchive)>(v);
if v == 0 goto label;
staticinvoke <org.apache.zookeeper.server.persistence.SnapStream: void checkSealIntegrity(java.util.zip.CheckedInputStream,org.apache.jute.InputArchive)>(v, v);
label:
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: org.apache.zookeeper.server.DataTree$ZxidDigest getDigestFromLoadedSnapshot()>();
if v == null goto label;
v = v.<org.apache.zookeeper.server.DataTree: long lastProcessedZxid>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void compareSnapshotDigests(long)>(v);
label:
v.<org.apache.zookeeper.server.ZKDatabase: boolean initialized> = 1;
return;
}
public void serializeSnapshot(org.apache.jute.OutputArchive) throws java.io.IOException, java.lang.InterruptedException
{
org.apache.zookeeper.server.ZKDatabase v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.jute.OutputArchive v;
org.apache.zookeeper.server.DataTree v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.jute.OutputArchive;
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree getDataTree()>();
v = virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.ConcurrentHashMap getSessionWithTimeOuts()>();
staticinvoke <org.apache.zookeeper.server.util.SerializeUtils: void serializeSnapshot(org.apache.zookeeper.server.DataTree,org.apache.jute.OutputArchive,java.util.Map)>(v, v, v);
return;
}
public boolean append(org.apache.zookeeper.server.Request) throws java.io.IOException
{
org.apache.zookeeper.server.Request v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.zookeeper.server.ZKDatabase v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.server.Request;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: boolean append(org.apache.zookeeper.server.Request)>(v);
if v == 0 goto label;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.atomic.AtomicInteger txnCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
return 1;
label:
return 0;
}
public void rollLog() throws java.io.IOException
{
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: void rollLog()>();
virtualinvoke v.<org.apache.zookeeper.server.ZKDatabase: void resetTxnCount()>();
return;
}
public void commit() throws java.io.IOException
{
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: void commit()>();
return;
}
public void close() throws java.io.IOException
{
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: void close()>();
return;
}
public synchronized void initConfigInZKDatabase(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier)
{
java.io.PrintStream v;
byte[] v;
org.slf4j.Logger v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.quorum.flexible.QuorumVerifier v;
long v, v;
org.apache.zookeeper.KeeperException$NoNodeException v;
java.nio.charset.Charset v;
int v;
org.apache.zookeeper.server.DataTree v, v, v;
java.lang.String v;
org.apache.zookeeper.server.DataNode v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
if v != null goto label;
return;
label:
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: org.apache.zookeeper.server.DataNode getNode(java.lang.String)>("/zookeeper/config");
if v != null goto label;
v = <org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("configuration znode missing (should only happen during upgrade), creating the node");
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: void addConfigNode()>();
label:
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: java.lang.String toString()>();
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
v = interfaceinvoke v.<org.apache.zookeeper.server.quorum.flexible.QuorumVerifier: long getVersion()>();
v = staticinvoke <org.apache.zookeeper.common.Time: long currentWallTime()>();
v = (int) -1;
virtualinvoke v.<org.apache.zookeeper.server.DataTree: org.apache.zookeeper.data.Stat setData(java.lang.String,byte[],int,long,long)>("/zookeeper/config", v, v, v, v);
label:
goto label;
label:
v := @caughtexception;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>("configuration node missing - should not happen");
label:
return;
catch org.apache.zookeeper.KeeperException$NoNodeException from label to label with label;
}
public void setSnapshotSizeFactor(double)
{
org.apache.zookeeper.server.ZKDatabase v;
double v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: double;
v.<org.apache.zookeeper.server.ZKDatabase: double snapshotSizeFactor> = v;
return;
}
public boolean containsWatcher(java.lang.String, org.apache.zookeeper.Watcher$WatcherType, org.apache.zookeeper.Watcher)
{
org.apache.zookeeper.Watcher$WatcherType v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.Watcher v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.Watcher$WatcherType;
v := @parameter: org.apache.zookeeper.Watcher;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: boolean containsWatcher(java.lang.String,org.apache.zookeeper.Watcher$WatcherType,org.apache.zookeeper.Watcher)>(v, v, v);
return v;
}
public boolean removeWatch(java.lang.String, org.apache.zookeeper.Watcher$WatcherType, org.apache.zookeeper.Watcher)
{
org.apache.zookeeper.Watcher$WatcherType v;
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.Watcher v;
org.apache.zookeeper.server.DataTree v;
java.lang.String v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: java.lang.String;
v := @parameter: org.apache.zookeeper.Watcher$WatcherType;
v := @parameter: org.apache.zookeeper.Watcher;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: boolean removeWatch(java.lang.String,org.apache.zookeeper.Watcher$WatcherType,org.apache.zookeeper.Watcher)>(v, v, v);
return v;
}
public org.apache.zookeeper.server.DataTree createDataTree()
{
org.apache.zookeeper.server.DataTree v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = new org.apache.zookeeper.server.DataTree;
specialinvoke v.<org.apache.zookeeper.server.DataTree: void <init>()>();
return v;
}
public void resetTxnCount()
{
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.atomic.AtomicInteger txnCount>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: void setTotalLogSize(long)>(0L);
return;
}
public int getTxnCount()
{
int v;
java.util.concurrent.atomic.AtomicInteger v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: java.util.concurrent.atomic.AtomicInteger txnCount>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
return v;
}
public long getTxnSize()
{
long v;
org.apache.zookeeper.server.persistence.FileTxnSnapLog v;
org.apache.zookeeper.server.ZKDatabase v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.persistence.FileTxnSnapLog snapLog>;
v = virtualinvoke v.<org.apache.zookeeper.server.persistence.FileTxnSnapLog: long getTotalLogSize()>();
return v;
}
public boolean compareDigest(org.apache.zookeeper.txn.TxnHeader, org.apache.jute.Record, org.apache.zookeeper.txn.TxnDigest)
{
org.apache.zookeeper.server.ZKDatabase v;
org.apache.zookeeper.server.DataTree v;
org.apache.jute.Record v;
org.apache.zookeeper.txn.TxnHeader v;
org.apache.zookeeper.txn.TxnDigest v;
boolean v;
v := @this: org.apache.zookeeper.server.ZKDatabase;
v := @parameter: org.apache.zookeeper.txn.TxnHeader;
v := @parameter: org.apache.jute.Record;
v := @parameter: org.apache.zookeeper.txn.TxnDigest;
v = v.<org.apache.zookeeper.server.ZKDatabase: org.apache.zookeeper.server.DataTree dataTree>;
v = virtualinvoke v.<org.apache.zookeeper.server.DataTree: boolean compareDigest(org.apache.zookeeper.txn.TxnHeader,org.apache.jute.Record,org.apache.zookeeper.txn.TxnDigest)>(v, v, v);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/zookeeper/server/ZKDatabase;");
<org.apache.zookeeper.server.ZKDatabase: org.slf4j.Logger LOG> = v;
return;
}
}