[
https://issues.apache.org/jira/browse/TUBEMQ-123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17120869#comment-17120869
]
eivenchan edited comment on TUBEMQ-123 at 6/1/20, 9:10 AM:
-----------------------------------------------------------
Below is my propose:
# Read the size of batche from configuration in MsgMemStore。
# Carry corresponding size of message from cacheDataSegment and
cachedIndexSegment then invoke MsgFileStore.appendMsg() in MsgMemStore.flush().
# Refact MsgFileStore.appendMsg() to receive array of msgDataBufs and
msgIndexMetadata.
# Construct byteBufferIndex of mutil msgIndexMetadata, append msgDataBufs to
curDataSeg and byteBufferIndex to curIndexSeg respectively.
Something else ?
was (Author: eivenchan):
Below is my propose:
# Read the size of batche from configuration in MsgMemStore。
# Carry corresponding size of message from cacheDataSegment and
cachedIndexSegment then invoke MsgFileStore.appendMsg() in MsgMemStore.flush().
# Refact MsgFileStore.appendMsg() to receive array of msgDataBufs and
msgIndexBufs.
# Construct byteBufferIndex of msgIndexBufs, append msgDataBufs to curDataSeg
and byteBufferIndex to curIndexSeg respectively.
Something else ?
> Batch flush data to disk
> ------------------------
>
> Key: TUBEMQ-123
> URL: https://issues.apache.org/jira/browse/TUBEMQ-123
> Project: Apache TubeMQ
> Issue Type: Sub-task
> Reporter: Guocheng Zhang
> Priority: Major
> Attachments: image-2020-05-16-21-56-43-218.png
>
>
> 4. More effective memory-to-disk operation: At present, the flashing
> operation is to flash messages from the memory to the disk one by one for
> storage. This block can be adjusted to write to the disk in batches according
> to the memory block, thereby improving storage efficiency;
>
> ------------------------------------------------------
> This problem was pointed out by an MQ expert: in the current version, TubeMQ
> does not handle the data well enough when refreshing the data from memory to
> disk, It is carried out through the refresh mode one by one, the related
> problems are shown in the following figure:
> !image-2020-05-16-21-56-43-218.png!
>
> After searching for documents and analyzing this problem, This should be a
> better practice method that datas writing to disk according to the size of 4
> times the number of bytes, but the difference between the specific size and
> the effect of flushing is related to the relevant operating environment.
> So I want to optimize this to flush the datas to the disk in batches of a
> specified size (configurable) to improve disk write efficiency, and combined
> with the modification of [TUBEMQ-120], it should be able to achieve better
> results
--
This message was sent by Atlassian Jira
(v8.3.4#803005)