<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in replication.tcl</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f28803ce - Regression test for issue #2813.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#f28803ce</link>
        <description>Regression test for issue #2813.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 15 Oct 2015 09:23:13 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>37260bc3 - Test: regression for issue #2473.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#37260bc3</link>
        <description>Test: regression for issue #2473.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Fri, 27 Mar 2015 11:10:46 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>8a09e129 - Attempt to prevent false positives in replication test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#8a09e129</link>
        <description>Attempt to prevent false positives in replication test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Mon, 24 Nov 2014 10:54:53 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d6797d34 - Diskless replication tested with the multiple slaves consistency test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#d6797d34</link>
        <description>Diskless replication tested with the multiple slaves consistency test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Fri, 24 Oct 2014 07:49:22 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1cedebb7 - Remove trailing spaces from tests</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#1cedebb7</link>
        <description>Remove trailing spaces from tests

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 31 Jul 2014 18:39:49 +0000</pubDate>
        <dc:creator>Matt Stancliff &lt;matt@genges.com&gt;</dc:creator>
    </item>
<item>
        <title>e01195e9 - Test: AOF rewrite during write load.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#e01195e9</link>
        <description>Test: AOF rewrite during write load.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 10 Jul 2014 09:24:59 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1f0c0df4 - Fixed assert conditional in ROLE command test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#1f0c0df4</link>
        <description>Fixed assert conditional in ROLE command test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 26 Jun 2014 20:13:46 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1206bdf1 - Basic tests for the ROLE command.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#1206bdf1</link>
        <description>Basic tests for the ROLE command.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Mon, 23 Jun 2014 07:08:51 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d64d2e21 - Make tests compatible with new INFO replication output.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#d64d2e21</link>
        <description>Make tests compatible with new INFO replication output.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 30 May 2013 09:43:43 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>11542835 - Use `info nameofexectuable`  to find current executable</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#11542835</link>
        <description>Use `info nameofexectuable`  to find current executable

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Wed, 23 Jan 2013 22:37:18 +0000</pubDate>
        <dc:creator>Johan Bergstr&#246;m &lt;bugs@bergstroem.nu&gt;</dc:creator>
    </item>
<item>
        <title>7eb850ef - A reimplementation of blocking operation internals.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#7eb850ef</link>
        <description>A reimplementation of blocking operation internals.Redis provides support for blocking operations such as BLPOP or BRPOP.This operations are identical to normal LPOP and RPOP operations as longas there are elements in the target list, but if the list is empty theyblock waiting for new data to arrive to the list.All the clients blocked waiting for th same list are served in a FIFOway, so the first that blocked is the first to be served when there ismore data pushed by another client into the list.The previous implementation of blocking operations was conceived toserve clients in the context of push operations. For for instance:1) There is a client &quot;A&quot; blocked on list &quot;foo&quot;.2) The client &quot;B&quot; performs `LPUSH foo somevalue`.3) The client &quot;A&quot; is served in the context of the &quot;B&quot; LPUSH,synchronously.Processing things in a synchronous way was useful as if &quot;A&quot; pushes avalue that is served by &quot;B&quot;, from the point of view of the database is aNOP (no operation) thing, that is, nothing is replicated, nothing iswritten in the AOF file, and so forth.However later we implemented two things:1) Variadic LPUSH that could add multiple values to a list in thecontext of a single call.2) BRPOPLPUSH that was a version of BRPOP that also provided a &quot;PUSH&quot;side effect when receiving data.This forced us to make the synchronous implementation more complex. Ifclient &quot;B&quot; is waiting for data, and &quot;A&quot; pushes three elemnents in asingle call, we needed to propagate an LPUSH with a missing argumentin the AOF and replication link. We also needed to make sure toreplicate the LPUSH side of BRPOPLPUSH, but only if in turn did nothappened to serve another blocking client into another list ;)This were complex but with a few of mutually recursive functionseverything worked as expected... until one day we introduced scriptingin Redis.Scripting + synchronous blocking operations = Issue #614.Basically you can&apos;t &quot;rewrite&quot; a script to have just a partial effect onthe replicas and AOF file if the script happened to serve a few blockedclients.The solution to all this problems, implemented by this commit, is tochange the way we serve blocked clients. Instead of serving the blockedclients synchronously, in the context of the command performing the PUSHoperation, it is now an asynchronous and iterative process:1) If a key that has clients blocked waiting for data is the subject ofa list push operation, We simply mark keys as &quot;ready&quot; and put it into aqueue.2) Every command pushing stuff on lists, as a variadic LPUSH, a script,or whatever it is, is replicated verbatim without any rewriting.3) Every time a Redis command, a MULTI/EXEC block, or a script,completed its execution, we run the list of keys ready to serve blockedclients (as more data arrived), and process this list serving theblocked clients.4) As a result of &quot;3&quot; maybe more keys are ready again for other clients(as a result of BRPOPLPUSH we may have push operations), so we iterateback to step &quot;3&quot; if it&apos;s needed.The new code has a much simpler semantics, and a simpler to understandimplementation, with the disadvantage of not being able to &quot;optmize out&quot;a PUSH+BPOP as a No OP.This commit will be tested with care before the final merge, more testswill be added likely.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Tue, 04 Sep 2012 08:37:49 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d9241b35 - Properly wait the slave to sync with master in BRPOPLPUSH test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#d9241b35</link>
        <description>Properly wait the slave to sync with master in BRPOPLPUSH test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Mon, 30 Apr 2012 08:55:03 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2d4b5521 - A more lightweight implementation of issue 141 regression test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#2d4b5521</link>
        <description>A more lightweight implementation of issue 141 regression test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Sat, 28 Apr 2012 13:39:00 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>28ccb530 - Redis test: More reliable BRPOPLPUSH replication test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#28ccb530</link>
        <description>Redis test: More reliable BRPOPLPUSH replication test.Now it uses the new wait_for_condition testing primitive.Also wait_for_condition implementation was fixed in this commit to properlyescape the expr command and its argument.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 26 Apr 2012 09:25:13 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>459e2975 - On slow computers, 10 seconds are not enough for this heavy replication test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#459e2975</link>
        <description>On slow computers, 10 seconds are not enough for this heavy replication test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Wed, 04 Apr 2012 17:54:23 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>06312eed - Possible fix for false positives in issue 141 regression test</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#06312eed</link>
        <description>Possible fix for false positives in issue 141 regression test

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Thu, 12 Jan 2012 15:24:41 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>414c3dea - Regression test for the main problem causing issue #141. Minor changes/fixes/additions to the test suite itself needed to write the test.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#414c3dea</link>
        <description>Regression test for the main problem causing issue #141. Minor changes/fixes/additions to the test suite itself needed to write the test.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Fri, 06 Jan 2012 16:28:40 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c0875a77 - Regression test for issue #142 added</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#c0875a77</link>
        <description>Regression test for issue #142 added

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Mon, 17 Oct 2011 08:40:11 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4c378d7f - new test engine valgrind support</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#4c378d7f</link>
        <description>new test engine valgrind support

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Mon, 11 Jul 2011 11:41:06 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>569f84aa - replication test split into three parts in order to improve test execution time. Random fixes and improvements.</title>
        <link>http://172.16.0.5:8080/history/redis-3.2.3/tests/integration/replication.tcl#569f84aa</link>
        <description>replication test split into three parts in order to improve test execution time. Random fixes and improvements.

            List of files:
            /redis-3.2.3/tests/integration/replication.tcl</description>
        <pubDate>Sun, 10 Jul 2011 22:46:25 +0000</pubDate>
        <dc:creator>antirez &lt;antirez@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
