<feed xmlns='http://www.w3.org/2005/Atom'>
<title>glusterfs.git/libglusterfs/src/gfdb, branch v3.7.4</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/'/>
<entry>
<title>cluster/tier: fix 64 bit issue with sql query using times</title>
<updated>2015-08-13T16:08:43+00:00</updated>
<author>
<name>Dan Lambright</name>
<email>dlambrig@redhat.com</email>
</author>
<published>2015-08-13T14:24:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=0e3c9029e1d022f2aadcac7c320b7c56069bc0c6'/>
<id>0e3c9029e1d022f2aadcac7c320b7c56069bc0c6</id>
<content type='text'>
This is a backport of 11885.

&gt; We overflowed when converting seconds to usecs in preperation for
&gt; sql queries. The fix uses uint64_t throughout including subexpressions.

&gt; Change-Id: I59bdb742197400dede97f54735b52030920b0d19
&gt; BUG: 1231268
&gt; Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;

Change-Id: Iaef7083dac7a162080f4bc23e29dedfe700fa342
BUG: 1252903
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11913
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Joseph Fernandes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a backport of 11885.

&gt; We overflowed when converting seconds to usecs in preperation for
&gt; sql queries. The fix uses uint64_t throughout including subexpressions.

&gt; Change-Id: I59bdb742197400dede97f54735b52030920b0d19
&gt; BUG: 1231268
&gt; Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;

Change-Id: Iaef7083dac7a162080f4bc23e29dedfe700fa342
BUG: 1252903
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11913
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Reviewed-by: Joseph Fernandes
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfdb/ctr: Fixing rename or update of link</title>
<updated>2015-08-12T13:46:53+00:00</updated>
<author>
<name>Joseph Fernandes</name>
<email>josferna@redhat.com</email>
</author>
<published>2015-07-08T15:52:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=a6243c3b1cbeb059da98a9260730fc9767fe8b44'/>
<id>a6243c3b1cbeb059da98a9260730fc9767fe8b44</id>
<content type='text'>
Backport of http://review.gluster.org/11584 to 3.7.2

Fixing rename or updating of link in
1) libgfdb : handling return from updatelink
2) ctr xlator: correcting freeing of oldbase name in
               hardlink list in the update link

&gt;Change-Id: I1789c492b81876123cd456051a9ae495e876ad46
&gt;BUG: 1241054
&gt;Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;Reviewed-on: http://review.gluster.org/11584
&gt;Tested-by: Joseph Fernandes
&gt;Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt;Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt;Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;

Change-Id: I6da86c06e390f62fe8a44ade7b1efda5771e9ca8
BUG: 1242536
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11649
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backport of http://review.gluster.org/11584 to 3.7.2

Fixing rename or updating of link in
1) libgfdb : handling return from updatelink
2) ctr xlator: correcting freeing of oldbase name in
               hardlink list in the update link

&gt;Change-Id: I1789c492b81876123cd456051a9ae495e876ad46
&gt;BUG: 1241054
&gt;Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;Reviewed-on: http://review.gluster.org/11584
&gt;Tested-by: Joseph Fernandes
&gt;Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt;Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt;Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;

Change-Id: I6da86c06e390f62fe8a44ade7b1efda5771e9ca8
BUG: 1242536
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11649
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libgfdb/sql: Fixing broken query of find_unchanged</title>
<updated>2015-07-18T13:46:05+00:00</updated>
<author>
<name>Joseph Fernandes</name>
<email>josferna@redhat.com</email>
</author>
<published>2015-07-08T09:05:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=fa6509014ffd0c0b920e8623c4d0a72e3bf16fb3'/>
<id>fa6509014ffd0c0b920e8623c4d0a72e3bf16fb3</id>
<content type='text'>
 The find_unchanged query should be

          "write_heat &lt;= defined_heat" AND "read_heat &lt;= defined_heat"
   and not
          "write_heat &lt;= defined_heat" OR "read_heat &lt;= defined_heat"

&gt;&gt;Backport of http://review.gluster.org/#/c/11577/
&gt;&gt;Change-Id: Ie82e02aafbb7ea14563007307de3350ea022049a
&gt;&gt;BUG: 1240970
&gt;&gt;Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;

Change-Id: Ie5d06fa2e3a3552741d2e6bd76807a69808c3d65
BUG: 1241776
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11608
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-by: Pamela Ousley &lt;pousley@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 The find_unchanged query should be

          "write_heat &lt;= defined_heat" AND "read_heat &lt;= defined_heat"
   and not
          "write_heat &lt;= defined_heat" OR "read_heat &lt;= defined_heat"

