[ https://issues.apache.org/jira/browse/ROCKETMQ-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15869383#comment-15869383 ]
ASF GitHub Bot commented on ROCKETMQ-91: ---------------------------------------- Github user shroman commented on a diff in the pull request: https://github.com/apache/incubator-rocketmq/pull/57#discussion_r101456741 --- Diff: store/src/main/java/org/apache/rocketmq/store/CommitLog.java --- @@ -1154,7 +1249,7 @@ public AppendMessageResult doAppend(final long fileFromOffset, final ByteBuffer if (propertiesLength > Short.MAX_VALUE) { log.warn("putMessage message properties length too long. length={}", propertiesData.length); - return new AppendMessageResult(AppendMessageStatus.PROPERTIES_SIZE_EXCEEDED); + throw new RuntimeException("PROPERTIES_SIZE_EXCEEDED"); --- End diff -- By changing to this, `PROPERTIES_SIZE_EXCEEDED` won't be caught in the following switch. > Reduce lock granularity for putMessage > -------------------------------------- > > Key: ROCKETMQ-91 > URL: https://issues.apache.org/jira/browse/ROCKETMQ-91 > Project: Apache RocketMQ > Issue Type: Improvement > Affects Versions: 4.1.0-incubating > Reporter: dongeforever > Assignee: dongeforever > Fix For: 4.1.0-incubating > > > CommitLog putMessage has a lock as: > lockForPutMessage() > .... > releasePutMessageLock() > The logic inside the lock includes two main operations: > 1 encode the message > 2 write to the PageCache. > However, we can take the first operation(encode message) out from the lock to > achieve better performance. -- This message was sent by Atlassian JIRA (v6.3.15#6346)