Infinite Loop using zones

46 views
Skip to first unread message

ctasada

unread,
Jun 18, 2012, 7:49:54 AM6/18/12
to project-...@googlegroups.com
Hi everyone,

Doing my test to migrate to a zones aware cluster, I created an small test cluster like this:

<cluster>

    <name>cluster-zone-test</name>

    <zone>

        <zone-id>1</zone-id>

        <proximity-list>2</proximity-list>

    </zone>

    <zone>

        <zone-id>2</zone-id>

        <proximity-list>1</proximity-list>

    </zone>

    <server>

        <id>0</id>

        <host>10.162.2.145</host>

        <http-port>38188</http-port>

        <socket-port>6688</socket-port>

        <partitions>0,2,4</partitions>

        <zone-id>1</zone-id>

    </server>

    <server>

        <id>1</id>

        <host>10.162.2.145</host>

        <http-port>38288</http-port>

        <socket-port>6788</socket-port>

        <partitions>1,3,5</partitions>

        <zone-id>2</zone-id>

    </server>

</cluster>


And defined an store like this

<stores>

  <store>

    <name>test</name>

    <persistence>bdb</persistence>

    <routing>server</routing>

    <routing-strategy>zone-routing</routing-strategy>

    <!-- global replication factor -->

    <replication-factor>2</replication-factor>

    <!-- zone specific replication factors -->

    <zone-replication-factor>

       <replication-factor zone-id="1">1</replication-factor>

       <replication-factor zone-id="2">1</replication-factor>

    </zone-replication-factor>

    <zone-count-reads>0</zone-count-reads>

    <zone-count-writes>0</zone-count-writes>

    

    <required-reads>1</required-reads>

    <preferred-reads>1</preferred-reads>

    <required-writes>1</required-writes>

    <preferred-writes>1</preferred-writes>

    <key-serializer>

      <type>string</type>

    </key-serializer>

    <value-serializer>

      <type>string</type>

    </value-serializer>

    <hinted-handoff-strategy>consistent-handoff</hinted-handoff-strategy>

  </store> 

</stores>


Once started any of the nodes I see that the server doesn't startup, its waiting for something. After doing some debug I discovered that the server is looping in the ConsistentHandoffStrategy constructor.

If I remove the <hinted-handoff-strategy> from the stores.xml everything runs properly. Am I configuring something wrong?

I'll keep looking for a fix to this problem, but if someone can confirm if it's a bug or something else, would be great :)

Regards,
Carlos

Francois

unread,
Jun 19, 2012, 3:45:25 AM6/19/12
to project-voldemort
Hello Carlos,

Looking at your configuration, I see that W (1) + R (1) = 2, which is
not > R (2).

So you could write on one node, and read on another one a different
version, without detecting any inconsistency.

Consistent handoff looks for slop store walking down the ring and has
maybe a problem with this configuration. any-handoff (default) picks a
random node and that's it.

Carlos Tasada

unread,
Jun 19, 2012, 9:32:19 AM6/19/12
to project-...@googlegroups.com
Hi François,

My idea is to have a simple dev environment where I read/write from a node in one zone and the values are synced to the other node. Basically I want to make sure that the zones are independent, but synced and that if something happens to the communication between the zones, then the slop store will take care of the sync.

Probably for my tests I could simply use any-handoff, but I want to make sure the whole thing works in the production environment. Also if the problem is what you're pointing to, the I thing there's some check missing in the startup to properly complain about it.

--
You received this message because you are subscribed to the Google Groups "project-voldemort" group.
To post to this group, send email to project-...@googlegroups.com.
To unsubscribe from this group, send email to project-voldem...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/project-voldemort?hl=en.


Reply all
Reply to author
Forward
0 new messages