&gt;&gt;Backport of http://review.gluster.org/#/c/11577/
&gt;&gt;Change-Id: Ie82e02aafbb7ea14563007307de3350ea022049a
&gt;&gt;BUG: 1240970
&gt;&gt;Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;

Change-Id: Ie5d06fa2e3a3552741d2e6bd76807a69808c3d65
BUG: 1241776
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11608
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-by: Pamela Ousley &lt;pousley@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tier/ctr: Ignore creation of T file and Ctr Lookup heal improvememnts</title>
<updated>2015-06-28T01:11:00+00:00</updated>
<author>
<name>Dan Lambright</name>
<email>dlambrig@redhat.com</email>
</author>
<published>2015-06-27T10:31:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3da1a1cf339da77e47f71b245d4cac3f9dc1da38'/>
<id>3da1a1cf339da77e47f71b245d4cac3f9dc1da38</id>
<content type='text'>
This is a back port of 11334

1) Ignore creation of T file in ctr_mknod
2) Ignore lookup for T file in ctr_lookup
3) Ctr_lookup:
    a. If the gfid and pgfid in empty dont record
    b. Decreased log level for multiple heal attempts
    c. Inode/File heal happens after an expiry period, which is configurable.
    d. Hardlink heal happens after an expiry period, which is configurable.

&gt; Change-Id: Id8eb5092e78beaec22d05f5283645081619e2452
&gt; BUG: 1235269
&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/11334
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt; Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;

Change-Id: Ia28a5cf975e41d318906f707deca447aaa35630f
BUG: 1236288
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11446
Reviewed-by: Joseph Fernandes
Tested-by: Joseph Fernandes
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a back port of 11334

1) Ignore creation of T file in ctr_mknod
2) Ignore lookup for T file in ctr_lookup
3) Ctr_lookup:
    a. If the gfid and pgfid in empty dont record
    b. Decreased log level for multiple heal attempts
    c. Inode/File heal happens after an expiry period, which is configurable.
    d. Hardlink heal happens after an expiry period, which is configurable.

&gt; Change-Id: Id8eb5092e78beaec22d05f5283645081619e2452
&gt; BUG: 1235269
&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/11334
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt; Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;

Change-Id: Ia28a5cf975e41d318906f707deca447aaa35630f
BUG: 1236288
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-on: http://review.gluster.org/11446
Reviewed-by: Joseph Fernandes
Tested-by: Joseph Fernandes
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>gfdb/libglusterfs : Port log messages to a new framework</title>
<updated>2015-06-26T12:58:08+00:00</updated>
<author>
<name>Mohamed Ashiq</name>
<email>ashiq333@gmail.com</email>
</author>
<published>2015-05-19T09:25:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=6fc7eaf027aa5a9ac332a947d96430a2c0d656db'/>
<id>6fc7eaf027aa5a9ac332a947d96430a2c0d656db</id>
<content type='text'>
        Backport of http://review.gluster.org/#/c/10819/

Cherry picked from 2847b03a38515a625e36d52c7e0a1d37107d72ba
&gt;Change-Id: I61874561fdf2c175d2b3eec0c85c25f12dc60552
&gt;BUG: 1194640
&gt;Signed-off-by: Mohamed Ashiq &lt;ashiq333@gmail.com&gt;
&gt;Reviewed-on: http://review.gluster.org/10819
&gt;Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt;Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;Reviewed-by: Joseph Fernandes

Change-Id: I61874561fdf2c175d2b3eec0c85c25f12dc60552
BUG: 1217722
Signed-off-by: Mohamed Ashiq &lt;ashiq333@gmail.com&gt;
Reviewed-on: http://review.gluster.org/11284
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
        Backport of http://review.gluster.org/#/c/10819/

Cherry picked from 2847b03a38515a625e36d52c7e0a1d37107d72ba
&gt;Change-Id: I61874561fdf2c175d2b3eec0c85c25f12dc60552
&gt;BUG: 1194640
&gt;Signed-off-by: Mohamed Ashiq &lt;ashiq333@gmail.com&gt;
&gt;Reviewed-on: http://review.gluster.org/10819
&gt;Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
&gt;Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;Reviewed-by: Joseph Fernandes

