<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/redis.git/src/scripting.c, branch queue-in-multi</title>
<subtitle>github.com: antirez/redis.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/'/>
<entry>
<title>Transactions: Use CMD_CLAL_NOQUEUE now that call() handles +QUEUED.</title>
<updated>2018-10-09T09:02:03+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-10-09T09:01:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=483496903293be2541c4b779674add12281c5059'/>
<id>483496903293be2541c4b779674add12281c5059</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix invalid use of sdsZmallocSize on an embedded string</title>
<updated>2018-09-30T09:32:48+00:00</updated>
<author>
<name>Bruce Merry</name>
<email>bmerry@gmail.com</email>
</author>
<published>2018-09-29T19:48:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=ecc48369ce2f890922e462bfe82e4e26cbb8beba'/>
<id>ecc48369ce2f890922e462bfe82e4e26cbb8beba</id>
<content type='text'>
sdsZmallocSize assumes a dynamically allocated SDS. When given a string
object created by createEmbeddedStringObject, it calls zmalloc_size on a
pointer that isn't the one returned by zmalloc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sdsZmallocSize assumes a dynamically allocated SDS. When given a string
object created by createEmbeddedStringObject, it calls zmalloc_size on a
pointer that isn't the one returned by zmalloc
</pre>
</div>
</content>
</entry>
<entry>
<title>Slave removal: scripting.c logs and other stuff fixed.</title>
<updated>2018-09-11T13:32:28+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-09-10T15:09:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=1051d9383773f26b5a56dc1380006c841b7d59a8'/>
<id>1051d9383773f26b5a56dc1380006c841b7d59a8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use commands (effects) replication by default in scripts.</title>
<updated>2018-09-05T17:33:56+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-09-05T17:33:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=7895835df6aeb2a2d499bc499ae6cb340228908f'/>
<id>7895835df6aeb2a2d499bc499ae6cb340228908f</id>
<content type='text'>
See issue #5250 and issue #5292 for more info.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See issue #5250 and issue #5292 for more info.
</pre>
</div>
</content>
</entry>
<entry>
<title>Safer script stop condition on OOM.</title>
<updated>2018-09-05T13:48:08+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-09-05T13:48:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=7e11825ef4467ccc64f961761ea050a3df4853ba'/>
<id>7e11825ef4467ccc64f961761ea050a3df4853ba</id>
<content type='text'>
Here the idea is that we do not want freeMemoryIfNeeded() to propagate a
DEL command before the script and change what happens in the script
execution once it reaches the slave. For example see this potential
issue (in the words of @soloestoy):

On master, we run the following script:

    if redis.call('get','key')
    then
        redis.call('set','xxx','yyy')
    end
    redis.call('set','c','d')

Then when redis attempts to execute redis.call('set','xxx','yyy'), we call freeMemoryIfNeeded(), and the key may get deleted, and because redis.call('set','xxx','yyy') has already been executed on master, this script will be replicated to slave.

But the slave received "DEL key" before the script, and will ignore maxmemory, so after that master has xxx and c, slave has only one key c.

Note that this patch (and other related work) was authored collaboratively in
issue #5250 with the help of @soloestoy and @oranagra.

Related to issue #5250.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Here the idea is that we do not want freeMemoryIfNeeded() to propagate a
DEL command before the script and change what happens in the script
execution once it reaches the slave. For example see this potential
issue (in the words of @soloestoy):

On master, we run the following script:

    if redis.call('get','key')
    then
        redis.call('set','xxx','yyy')
    end
    redis.call('set','c','d')

Then when redis attempts to execute redis.call('set','xxx','yyy'), we call freeMemoryIfNeeded(), and the key may get deleted, and because redis.call('set','xxx','yyy') has already been executed on master, this script will be replicated to slave.

But the slave received "DEL key" before the script, and will ignore maxmemory, so after that master has xxx and c, slave has only one key c.

Note that this patch (and other related work) was authored collaboratively in
issue #5250 with the help of @soloestoy and @oranagra.

Related to issue #5250.
</pre>
</div>
</content>
</entry>
<entry>
<title>Propagate read-only scripts as SCRIPT LOAD.</title>
<updated>2018-09-05T13:44:33+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-09-05T11:20:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=092e4de613af1464d7592cd51e12bd1c87dd0645'/>
<id>092e4de613af1464d7592cd51e12bd1c87dd0645</id>
<content type='text'>
See issue #5250 and the new comments added to the code in this commit
for details.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See issue #5250 and the new comments added to the code in this commit
for details.
</pre>
</div>
</content>
</entry>
<entry>
<title>Unblocked clients API refactoring. See #4418.</title>
<updated>2018-09-03T16:39:18+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-09-03T16:39:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=6c001bfc0ddf8e7a93e86dad250e416166253d85'/>
<id>6c001bfc0ddf8e7a93e86dad250e416166253d85</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>if master is already unblocked, do not unblock it twice</title>
<updated>2018-09-03T06:36:48+00:00</updated>
<author>
<name>zhaozhao.zz</name>
<email>zhaozhao.zz@alibaba-inc.com</email>
</author>
<published>2018-09-03T06:36:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=2290c4bee1904d4418fd1fa9192a3fbc13bf38b0'/>
<id>2290c4bee1904d4418fd1fa9192a3fbc13bf38b0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>After slave Lua script leaves busy state, re-process the master buffer.</title>
<updated>2018-08-31T14:45:02+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-08-31T14:07:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=7fa493912e5de72edd7b1720d1a7d1f4287998f8'/>
<id>7fa493912e5de72edd7b1720d1a7d1f4287998f8</id>
<content type='text'>
Technically speaking we don't really need to put the master client in
the clients that need to be processed, since in practice the PING
commands from the master will take care, however it is conceptually more
sane to do so.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Technically speaking we don't really need to put the master client in
the clients that need to be processed, since in practice the PING
commands from the master will take care, however it is conceptually more
sane to do so.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow scripts to timeout even if from the master instance.</title>
<updated>2018-08-31T14:45:02+00:00</updated>
<author>
<name>antirez</name>
<email>antirez@gmail.com</email>
</author>
<published>2018-08-30T09:46:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/redis.git/commit/?id=83af8ef1fdbfb69dd53cedc8e772184b096a5da8'/>
<id>83af8ef1fdbfb69dd53cedc8e772184b096a5da8</id>
<content type='text'>
However the master scripts will be impossible to kill.

Related to #5297.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
However the master scripts will be impossible to kill.

Related to #5297.
</pre>
</div>
</content>
</entry>
</feed>
