<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/xlators/experimental/jbr-server/src/gen-fops.py, branch round-robin2</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>jbr/locking: Define path for lock/unlock fops in JBR</title>
<updated>2016-05-26T15:27:43+00:00</updated>
<author>
<name>Avra Sengupta</name>
<email>asengupt@redhat.com</email>
</author>
<published>2016-05-16T09:25:54+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=c137f6a7389d7f760e4724f3506180f9cfc0da52'/>
<id>c137f6a7389d7f760e4724f3506180f9cfc0da52</id>
<content type='text'>
lock/unlock fops need to be handled differently than
other 'regular' fops, so as to avoid chances of deadlock
in blocking calls. This patch addresses the same in the
following manner, with a caveat.

1. On receiving the fop if the node is a follower, it
   performs the operation (irrespective of it being
   lock/unlock fop), and returns the result.

2. If the node is a leader it follows the following paths
   for lock and unlock fops:

   For lock fops :
   -&gt; It performs the fop on itself. If it is a failure, it
      sends -ve ack to the client. If it is successful, it
      dispatches the fop to the followers.
   -&gt; On receiving responses from the followers, it checks
      for quorum (including the leader's outcome). If
      quorum is met, it sends +ve ack to the client.
   -&gt; If quorum is not met, then it *should* issue a rollback
      to the followers, followed by the rollback on the leader.
      It should then send -ve ack to he client.

   For unlock fops:
   -&gt; It dispatches the fop on the followers first.
   -&gt; On receiving responses from the followers, it performs
      the fop on itself. On completion, it checks for quorum
      (including the leader's outcome). If quorum is met, it
      sends +ve ack to the client.
   -&gt; If quorum is not met, then it *should* issue a rollback
      on itslef, followed by the rollback on the followers.
      It should then send -ve ack to he client.

Caveat:
   -&gt; jbr-server does not have a rollback framework yet,
      and hence this patch does not perform the rollbacks as
      discussed in the failure scenarios above. The rollback
      framework will be a different dependent patch.

Change-Id: I26961b27cb85f324c1ffeee80e82ec082ffa4465
BUG: 1333370
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14226
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
lock/unlock fops need to be handled differently than
other 'regular' fops, so as to avoid chances of deadlock
in blocking calls. This patch addresses the same in the
following manner, with a caveat.

1. On receiving the fop if the node is a follower, it
   performs the operation (irrespective of it being
   lock/unlock fop), and returns the result.

2. If the node is a leader it follows the following paths
   for lock and unlock fops:

   For lock fops :
   -&gt; It performs the fop on itself. If it is a failure, it
      sends -ve ack to the client. If it is successful, it
      dispatches the fop to the followers.
   -&gt; On receiving responses from the followers, it checks
      for quorum (including the leader's outcome). If
      quorum is met, it sends +ve ack to the client.
   -&gt; If quorum is not met, then it *should* issue a rollback
      to the followers, followed by the rollback on the leader.
      It should then send -ve ack to he client.

   For unlock fops:
   -&gt; It dispatches the fop on the followers first.
   -&gt; On receiving responses from the followers, it performs
      the fop on itself. On completion, it checks for quorum
      (including the leader's outcome). If quorum is met, it
      sends +ve ack to the client.
   -&gt; If quorum is not met, then it *should* issue a rollback
      on itslef, followed by the rollback on the followers.
      It should then send -ve ack to he client.

Caveat:
   -&gt; jbr-server does not have a rollback framework yet,
      and hence this patch does not perform the rollbacks as
      discussed in the failure scenarios above. The rollback
      framework will be a different dependent patch.

Change-Id: I26961b27cb85f324c1ffeee80e82ec082ffa4465
BUG: 1333370
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14226
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>jbr: Making fop functions more modular to reuse more code</title>
<updated>2016-05-25T18:52:44+00:00</updated>
<author>
<name>Avra Sengupta</name>
<email>asengupt@redhat.com</email>
</author>
<published>2016-05-10T06:43:18+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=f8f16595d8dd8c8a869630bb77b7fd1b42b97e08'/>
<id>f8f16595d8dd8c8a869630bb77b7fd1b42b97e08</id>
<content type='text'>
Putting bigger chunks of re-usable code like leader checks
and init into functions thereby reducing the size of the
'fop' call.

Introduced 'perform_local_op' in the 'fop' call, where
regular functions as of now just call dispatch, but fops
like 'lk' can do their fop specific operations.

Introduced selective_generate to allow certain functions
for a particular fop to be generated. The rest of the
functions can be customised and added in jbr.c

Change-Id: I3754ed68983e763329e14a2faef911428e36e4f0
BUG: 1336328
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14355
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Putting bigger chunks of re-usable code like leader checks
and init into functions thereby reducing the size of the
'fop' call.

Introduced 'perform_local_op' in the 'fop' call, where
regular functions as of now just call dispatch, but fops
like 'lk' can do their fop specific operations.

Introduced selective_generate to allow certain functions
for a particular fop to be generated. The rest of the
functions can be customised and added in jbr.c

Change-Id: I3754ed68983e763329e14a2faef911428e36e4f0
BUG: 1336328
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/14355
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nsr/jbr: Renaming nsr to jbr</title>
<updated>2016-04-25T19:05:35+00:00</updated>
<author>
<name>Avra Sengupta</name>
<email>asengupt@redhat.com</email>
</author>
<published>2016-04-04T09:25:20+00:00</published>
<link rel='alternate' type='text/html' href='http://dev.gluster.org/cgit/glusterfs.git/commit/?id=0a43265f1b10c35506fe82a525aa0fa43af6c0cd'/>
<id>0a43265f1b10c35506fe82a525aa0fa43af6c0cd</id>
<content type='text'>
As per community consensus, we have decided to rename
nsr to jbr(Journal-Based-Replication). This is the patch
to rename the "nsr" code to "jbr"

Change-Id: Id2a9837f2ec4da89afc32438b91a1c302bb4104f
BUG: 1328043
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13899
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As per community consensus, we have decided to rename
nsr to jbr(Journal-Based-Replication). This is the patch
to rename the "nsr" code to "jbr"

Change-Id: Id2a9837f2ec4da89afc32438b91a1c302bb4104f
BUG: 1328043
Signed-off-by: Avra Sengupta &lt;asengupt@redhat.com&gt;
Reviewed-on: http://review.gluster.org/13899
Smoke: Gluster Build System &lt;jenkins@build.gluster.com&gt;
CentOS-regression: Gluster Build System &lt;jenkins@build.gluster.com&gt;
NetBSD-regression: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