Change-Id: I61874561fdf2c175d2b3eec0c85c25f12dc60552
BUG: 1217722
Signed-off-by: Mohamed Ashiq &lt;ashiq333@gmail.com&gt;
Reviewed-on: http://review.gluster.org/11284
Tested-by: NetBSD Build System &lt;jenkins@build.gluster.org&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Tested-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tier/tier.t: Fixing tier.t crash in regression runs</title>
<updated>2015-05-30T15:07:35+00:00</updated>
<author>
<name>Joseph Fernandes</name>
<email>josferna@redhat.com</email>
</author>
<published>2015-05-21T05:47:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=3b4980919bf23b952fa5155bc8f9d59613cbafb7'/>
<id>3b4980919bf23b952fa5155bc8f9d59613cbafb7</id>
<content type='text'>
1) If the database file exists
   a. Dont try re-creating the db schema
   b. Dont try re-configuring the db.

2) Dont assert in fini_db () when connection is NULL

&gt;&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;&gt; Reviewed-on: http://review.gluster.org/10870
&gt;&gt; Tested-by: NetBSD Build System
&gt;&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
&gt;&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;&gt;Change-Id: Idd2833f55caaa6b3a77d935d877d6c4d2994da6a

Change-Id: Ia2e044fce4e41bccc8fdada1cb21f240fdbd55df
BUG: 1225077
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10992
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1) If the database file exists
   a. Dont try re-creating the db schema
   b. Dont try re-configuring the db.

2) Dont assert in fini_db () when connection is NULL

&gt;&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;&gt; Reviewed-on: http://review.gluster.org/10870
&gt;&gt; Tested-by: NetBSD Build System
&gt;&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
&gt;&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;&gt;Change-Id: Idd2833f55caaa6b3a77d935d877d6c4d2994da6a

Change-Id: Ia2e044fce4e41bccc8fdada1cb21f240fdbd55df
BUG: 1225077
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10992
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>CTR/Libgfdb: Log typo fix</title>
<updated>2015-05-10T09:30:18+00:00</updated>
<author>
<name>Joseph Fernandes</name>
<email>josferna@redhat.com</email>
</author>
<published>2015-05-08T11:06:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=25bb1061642bcaedfdfcab859a07244c2276571f'/>
<id>25bb1061642bcaedfdfcab859a07244c2276571f</id>
<content type='text'>
Log typo fix for CTR Xlator and Libgfdb

Change-Id: Ia39069a5ce9c48bbee937f1b5c5d749a30c9ac56
BUG: 1220100
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10742
Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Log typo fix for CTR Xlator and Libgfdb

Change-Id: Ia39069a5ce9c48bbee937f1b5c5d749a30c9ac56
BUG: 1220100
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10742
Reviewed-by: N Balachandran &lt;nbalacha@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ctr/xlator: Named lookup heal of pre-existing files, before ctr was ON.</title>
<updated>2015-05-08T07:34:30+00:00</updated>
<author>
<name>Joseph Fernandes</name>
<email>josferna@redhat.com</email>
</author>
<published>2015-04-24T13:52:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=268b7fcb307e14cce5bcd28495f24333710ba82c'/>
<id>268b7fcb307e14cce5bcd28495f24333710ba82c</id>
<content type='text'>
Problem: The CTR xlator records file meta (heat/hardlinks)
into the data. This works fine for files which are created
after ctr xlator is switched ON. But for files which were
created before CTR xlator is ON, CTR xlator is not able to
record either of the meta i.e heat or hardlinks. Thus making
those files immune to promotions/demotions.

Solution: The solution that is implemented in this patch is
do ctr-db heal of all those pre-existent files, using named lookup.
For this purpose we use the inode-xlator context variable option
in gluster.
The inode-xlator context variable for ctr xlator will have the
following,
    a. A Lock for the context variable
    b. A hardlink list: This list represents the successful looked
       up hardlinks.
These are the scenarios when the hardlink list is updated:
1) Named-Lookup: Whenever a named lookup happens on a file, in the
   wind path we copy all required hardlink and inode information to
   ctr_db_record structure, which resides in the frame-&gt;local variable.
   We dont update the database in wind. During the unwind, we read the
   information from the ctr_db_record and ,
   Check if the inode context variable is created, if not we create it.
   Check if the hard link is there in the hardlink list.
      If its not there we add it to the list and send a update to the
      database using libgfdb.
      Please note: The database transaction can fail(and we ignore) as there
      already might be a record in the db. This update to the db is to heal
      if its not there.
      If its there in the list we ignore it.
