[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15665565#comment-15665565 ] ASF GitHub Bot commented on KAFKA-2066: --- Github user asfgit closed the pull request at: https://github.com/apache/kafka/pull/2069 > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: Jason Gustafson > Fix For: 0.10.2.0 > > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15609393#comment-15609393 ] ASF GitHub Bot commented on KAFKA-2066: --- GitHub user hachikuji opened a pull request: https://github.com/apache/kafka/pull/2069 KAFKA-2066: Use client-side FetchRequest/FetchResponse on server You can merge this pull request into a Git repository by running: $ git pull https://github.com/hachikuji/kafka KAFKA-2066 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/2069.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #2069 commit 3a8a99d6b1177dc703a07c358a628091a0bb7654 Author: Jason Gustafson Date: 2016-10-24T23:17:43Z KAFKA-2066: Use client-side FetchRequest/FetchResponse on server > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: Jason Gustafson > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15571793#comment-15571793 ] Ismael Juma commented on KAFKA-2066: Thanks David. Assigned to Jason as he said he's available to pick it up. Jason, please unassign if I misunderstood. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: Jason Gustafson > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15571702#comment-15571702 ] David Jacot commented on KAFKA-2066: Unfortunately, I won't have time in the next weeks. [~hachikuji], feel free to pick it up. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15570135#comment-15570135 ] Jason Gustafson commented on KAFKA-2066: I am available to pick this up since I'm beginning work which may depend on it, so please let us know. Thanks! > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15570087#comment-15570087 ] Ismael Juma commented on KAFKA-2066: [~dajac], it would be good to make progress on this. Do you think you will have time to pick this up again? If not, it may be worth unassigning yourself so that someone else can pick it up. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15185779#comment-15185779 ] Grant Henke commented on KAFKA-2066: [~dajac] Are you still working on this? > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15158985#comment-15158985 ] Ismael Juma commented on KAFKA-2066: [~dajac], the PR for KIP-31 and KIP-32 has been merged (FYI). > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15112619#comment-15112619 ] David Jacot commented on KAFKA-2066: [~becket_qin] That makes sense. I'll take a look at your PR. Regarding (1), indeed, old producer and consumer stay as they are today. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15112481#comment-15112481 ] Jiangjie Qin commented on KAFKA-2066: - [~dajac] I think it would be better if you can hold back writing the patch until KIP-31 and KIP-32 get checked in. Otherwise either you or me need to do a big rebase and that's going to be a waste of time. Another reason is that after KIP-31 and KIP-32 get checked in, changes needed for Records, MemoryRecords and FileRecords(to be added) will be very clear because we simply need to make them equivalent to MessageSet, ByteBufferMessageSet and FileMessageSet. If you really want to start writing the patch now, I would suggest you to take a look at PR#764 to get some ideas about what is needed for (1) and (2). In terms of (1) we don't need to update the old producer and consumer to use Records. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15112285#comment-15112285 ] Ismael Juma commented on KAFKA-2066: [~dajac], I suggest you submit a PR for review once 1 and 2 are done. And 3 and 4 can be done in a subsequent PR (even if it ends up being merged as a single PR in the end depending on how the review process goes, it will still be useful to review the approach before doing 3 and 4). > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15112045#comment-15112045 ] David Jacot commented on KAFKA-2066: [~becket_qin], indeed replacing MessageSet with Records is better than having some sort of conversion. [~ijuma], [~becket_qin], overall the plan looks like this: 1. Use Records in the requests/reponses. This also requires to update Producer and Consumer. 2. Extend serialization system to support Records and Channel (for the zero-copy). This also requires to add more methods in Records (writeTo, ...). 3. Replace MessageSet with Records on the broker side. 4. Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents. I have started to work on 1) and 2). I'll take care of the broker side after. Is is OK to keep such a big batch of changes in the same patch or should we break it into several paths? > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1507#comment-1507 ] Ismael Juma commented on KAFKA-2066: [~becket_qin], that makes sense to me (although I haven't looked at all usages in detail). Trying to implement this should make it obvious if more (or less) is needed. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15111034#comment-15111034 ] Jiangjie Qin commented on KAFKA-2066: - [~dajac] [~ijuma] I was thinking about this when writing the patch for KIP-31 and KIP-32. 1. zero-copy takes place in FileMessageSet, so a new subclass of Records (eg. FileRecords) should be created. 2. Current Records interface is very simple. We need to add more methods to it. Because after KIP-31 and KIP-32 we sometimes need to do message format conversion, that requires MemoryRecords and FileRecords has at least the same interface of writeTo(). 3. We probably don't need MessageSet to Records conversion. What we can do is to replace all MessageSet used on broker side with Records. So MessageSet will only be used in SimpleConsumer. Thoughts? > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15107070#comment-15107070 ] Ismael Juma commented on KAFKA-2066: Yes, a way to convert from MessageSet to Record is probably needed and should be doable without inheritance, I think. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15107051#comment-15107051 ] David Jacot commented on KAFKA-2066: [~ijuma], - Inheritance might not be the best way but, at least, we need a way to convert MessageSet to Records; - Regarding the SimpleConsumer, I wouldn't touch it at all but I'll make sure things work properly. Thank you for your input. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15106721#comment-15106721 ] Ismael Juma commented on KAFKA-2066: [~dajac], I am not sure about making `MessageSet` inherit from `Records`. The rest seems to make sense. A couple of things. * The PR for KIP-31 and KIP-32 makes some changes to the relevant classes: https://github.com/apache/kafka/pull/764 * We need to ensure compatibility for SimpleConsumer that exposes MessageSet via FetchResponse and FetchResponsePartitionData. > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (KAFKA-2066) Replace FetchRequest / FetchResponse with their org.apache.kafka.common.requests equivalents
[ https://issues.apache.org/jira/browse/KAFKA-2066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15104883#comment-15104883 ] David Jacot commented on KAFKA-2066: In the current implementation, FetchResponse contains a map of FetchResponsePartitionData where each FetchResponsePartitionData contains a MessageSet. Then, FetchResponseSend is used to directly transfers bytes of each MessageSet to the channel. This is where the "zero-copy" happens. Whereas, in the new FetchResponse, messages are represented as a ByteBuffer which brings all bytes in the user space and therefore breaks the "zero-copy". In order to keep it, I propose to use Records instead of a ByteBuffer in FetchResponse and extend the serialization mechanism to support channels. I need to work out the details but, roughly, It would require to: 1) update FetchResponse (and ProduceRequest to stay consistent); 2) introduce a new Type for Records; 3) add a new method in Type which work a the channel level with a default implementation which uses the current way; and 4) add some methods in Records interface for the serialization (basically what is in MessageSet) 4) make MessageSet inherit from Records to make them interoperable (serialization wise). [~ijuma], [~granthenke] What do you think? > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents > > > Key: KAFKA-2066 > URL: https://issues.apache.org/jira/browse/KAFKA-2066 > Project: Kafka > Issue Type: Sub-task >Reporter: Gwen Shapira >Assignee: David Jacot > > Replace FetchRequest / FetchResponse with their > org.apache.kafka.common.requests equivalents. > Note that they can't be completely removed until we deprecate the > SimpleConsumer API (and it will require very careful patchwork for the places > where core modules actually use the SimpleConsumer API). > This also requires a solution on how to stream from memory-mapped files > (similar to what existing code does with FileMessageSet. -- This message was sent by Atlassian JIRA (v6.3.4#6332)