Assign empty labels to array elements for better efficiency#19
Open
UnkindPartition wants to merge 1 commit intomongodb-haskell:masterfrom
Open
Assign empty labels to array elements for better efficiency#19UnkindPartition wants to merge 1 commit intomongodb-haskell:masterfrom
UnkindPartition wants to merge 1 commit intomongodb-haskell:masterfrom
Conversation
Member
|
Hi @feuerbach can possibly see a reason for using consequtive integers array labels? |
Member
|
It looks like bson spec explicitly suggests to use consequtive ascending order of labels: http://bsonspec.org/spec.html (look for notes). Can we optimize it somehow without dropping consequtive labels? |
Author
|
I see. Well, you could replace Also, a comment in the code citing/linking to that part of the spec would be helpful. Thanks. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Right now this package assigns consecutive integer numbers (serialized as strings) for array labels. This is wasteful in both space and time.
This PR addresses the issue as far as possible within the BSON spec.
In my example, this reduced the serialziation time from 1.5s to 1s and the file size from 45Mb to 32Mb.