2) Inode Forget: Whenever an inode forget hits we clear the hardlink list in
   the inode context variable and delete the inode context variable.
   Please note: An inode forget may happen for two reason,
   a. when the inode is delete.
   b. the in-memory inode is evicted from the inode table due to cache limits.
3) create: whenever a create happens we create the inode context variable and
   add the hardlink. The database updation is done as usual by ctr.
4) link: whenever a hardlink is created for the inode, we create the inode context
   variable, if not present, and add the hardlink to the list.
5) unlink: whenever a unlink happens we delete the hardlink from the list.
6) mknod: same as create.
7) rename: whenever a rename happens we update the hardlink in list. if the hardlink
   was not present for updation, we add the hardlink to the list.

What is pending:
1) This solution will only work for named lookups.
2) We dont track afr-self-heal/dht-rebalancer traffic for healing.

&gt; http://review.gluster.org/#/c/10370/
&gt; Cherry picked from commit cb11dd91a6cc296e4a3808364077f4eacb810e48
&gt; Change-Id: Ia4bbaf84128ad6ce8c3ddd70bcfa82894c79585f
&gt; BUG: 1212037
&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt; Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10370
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Tested-by: NetBSD Build System
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I367aa46c3f4b8f912248fb8be75866507f2538df
BUG: 1219075
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10370
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10615
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: The CTR xlator records file meta (heat/hardlinks)
into the data. This works fine for files which are created
after ctr xlator is switched ON. But for files which were
created before CTR xlator is ON, CTR xlator is not able to
record either of the meta i.e heat or hardlinks. Thus making
those files immune to promotions/demotions.

Solution: The solution that is implemented in this patch is
do ctr-db heal of all those pre-existent files, using named lookup.
For this purpose we use the inode-xlator context variable option
in gluster.
The inode-xlator context variable for ctr xlator will have the
following,
    a. A Lock for the context variable
    b. A hardlink list: This list represents the successful looked
       up hardlinks.
These are the scenarios when the hardlink list is updated:
1) Named-Lookup: Whenever a named lookup happens on a file, in the
   wind path we copy all required hardlink and inode information to
   ctr_db_record structure, which resides in the frame-&gt;local variable.
   We dont update the database in wind. During the unwind, we read the
   information from the ctr_db_record and ,
   Check if the inode context variable is created, if not we create it.
   Check if the hard link is there in the hardlink list.
      If its not there we add it to the list and send a update to the
      database using libgfdb.
      Please note: The database transaction can fail(and we ignore) as there
      already might be a record in the db. This update to the db is to heal
      if its not there.
      If its there in the list we ignore it.
2) Inode Forget: Whenever an inode forget hits we clear the hardlink list in
   the inode context variable and delete the inode context variable.
   Please note: An inode forget may happen for two reason,
   a. when the inode is delete.
   b. the in-memory inode is evicted from the inode table due to cache limits.
3) create: whenever a create happens we create the inode context variable and
   add the hardlink. The database updation is done as usual by ctr.
4) link: whenever a hardlink is created for the inode, we create the inode context
   variable, if not present, and add the hardlink to the list.
5) unlink: whenever a unlink happens we delete the hardlink from the list.
6) mknod: same as create.
7) rename: whenever a rename happens we update the hardlink in list. if the hardlink
   was not present for updation, we add the hardlink to the list.

What is pending:
1) This solution will only work for named lookups.
2) We dont track afr-self-heal/dht-rebalancer traffic for healing.

&gt; http://review.gluster.org/#/c/10370/
&gt; Cherry picked from commit cb11dd91a6cc296e4a3808364077f4eacb810e48
&gt; Change-Id: Ia4bbaf84128ad6ce8c3ddd70bcfa82894c79585f
&gt; BUG: 1212037
&gt; Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt; Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt; Reviewed-on: http://review.gluster.org/10370
&gt; Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
&gt; Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt; Tested-by: NetBSD Build System
&gt; Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;

