Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added zlib reading and upgraded crc library to move to OTP > 23 #11

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

RobKamstra
Copy link

No description provided.

@sabudaye sabudaye requested a review from alphashaw July 6, 2021 10:53
Comment on lines +118 to +121
Z = zlib:open(),
ok = zlib:inflateInit(Z),
[UnzippedPayload] = zlib:inflate(Z, Payload),
zlib:close(Z),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @RobKamstra!
This looks great ✨.

I think de/compression is a good feature to have especially when zlib implementation is already part of the erlang OTP.
I just have one suggestion, can we move the decompression logic upward like to the connection or consumer process? That way we can keep the zlibstream open for reuse instead of opening and closing every time for every inflation.

I traced the usage of pulserl_io:decode_metadata(HeadersAndPayload), where you do the inflation to https://github.com/skulup/pulserl/blob/bc6ac2fd9a52b24483d8bad75719bac4e9442d3e/src/pulserl_consumer.erl#L377

which is a handler callback to
https://github.com/skulup/pulserl/blob/bc6ac2fd9a52b24483d8bad75719bac4e9442d3e/src/pulserl_conn.erl#L349

From this standpoint it seems we've two places to do this: The connection process or the consumer process.

It seems like zlibstream per consumer process will be the better option as we may not want to block the connection process from doing IO stuffs.

What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants