You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/05/25 10:22:54 UTC
qpid-broker-j git commit: QPID-7689: [Java Broker] Cache message
metadata size to avoid reloading metadata from disk
Repository: qpid-broker-j
Updated Branches:
refs/heads/master c5e8ab2ce -> 1857f0b0a
QPID-7689: [Java Broker] Cache message metadata size to avoid reloading metadata from disk
Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/1857f0b0
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/1857f0b0
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/1857f0b0
Branch: refs/heads/master
Commit: 1857f0b0a74a98280bffd89a2b842ff6d9864429
Parents: c5e8ab2
Author: Lorenz Quack <lq...@apache.org>
Authored: Thu May 25 10:45:41 2017 +0100
Committer: Lorenz Quack <lq...@apache.org>
Committed: Thu May 25 10:46:12 2017 +0100
----------------------------------------------------------------------
.../store/berkeleydb/AbstractBDBMessageStore.java | 14 +++++++++++---
.../server/message/AbstractServerMessageImpl.java | 2 +-
.../qpid/server/message/internal/InternalMessage.java | 8 +++++++-
.../apache/qpid/server/store/StoredMemoryMessage.java | 8 ++++++++
.../org/apache/qpid/server/store/StoredMessage.java | 2 ++
.../server/store/serializer/v1/MessageRecord.java | 2 +-
.../server/txn/FlowToDiskTransactionObserver.java | 4 ++--
.../qpid/server/virtualhost/AbstractVirtualHost.java | 4 +---
.../v0_10/MessageConverter_Internal_to_v0_10.java | 7 +++++++
.../server/protocol/v0_10/MessageConverter_v0_10.java | 7 +++++++
.../v0_8/MessageConverter_Internal_to_v0_8.java | 7 +++++++
.../server/protocol/v1_0/MessageConverter_to_1_0.java | 6 ++++++
.../v0_10_v1_0/MessageConverter_1_0_to_v0_10.java | 7 +++++++
.../v0_8_v0_10/MessageConverter_0_10_to_0_8.java | 7 +++++++
.../v0_8_v0_10/MessageConverter_0_8_to_0_10.java | 7 +++++++
.../v0_8_v1_0/MessageConverter_1_0_to_v0_8.java | 7 +++++++
.../server/store/jdbc/AbstractJDBCMessageStore.java | 14 +++++++++++---
17 files changed, 99 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
----------------------------------------------------------------------
diff --git a/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java b/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
index dd9f02a..b6bd5c9 100644
--- a/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
+++ b/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
@@ -1013,6 +1013,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
private final long _messageId;
private final int _contentSize;
+ private final int _metadataSize;
private MessageDataRef<T> _messageDataRef;
StoredBDBMessage(long messageId, T metaData, boolean isRecovered)
@@ -1022,7 +1023,8 @@ public abstract class AbstractBDBMessageStore implements MessageStore
_messageDataRef = new MessageDataRef<>(metaData, !isRecovered);
_contentSize = metaData.getContentSize();
- _inMemorySize.addAndGet(metaData.getStorableSize());
+ _metadataSize = metaData.getStorableSize();
+ _inMemorySize.addAndGet(_metadataSize);
}
@Override
@@ -1041,7 +1043,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
checkMessageStoreOpen();
metaData = (T) getMessageMetaData(_messageId);
_messageDataRef = new MessageDataRef<>(metaData, _messageDataRef.getData(), false);
- _inMemorySize.addAndGet(metaData.getStorableSize());
+ _inMemorySize.addAndGet(getMetadataSize());
}
return metaData;
}
@@ -1155,6 +1157,12 @@ public abstract class AbstractBDBMessageStore implements MessageStore
return _contentSize;
}
+ @Override
+ public int getMetadataSize()
+ {
+ return _metadataSize;
+ }
+
synchronized void store(Transaction txn)
{
if (!stored())
@@ -1207,7 +1215,7 @@ public abstract class AbstractBDBMessageStore implements MessageStore
long bytesCleared = 0;
if ((metaData =_messageDataRef.getMetaData()) != null)
{
- bytesCleared += metaData.getStorableSize();
+ bytesCleared += getMetadataSize();
metaData.dispose();
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java b/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
index 978abc5..32fb369 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
@@ -65,7 +65,7 @@ public abstract class AbstractServerMessageImpl<X extends AbstractServerMessageI
@Override
public long getSizeIncludingHeader()
{
- return _handle.getMetaData().getContentSize() + _handle.getMetaData().getStorableSize();
+ return _handle.getContentSize() + _handle.getMetadataSize();
}
public StoredMessage<T> getStoredMessage()
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java b/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
index 70ecd61..6dcf4b6 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
@@ -212,7 +212,7 @@ public class InternalMessage extends AbstractServerMessageImpl<InternalMessage,
final InternalMessageMetaData metaData =
InternalMessageMetaData.create(persistent, header, bytes.length);
-
+ final int metadataSize = metaData.getStorableSize();
return new StoredMessage<InternalMessageMetaData>()
{
@@ -241,6 +241,12 @@ public class InternalMessage extends AbstractServerMessageImpl<InternalMessage,
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
index 6d6921c..e06c4bf 100755
--- a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
@@ -34,6 +34,7 @@ public class StoredMemoryMessage<T extends StorableMessageMetaData> implements S
{
private final long _messageNumber;
private final int _contentSize;
+ private final int _metadataSize;
private final Queue<QpidByteBuffer> _content = new LinkedList<>();
private volatile T _metaData;
@@ -42,6 +43,7 @@ public class StoredMemoryMessage<T extends StorableMessageMetaData> implements S
_messageNumber = messageNumber;
_metaData = metaData;
_contentSize = _metaData.getContentSize();
+ _metadataSize = _metaData.getStorableSize();
}
public long getMessageNumber()
@@ -110,6 +112,12 @@ public class StoredMemoryMessage<T extends StorableMessageMetaData> implements S
return _contentSize;
}
+ @Override
+ public int getMetadataSize()
+ {
+ return _metadataSize;
+ }
+
public T getMetaData()
{
return _metaData;
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
index fbaf0c0..309be7b 100755
--- a/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
@@ -34,6 +34,8 @@ public interface StoredMessage<M extends StorableMessageMetaData>
int getContentSize();
+ int getMetadataSize();
+
void remove();
boolean isInMemory();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java b/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
index 003f0aa..eb8e73e 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/serializer/v1/MessageRecord.java
@@ -35,7 +35,7 @@ class MessageRecord implements Record
public MessageRecord(final StoredMessage<?> storedMessage)
{
_messageNumber = storedMessage.getMessageNumber();
- _metaData = new byte[1 + storedMessage.getMetaData().getStorableSize()];
+ _metaData = new byte[1 + storedMessage.getMetadataSize()];
QpidByteBuffer buf = QpidByteBuffer.wrap(_metaData);
buf.put((byte)storedMessage.getMetaData().getType().ordinal());
storedMessage.getMetaData().writeToBuffer(buf);
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java b/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
index d794238..c00da42 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/txn/FlowToDiskTransactionObserver.java
@@ -58,7 +58,7 @@ public class FlowToDiskTransactionObserver implements TransactionObserver
final EnqueueableMessage<? extends StorableMessageMetaData> message)
{
StoredMessage<? extends StorableMessageMetaData> handle = message.getStoredMessage();
- long messageSize = handle.getContentSize() + handle.getMetaData().getStorableSize();
+ long messageSize = handle.getContentSize() + handle.getMetadataSize();
long newUncommittedSize = _uncommittedMessageSize.get() + messageSize;
if (newUncommittedSize > _maxUncommittedInMemorySize)
@@ -121,7 +121,7 @@ public class FlowToDiskTransactionObserver implements TransactionObserver
private void messageEnqueued(StoredMessage<? extends StorableMessageMetaData> handle)
{
- long size = handle.getContentSize() + handle.getMetaData().getStorableSize();
+ long size = handle.getContentSize() + handle.getMetadataSize();
_uncommittedMessageSize.addAndGet(size);
_uncommittedMessages.add(handle);
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java b/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
index 294acb5..842b2fe 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/virtualhost/AbstractVirtualHost.java
@@ -1952,9 +1952,7 @@ public abstract class AbstractVirtualHost<X extends AbstractVirtualHost<X>> exte
if (cumulativeSize <= currentTargetSize)
{
cumulativeSize += storedMessage.getContentSize();
- cumulativeSize += storedMessage.getMetaData() == null
- ? 0
- : storedMessage.getMetaData().getStorableSize();
+ cumulativeSize += storedMessage.getMetadataSize();
}
else
{
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
index 05ff4cd..b0be59d 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
@@ -76,6 +76,7 @@ public class MessageConverter_Internal_to_v0_10 implements MessageConverter<Inte
final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(serverMsg,
mimeType,
messageContent.length);
+ final int metadataSize = messageMetaData_0_10.getStorableSize();
return new StoredMessage<MessageMetaData_0_10>()
{
@@ -104,6 +105,12 @@ public class MessageConverter_Internal_to_v0_10 implements MessageConverter<Inte
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
index 4e9926c..e624455 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
@@ -64,6 +64,7 @@ public class MessageConverter_v0_10 implements MessageConverter<ServerMessage, M
private StoredMessage<MessageMetaData_0_10> convertToStoredMessage(final ServerMessage<?> serverMsg)
{
final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(serverMsg);
+ final int metadataSize = messageMetaData_0_10.getStorableSize();
return new StoredMessage<MessageMetaData_0_10>()
{
@@ -92,6 +93,12 @@ public class MessageConverter_v0_10 implements MessageConverter<ServerMessage, M
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
index dcf2f4b..dc8e2e8 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
@@ -77,6 +77,7 @@ public class MessageConverter_Internal_to_v0_8 implements MessageConverter<Inter
final MessageMetaData messageMetaData_0_8 = convertMetaData(serverMsg,
mimeType,
messageContent.length);
+ final int metadataSize = messageMetaData_0_8.getStorableSize();
return new StoredMessage<MessageMetaData>()
{
@@ -105,6 +106,12 @@ public class MessageConverter_Internal_to_v0_8 implements MessageConverter<Inter
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
index 53fb71d..53c6666 100644
--- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
+++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
@@ -254,6 +254,12 @@ public abstract class MessageConverter_to_1_0<M extends ServerMessage> implement
}
@Override
+ public int getMetadataSize()
+ {
+ return _metaData.getStorableSize();
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java b/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
index 602aab5..54e323e 100644
--- a/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
+++ b/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
@@ -84,6 +84,7 @@ public class MessageConverter_1_0_to_v0_10 implements MessageConverter<Message_1
addressSpace,
mimeType,
messageContent.length);
+ final int metadataSize = messageMetaData_0_10.getStorableSize();
return new StoredMessage<MessageMetaData_0_10>()
{
@@ -112,6 +113,12 @@ public class MessageConverter_1_0_to_v0_10 implements MessageConverter<Message_1
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
index 1558caa..f2b0652 100644
--- a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
+++ b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
@@ -187,6 +187,7 @@ public class MessageConverter_0_10_to_0_8 implements MessageConverter<MessageTra
NamedAddressSpace addressSpace)
{
final MessageMetaData metaData = convertMetaData(message, addressSpace);
+ final int metadataSize = metaData.getStorableSize();
return new StoredMessage<org.apache.qpid.server.protocol.v0_8.MessageMetaData>()
{
@Override
@@ -214,6 +215,12 @@ public class MessageConverter_0_10_to_0_8 implements MessageConverter<MessageTra
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
index b298e9f..856c662 100644
--- a/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
+++ b/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
@@ -73,6 +73,7 @@ public class MessageConverter_0_8_to_0_10 implements MessageConverter<AMQMessag
private StoredMessage<MessageMetaData_0_10> convertToStoredMessage(final AMQMessage message_0_8)
{
final MessageMetaData_0_10 messageMetaData_0_10 = convertMetaData(message_0_8);
+ final int metadataSize = messageMetaData_0_10.getStorableSize();
return new StoredMessage<MessageMetaData_0_10>()
{
@Override
@@ -100,6 +101,12 @@ public class MessageConverter_0_8_to_0_10 implements MessageConverter<AMQMessag
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java b/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
index 2b2f6fa..d247a8f 100644
--- a/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
+++ b/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
@@ -83,6 +83,7 @@ public class MessageConverter_1_0_to_v0_8 implements MessageConverter<Message_1_
final MessageMetaData messageMetaData_0_8 = convertMetaData(serverMsg,
mimeType,
messageContent.length);
+ final int metadataSize = messageMetaData_0_8.getStorableSize();
return new StoredMessage<MessageMetaData>()
{
@@ -111,6 +112,12 @@ public class MessageConverter_1_0_to_v0_8 implements MessageConverter<Message_1_
}
@Override
+ public int getMetadataSize()
+ {
+ return metadataSize;
+ }
+
+ @Override
public void remove()
{
throw new UnsupportedOperationException();
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/1857f0b0/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
----------------------------------------------------------------------
diff --git a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
index d1e1f6c..8b0a7ad 100644
--- a/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
+++ b/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/store/jdbc/AbstractJDBCMessageStore.java
@@ -1434,6 +1434,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
private final long _messageId;
private final int _contentSize;
+ private final int _metadataSize;
private MessageDataRef<T> _messageDataRef;
@@ -1445,7 +1446,8 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
_messageDataRef = new MessageDataRef<>(metaData, !isRecovered);
_contentSize = metaData.getContentSize();
- _inMemorySize.addAndGet(metaData.getStorableSize());
+ _metadataSize = metaData.getStorableSize();
+ _inMemorySize.addAndGet(_metadataSize);
}
@@ -1467,7 +1469,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
{
metaData = (T) AbstractJDBCMessageStore.this.getMetaData(_messageId);
_messageDataRef = new MessageDataRef<>(metaData, _messageDataRef.getData(), false);
- _inMemorySize.addAndGet(metaData.getStorableSize());
+ _inMemorySize.addAndGet(getMetadataSize());
}
catch (SQLException e)
{
@@ -1586,6 +1588,12 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
return _contentSize;
}
+ @Override
+ public int getMetadataSize()
+ {
+ return _metadataSize;
+ }
+
synchronized void store(final Connection conn) throws SQLException
{
if (!stored())
@@ -1641,7 +1649,7 @@ public abstract class AbstractJDBCMessageStore implements MessageStore
long bytesCleared = 0;
if ((metaData = _messageDataRef.getMetaData()) != null)
{
- bytesCleared += metaData.getStorableSize();
+ bytesCleared += getMetadataSize();
metaData.dispose();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org