Change-Id: I367aa46c3f4b8f912248fb8be75866507f2538df
BUG: 1219075
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Signed-off-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10370
Reviewed-by: Jeff Darcy &lt;jdarcy@redhat.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10615
Tested-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ctr/libgfdb: Performance enhancer for unlink/create/rename/link fops</title>
<updated>2015-05-07T13:49:34+00:00</updated>
<author>
<name>Joseph Fernandes</name>
<email>josferna@redhat.com</email>
</author>
<published>2015-04-09T09:37:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=42a508fb008c4d2d90faf30616423cfbcba84a30'/>
<id>42a508fb008c4d2d90faf30616423cfbcba84a30</id>
<content type='text'>
1) ctr_link_consistency option for ctr xaltor is provided so that
   the user can choose to switch it on or off.
   /* For link consistency we do a double update i.e mark the link
   * during the wind and during the unwind we update/delete the link.
   * This has a performance hit. We give a choice here whether we need
   * link consistency to be spoton or not using link_consistency flag.
   * This will have only one link update */

2) In delete the wind time recording is moved to unwind path.
   /* Special performance case:
   * Updating wind time in unwind for delete. This is done here
   * as in the wind path we will not know whether its the last
   * link or not. For a last link there is not use to update any
   * wind or unwind time!*/

&gt;   http://review.gluster.org/#/c/10170/
&gt;   Cherry picked from commit 606d9734543208542afcf9df982bf2d560235ef6
&gt;   Change-Id: I209472fb816f939db4a868b97ba053b028f17ea6
&gt;   BUG: 1217786
&gt;   Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;   Reviewed-on: http://review.gluster.org/10170
&gt;   Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt;   Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;   Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;

Change-Id: I4a89ef80875f36cff91520f712e1f47fde258a63
BUG: 1219066
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10170
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10614
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
1) ctr_link_consistency option for ctr xaltor is provided so that
   the user can choose to switch it on or off.
   /* For link consistency we do a double update i.e mark the link
   * during the wind and during the unwind we update/delete the link.
   * This has a performance hit. We give a choice here whether we need
   * link consistency to be spoton or not using link_consistency flag.
   * This will have only one link update */

2) In delete the wind time recording is moved to unwind path.
   /* Special performance case:
   * Updating wind time in unwind for delete. This is done here
   * as in the wind path we will not know whether its the last
   * link or not. For a last link there is not use to update any
   * wind or unwind time!*/

&gt;   http://review.gluster.org/#/c/10170/
&gt;   Cherry picked from commit 606d9734543208542afcf9df982bf2d560235ef6
&gt;   Change-Id: I209472fb816f939db4a868b97ba053b028f17ea6
&gt;   BUG: 1217786
&gt;   Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
&gt;   Reviewed-on: http://review.gluster.org/10170
&gt;   Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
&gt;   Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
&gt;   Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;

Change-Id: I4a89ef80875f36cff91520f712e1f47fde258a63
BUG: 1219066
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10170
Reviewed-by: Dan Lambright &lt;dlambrig@redhat.com&gt;
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Signed-off-by: Joseph Fernandes &lt;josferna@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10614
Tested-by: NetBSD Build System
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>build: make contrib/uuid dependency optional</title>
<updated>2015-04-10T11:39:52+00:00</updated>
<author>
<name>Niels de Vos</name>
<email>ndevos@redhat.com</email>
</author>
<published>2015-04-03T16:14:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.gluster.org/cgit/glusterfs.git/commit/?id=6eb27480b6559103e4437facd7aecbcd373479c9'/>
<id>6eb27480b6559103e4437facd7aecbcd373479c9</id>
<content type='text'>
On Linux systems we should use the libuuid from the distribution and not
bundle and statically link the contrib/uuid/ bits.

libglusterfs/src/compat-uuid.h has been introduced and should become an
abstraction layer for different UUID APIs. Non-Linux operating systems
should implement their compatibility layer there.

Once all operating systems have an implementation in compat-uuid.h, we
can remove contrib/uuid/ from the repository completely.

Change-Id: I345e5357644be2521685e00358bb8c83c4ea0577
BUG: 1206587
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10129
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Linux systems we should use the libuuid from the distribution and not
bundle and statically link the contrib/uuid/ bits.

libglusterfs/src/compat-uuid.h has been introduced and should become an
abstraction layer for different UUID APIs. Non-Linux operating systems
should implement their compatibility layer there.

Once all operating systems have an implementation in compat-uuid.h, we
can remove contrib/uuid/ from the repository completely.

Change-Id: I345e5357644be2521685e00358bb8c83c4ea0577
BUG: 1206587
Signed-off-by: Niels de Vos &lt;ndevos@redhat.com&gt;
Reviewed-on: http://review.gluster.org/10129
Tested-by: Gluster Build System &lt;jenkins@build.gluster.com&gt;
Reviewed-by: Vijay Bellur &lt;vbellur@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
