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

Merge dev into 0.6 #717

Merged
merged 15 commits into from
Oct 9, 2019
Merged

Merge dev into 0.6 #717

merged 15 commits into from
Oct 9, 2019

Conversation

smukil
Copy link
Contributor

@smukil smukil commented Oct 9, 2019

No description provided.

Girish Aher and others added 15 commits July 30, 2019 22:15
added keepalive for dynomite listen connection
Each rack has a 'struct continuum' pointer in it. This is used to determine
which token belongs to which node (see dyn_vnode.c).

While it has only a single pointer, the code uses it as though it's
an array of struct pointers. This potentially could lead to a lot of
confusion.

This patch addresses this by explicitly changing the member to an array
of structs.

Manually tested to make sure that there is no change to how the keys are
sharded.
Treat each rack continuum as an array
SCRIPT EXISTS was using the wrong message routing option causing all
the replica messages to go to the local redis instance. And Dynomite
would crash since it processes only one of the 3 replies that Redis
returns, leaving the local redis server message queue in an inconsistent
state.
…ort ZSET

The read repair infra did not allow for commands with optional support to
be read-repairable. Now, this functionality is added which lets us support
more Redis commands.

ZADD is the first command with optional arguments to have read-repair support.
ZSCORE and ZREM are also supported for read repairs.

As with the other commands, range queries are not repairable yet, and will be
added as a follow on patch.
Allow commands with optional arguments to be read-repairable and supp…
When read repairs are enabled, we attempt to keep a track of the last
parsed mbuf if the request is large enough to be split across multiple
buffers.

The code would previously update the latest_parsed_mbuf_idx field if the
current token length surpassed (mbuf)->last. This turns out to be incorrect
since we may parse with partial network reads as well.

The fix is to check if mbuf_full() before updating said index. Confirmed its
working with large requests across mbufs and partial network read requests.
Fix crash during a MSG_PARSE_AGAIN parse state w/ repairs
msg_repair() seems to have been broken in previous patches. This patch
undoes the changes made to it earlier. Revist if removing it causes
issues in the future.
@smukil smukil self-assigned this Oct 9, 2019
@smukil smukil merged commit ae86260 into v0.6 Oct 9, 2019
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.

None yet

2 participants