Description of problem: ======================= BitRot detection in glusterfs As an Admin I want GlusterFS to detect bit rot so that I can proactively handle silent data corruption issues in my storage setup Note:- This is an umbrella bug for upcoming BitRot feature in 3.7
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#1) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#2) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#3) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#4) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#5) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#6) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9708 (features/changelog: RPC'fy {libgf}changelog) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9707 (contrib/timer-wheel: import linux kernel timer-wheel) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9706 (libglusterfs/rot-buffs: rotational buffers) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9814 (geo-rep / gsyncd: use RTLD_GLOBAL while loading libgfchangelog) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9866 (cli/glusterd: cli command implementation for bitrot features) posted (#7) for review on master by Gaurav Kumar Garg (ggarg)
COMMIT: http://review.gluster.org/9708 committed in master by Vijay Bellur (vbellur) ------ commit 4737584fffcd25dbe35d17b076c95bf90a422cf2 Author: Venky Shankar <vshankar> Date: Tue Feb 3 19:22:16 2015 +0530 features/changelog: RPC'fy {libgf}changelog This patch introduces RPC based communication between the changelog translator and libgfchangelog. It replaces the old pathetic stream based interaction that existed earlier (due to time constraints :-/). Changelog, upon initialization starts a RPC server (rpcsvc) allowing clients to invoke a probe API as a bootup mechanism to request for event notifications. During probe, clients can choose an event filter specifying the type(s) of events they are interested in. As of now there is no way to change the event notification set once the probe RPC call is made, but that is easier to implement. The actual event notifications is done on a separate RPC session. The client (libgfchangelog) itself starts and RPC server which the changelog translator "connects back" during probe. Notifications are dispatched by a bunch of threads from the server (translator) and the client optionally orders them if ordered notifications are requried. FOPs fill in their respective event details in a buffer (rot-buffs to be particular) and a bunch of threads (consumers) swap the buffers out of roatation and dispatch them via RPC. To avoid writer starvation, then number of dispatcher threads is one less than the number of buffer list in rot-buffs.x libgfchangelog becomes purely callback based -- upon event notification from the server (and re-ordering them if required) invoke a callback routine specified by consumer(s). A major part of the patch is also aimed at providing backward compatibility for geo-replication, which was one of the main consumer of the stream based API. Also, this patch does not\ "turn on" event notifications for all fops, just a bunch which is currently in requirement. Another pain point is that the server does not filter events before dispatching it to the clients. That load is taken up by the client itself (although it's done at the library layer rather than making it hard on the callback implementor). This needs improvement and care needs to be taken to not load the server up with expensive filtering mechanisms. Change-Id: Ibf60a432b68f2dfa60c6f9add2bcfd37a9c41395 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9708 Reviewed-by: Jeff Darcy <jdarcy> Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9814 committed in master by Vijay Bellur (vbellur) ------ commit fa50fcb6dddf4d7d0094c26cee802fd942f62727 Author: Venky Shankar <vshankar> Date: Wed Mar 4 18:05:30 2015 +0530 geo-rep / gsyncd: use RTLD_GLOBAL while loading libgfchangelog With the RPC based changes to {libgf}changelog, loading shared objects dynamically would need symbols to be available from other shared libraries. As an example, creating an RPC listner loads the RPC transport shared object which requires symbols to be available from already loaded shared objects. Using RTLD_GLOBAL makes the symbols available for symbol resolution of subsequently loaded libraries. Change-Id: I3d3ef790eded82911f05836c707509157680645c BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9814 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9866 committed in master by Vijay Bellur (vbellur) ------ commit d236b01a8bf68b83c76ea1cfa8351833e19695f7 Author: Gaurav Kumar Garg <ggarg> Date: Tue Mar 10 15:04:59 2015 +0530 cli/glusterd: cli command implementation for bitrot features CLI command for bitrot features. volume bitrot <volname> enable|disable Above command will enable/disable bitrot feature for particular volume. BUG: 1170075 Change-Id: Ie84002ef7f479a285688fdae99c7afa3e91b8b99 Signed-off-by: Gaurav Kumar Garg <ggarg> Signed-off-by: Anand nekkunti <anekkunt> Signed-off-by: Dominic P Geevarghese <dgeevarg> Reviewed-on: http://review.gluster.org/9866 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/9706 (libglusterfs/rot-buffs: rotational buffers) posted (#8) for review on master by Vijay Bellur (vbellur)
COMMIT: http://review.gluster.org/9706 committed in master by Vijay Bellur (vbellur) ------ commit 87a9d23627586a5d5cd8a502a08ecbdb6f0f7bb2 Author: Venky Shankar <vshankar> Date: Tue Feb 3 19:03:30 2015 +0530 libglusterfs/rot-buffs: rotational buffers This patch introduces rotational buffers aiming at the classic multiple producer and multiple consumer problem. A fixed set of buffer list is allocated during initialization, where each list consist of a list of buffers. Each buffer is an iovec pointing to a memory region of fixed allocation size. Multiple producers write data to these buffers. A buffer list starts with a single buffer (iovec) and allocates more when required (although this can be preallocatd in multiples of k). rot-buffs allow multiple producers to write data parallely with a bit of extra cost of taking locks. Therefore, it's much suited for large writes. Multiple producers are allowed to write in the buffer parallely by "reserving" write space for selected number of bytes and returning pointer to the start of the reserved area. The write size is selected by the producer before it starts the write (which is often known). Therefore, the write itself need not be serialized -- just the space reservation needs to be done safely. The other part is when a consumer kicks in to consume what has been produced. At this point, a buffer list switch is performed. The "current" buffer list pointer is safely pointed to the next available buffer list. New writes are now directed to the just switched buffer list (the old buffer list is now considered out of rotation). Note that the old buffer still may have producers in progress (pending writes), so the consumer has to wait till the writers are drained. Currently this is the slow path for producers (write completion) and needs to be improved. Currently, there is special handling for cases where the number of consumers match (or exceed) the number of producers, which could result in writer starvation. In this scenario, when a consumers requests a buffer list for consumption, a check is performed for writer starvation and consumption is denied until at least another buffer list is ready of the producer for writes, i.e., one (or more) consumer(s) completed, thereby putting the buffer list back in rotation. [ NOTE: I've not performance tested this producer-consumer model yet. It's being used in changelog for event notification. The list of buffers (iovecs) are directly passed to RPC layer. ] Change-Id: I88d235522b05ab82509aba861374a2312bff57f2 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9706 Tested-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/9707 (contrib/timer-wheel: import linux kernel timer-wheel) posted (#8) for review on master by Vijay Bellur (vbellur)
COMMIT: http://review.gluster.org/9707 committed in master by Vijay Bellur (vbellur) ------ commit 5394f3cf60b0815d2919d24e9945ba47e3bb1f9b Author: Venky Shankar <vshankar> Date: Tue Feb 3 19:05:28 2015 +0530 contrib/timer-wheel: import linux kernel timer-wheel This patch imports timer-wheel[1] algorithm from the linux kernel (~/kernel/time/timer.c) with some modifications. Timer-wheel is an efficent way to track millions of timers for expiry. This is a variant of the simple but RAM heavy approach of having a list (timer bucket) for every future second. Timer-wheel categorizes every future second into a logarithmic array of arrays. This is done by splitting the 32 bit "timeout" value into fixed "sliced" bits, thereby each category has a fixed size array to which buckets are assigned. A classic split would be 8+6+6+6 (used in this patch) which results in 256+64+64+64 == 512 buckets. Therefore, the entire 32 bit futuristic timeouts have been mapped into 512 buckets. [ NOTE: There are other possible splits, such as "8+8+8+8", but this patch sticks to the widely used and tested default. ] Therfore, the first category "holds" timers whose expiry range is between 1..256, the next cateogry holds 257..16384, third category 16385..1048576 and so on. When timers are added, unless it's in the first category, timers with different timeouts could end up in the same bucket. This means that the timers are "partially sorted" -- sorted in their highest bits. The expiry code walks the first array of buckets and exprires any pending timers (1..256). Next, at time value 257, timers in the first bucket of the second array is "cascaded" onto the first category and timers are placed into respective buckets according to the thier timeout values. Cascading "brings down" the timers timeout to the coorect bucket of their respective category. Therefore, timers are sorted by their highest bits of the timeout value and then by the lower bits too. [1] https://lwn.net/Articles/152436/ Change-Id: I1219abf69290961ae9a3d483e11c107c5f49c4e3 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9707 Reviewed-by: Vijay Bellur <vbellur> Tested-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#2) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#9) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#9) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#9) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#3) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#9) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#9) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#10) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#10) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#10) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#10) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#10) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#5) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#11) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#11) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#9) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#12) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#12) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#12) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#9) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#9) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#9) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#1) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend for bitrot cli) posted (#1) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#6) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#12) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#2) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#12) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#10) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend for bitrot cli) posted (#2) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#10) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#10) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#10) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#13) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#13) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#3) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#14) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend infra for bitrot cli) posted (#3) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#14) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#14) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#11) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#8) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#14) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#14) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#12) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#15) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend infra for bitrot cli) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#15) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#15) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#12) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#12) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#12) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#9) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#15) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#15) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#5) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend infra for bitrot cli) posted (#5) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#13) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#10) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#6) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#14) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#17) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend infra for bitrot cli) posted (#6) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#17) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#17) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#14) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#14) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#14) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#11) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#17) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#17) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#7) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#15) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#18) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend infra for bitrot cli) posted (#7) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#18) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#18) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#15) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#15) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#15) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9953 (libgfchangelog: Fix faulty reference to xlator context) posted (#12) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9775 (features/changelog: Make use of IPC fop) posted (#18) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#18) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9959 (libgfchangelog: cleanups on disconnection) posted (#8) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9916 (Update MAINTAINERS file) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#19) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9960 (mgmt/glusterd: glusterd backend infra for bitrot cli) posted (#8) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9710 (mgmt/glusterd: generate volfile for BitD) posted (#19) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9709 (Bitrot Stub) posted (#19) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9913 (core: Add inode context merge callback) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9915 (mgmt/glusterd: Generate scrub volfile) posted (#16) for review on master by Raghavendra Bhat (raghavendra)
COMMIT: http://review.gluster.org/9953 committed in master by Vijay Bellur (vbellur) ------ commit 9c9f3f368c693b1cf5f67f3d8d4e599d4ba61383 Author: Venky Shankar <vshankar> Date: Thu Mar 19 10:09:04 2015 +0530 libgfchangelog: Fix faulty reference to xlator context Problem: libgfchangelog initializes global xlator on library load (via constructor: _ctor) and mangles it's xlator context thereby messing with certain important members of the command structure. On receiving an RPC disconnection event, if the point-of-execution was in libgfchangelogs context, accessing ->cmd_args during RPC notify resulted in a segfault. Fix: Since the libarary needs to be able to work with processes that have a notion of an xlator (THIS in particular) and without it, care needs to be taken to allocate the global xlator when needed. Moreover, the actual fix is to use the correct xlator context in both cases. A new API is introduces when needs to be invoked by the conusmer (although this could have been done during register() call, keeping it a separate API makes thing flexible and easy). Test: The issue is observed when a brick process goes offline. This is triggered when test cases (.t's) are run in bulk, since each test essestially spawns bricks processes (on volume start) and terminates them (volume stop). Since bitrot daemon, as of now, spawns upon volume start, the issue is much observed when the volume is taken offline at the end of each test case. With this fix, running the basic and core test cases along with building the linux kernel has passed without daemon segfaults. Thanks to Johnny (rabhat@) for helping in debugging the issue (and with the fix :)). Change-Id: I8d3022bf749590b2ee816504ed9b1dfccc65559a BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9953 Reviewed-by: Vijay Bellur <vbellur> Tested-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9959 committed in master by Vijay Bellur (vbellur) ------ commit 470d5c4af7f85809997a77af187c8f430b0354c8 Author: Venky Shankar <vshankar> Date: Sat Mar 21 19:59:45 2015 +0530 libgfchangelog: cleanups on disconnection [WIP patch as of now, just needs a little tweak] A pending TODO in the code caused regressions to fail as bitrot daemons are spawned during volume start (equivalent to enabling bitrot by default). The problematic part that casued such failures is during brick disconnections with unsafe handling of event data structured in the code. With this patch, data structures are properly cleaned up with care taken to cleanup all accessors first. This also fixes potential memory leaks which was bluntly ignored before. Change-Id: I70ed82cb1a0fb56c85ef390007e321a97a35c5ce BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> original-author: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9959 Reviewed-by: Vijay Bellur <vbellur> Tested-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9775 committed in master by Vijay Bellur (vbellur) ------ commit 9f5addd987861d0a3a1144d576221a7f93af0970 Author: Venky Shankar <vshankar> Date: Wed Feb 25 22:21:32 2015 +0530 features/changelog: Make use of IPC fop Translators which wish to send event notifications can send "down" an IPC FOP with op_type as GF_IPC_TARGET_CHANGELOG and xdata carrying event structures (changelog_event_t). Change-Id: I0e5f8c9170161c186f0e58d07105813e34e18786 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9775 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9913 committed in master by Vijay Bellur (vbellur) ------ commit 3c474a042aed68659fe0cfdf32e01285bde9f689 Author: Venky Shankar <vshankar> Date: Sun Mar 15 03:43:49 2015 +0530 core: Add inode context merge callback Certain translators may require to update the inode context of an already linked inode before unwinding the call to the client. Normally, such a case in encountered during parallel operations when a fresh inode is chosen at call (wind) time. In the callback path, one of inodes is successfully linked in the inode table, thereby the other inodes being thrown away (and the inode pointers for these calls being pointed to the linked inode). Translators which may have strict dependency on the correct value in the inode context would get stale values in inode context. This patch introduces a new callback which provides gives translators an opportunity to "patch" their respective inode contexts. Note that, as of now, this callback is only invoked during create()s unwind path. Although this might needed to be done for all dentry fops and lookup, but let that be done as an when required (bitrot stub requires this *only* for create()). Change-Id: I6cd91c2af473c44d1511208060d3978e580c67a6 BUG: 1170075 Original-Author: Raghavendra Bhat <rabhat> Original-Author: Venky Shankar <vshankar> Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9913 Reviewed-by: Vijay Bellur <vbellur> Tested-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9709 committed in master by Vijay Bellur (vbellur) ------ commit a20101e2e4d5f5595655544cfc798eb1d445638c Author: Venky Shankar <vshankar> Date: Mon Feb 9 18:28:21 2015 +0530 Bitrot Stub Bitrot stub implements object versioning required for identifying signature freshness. More details about versioning is explained as a part of the "bitrot feature documentation" patch. Change-Id: I2ad70d9eb109ba4a12148ab8d81336afda529ad9 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9709 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9916 committed in master by Kaleb KEITHLEY (kkeithle) ------ commit 33a32b8efac9dbc159c0ed74b9a2a4c6ab686b98 Author: Venky Shankar <vshankar> Date: Sun Mar 15 04:26:15 2015 +0530 Update MAINTAINERS file - Added maintainers for BitRot detection Change-Id: Ib5dae02176372e33c7b616f161d909815edbb53f BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9916 Tested-by: Vijay Bellur <vbellur> Reviewed-by: Kaleb KEITHLEY <kkeithle>
REVIEW: http://review.gluster.org/9985 (glusterd: bitrot scrub-throttle/scrub-frequency/scrub option handling) posted (#1) for review on master by Gaurav Kumar Garg (ggarg)
COMMIT: http://review.gluster.org/9710 committed in master by Vijay Bellur (vbellur) ------ commit 84db9f8271f150fbb6024186f7f681e941731280 Author: Venky Shankar <vshankar> Date: Wed Jan 7 11:14:31 2015 +0530 mgmt/glusterd: generate volfile for BitD * Implement the skeleton of bit-rot xlator. Original-Author: Raghavendra Bhat <raghavendra> Signed-off-by: Venky Shankar <vshankar> Signed-off-by: Gaurav Kumar Garg <ggarg> Signed-off-by: Anand Nekkunti <anekkunt> Change-Id: If33218bdc694f5f09cb7b8097c4fdb74d7a23b2d BUG: 1170075 Reviewed-on: http://review.gluster.org/9710 Reviewed-by: Vijay Bellur <vbellur> Tested-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/9712 (doc: document bit-rot feature) posted (#19) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9711 (features/bit-rot: Implementation of bit-rot xlator) posted (#20) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9914 (features/bit-rot: filesystem scrubber) posted (#17) for review on master by Raghavendra Bhat (raghavendra)
REVIEW: http://review.gluster.org/9986 (cli/glusterd: CLI interface for BitRot detection) posted (#1) for review on master by Raghavendra Bhat (raghavendra)
COMMIT: http://review.gluster.org/9986 committed in master by Vijay Bellur (vbellur) ------ commit 31f841d6b35c242942b6bdcbfdc83cf548d5235a Author: Venky Shankar <vshankar> Date: Fri Mar 13 22:00:22 2015 +0530 cli/glusterd: CLI interface for BitRot detection * BitRot enable/disable CLI per volume * Volfile generation for Scrubber * Relevant glusterd infrastructure Change-Id: I1212af63f93ecc52b22ee6da920e1664f66a1e39 BUG: 1170075 Original-Author: Raghavendra Bhat <raghavendra> Original-Author: Venky Shankar <vshankar> Original-Author: Gaurav Kumar Garg <ggarg> Original-Author: Anand Nekkunti <anekkunt> Reviewed-on: http://review.gluster.org/9986 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9711 committed in master by Vijay Bellur (vbellur) ------ commit 7927e8747c731dbb105e93ae66c336338f48f0e6 Author: Venky Shankar <vshankar> Date: Sun Feb 15 15:05:19 2015 +0530 features/bit-rot: Implementation of bit-rot xlator This is the "Signer" -- responsible for signing files with their checksums upon last file descriptor close (last release()). The event notification facility provided by the changelog xlator is made use of. Moreover, checksums are as of now SHA256 hash of the object data and is the only available hash at this point of time. Therefore, there is no special "what hash to use" type check, although it's does not take much to add various hashing algorithms to sign objects with. Signatures are stored in extended attributes of the objects along with the the type of hashing used to calculate the signature. This makes thing future proof when other hash types are added. The signature infrastructure is provided by bitrot stub: a little piece of code that sits over the POSIX xlator providing interfaces to "get or set" objects signature and it's staleness. Since objects are signed upon receiving release() notification, pre-existing data which are "never" modified would never be signed. To counter this, an initial crawler thread is spawned The crawler scans the entire brick for objects that are unsigned or "missed" signing due to the server going offline (node reboots, crashes, etc..) and triggers an explicit sign. This would also sign objects when bit-rot is enabled for a volume and/or after upgrade. Change-Id: I1d9a98bee6cad1c39c35c53c8fb0fc4bad2bf67b BUG: 1170075 Original-Author: Raghavendra Bhat <raghavendra> Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9711 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9914 committed in master by Vijay Bellur (vbellur) ------ commit 866c64ba5e29a90b37fa051061a58300ae129a2c Author: Venky Shankar <vshankar> Date: Fri Mar 13 21:23:20 2015 +0530 features/bit-rot: filesystem scrubber Scrubber performs signature verification for objects that were signed by signer. This is done by recalculating the signature (using the hash algorithm the object was signed with) and verifying it aginst the objects persisted signature. Since the object could be undergoing IO opretaion at the time of hash calculation, the signature may not match objects persisted signature. Bitrot stub provides additional information about the stalesness of an objects signature (determinted by it's versioning mechanism). This additional bit of information is used by scrubber to determine the staleness of the signature, and in such cases the object is skipped verification (although signature staleness is performed twice: once before initiation of hash calculation and another after it (an object could be modified after staleness checks). The implmentation is a part of the bitrot xlator (signer) which acts as a signer or scrubber based on a translator option. As of now the scrub process is ever running (but has some form of weak throttling mechanism during filesystem scan). Going forward, there needs to be some form of scrub scheduling and IO throttling (during hash calculation) tunables (via CLI). Change-Id: I665ce90208f6074b98c5a1dd841ce776627cc6f9 BUG: 1170075 Original-Author: Raghavendra Bhat <rabhat> Original-Author: Venky Shankar <vshankar> Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9914 Tested-by: Vijay Bellur <vbellur> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9712 committed in master by Vijay Bellur (vbellur) ------ commit cd3d34289c92f01843a866f4432bdd2da1ee59db Author: Venky Shankar <vshankar> Date: Wed Feb 18 17:01:21 2015 +0530 doc: document bit-rot feature Change-Id: Ibad640d01975906b7642c76a1649e3e272f3a8bc BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/9712 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
COMMIT: http://review.gluster.org/9985 committed in master by Vijay Bellur (vbellur) ------ commit 1579d633dbeeeede20d016bbec806a00688e32f3 Author: Gaurav Kumar Garg <ggarg> Date: Tue Mar 24 18:20:42 2015 +0530 glusterd: bitrot scrub-throttle/scrub-frequency/scrub option handling CLI commands for bitrot features: volume bitrot <volname> {scrub-throttle frozen|lazy|normal|aggressive} volume bitrot <volname> {scrub-frequency daily|weekly|biweekly|monthly} volume bitrot <volname> {scrub pause|resume} These commands will handle their options and set respective value in dictionary. Change-Id: I1e8aa1b1c7d91a7f0faec9a2968b3072f42f8ba8 BUG: 1170075 Signed-off-by: Gaurav Kumar Garg <ggarg> Reviewed-on: http://review.gluster.org/9985 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Atin Mukherjee <amukherj> Reviewed-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/9993 (geo-rep: Use gfchangelog context init API) posted (#1) for review on master by Aravinda VK (avishwan)
COMMIT: http://review.gluster.org/9993 committed in master by Venky Shankar (vshankar) ------ commit d331c3196392dd6cf857b79388780bf03b802392 Author: Venky Shankar <vshankar> Date: Fri Mar 20 03:13:27 2015 +0530 geo-rep: Use gfchangelog context init API With the RPC based changes to {libgf}changelog, changelog_init is required before changelog_register. Change-Id: Id125b2bd2e51aaaffa22ecab463dfb739c50d83c Signed-off-by: Venky Shankar <vshankar> BUG: 1170075 Reviewed-on: http://review.gluster.org/9993 Reviewed-by: Saravanakumar Arumugam <sarumuga> Tested-by: Saravanakumar Arumugam <sarumuga> Tested-by: Gluster Build System <jenkins.com>
REVIEW: http://review.gluster.org/10148 (features/bit-rot: Mark versioning fsetxattr as internal fop) posted (#1) for review on master by Kotresh HR (khiremat)
REVIEW: http://review.gluster.org/10160 (features/bitrot-stub: header file update in noinst_HEADERS) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10160 (features/bitrot-stub: header file update in noinst_HEADERS) posted (#2) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10161 (features/bitrot-stub: Packed format for version xattr) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10148 (features/bit-rot: Mark versioning fsetxattr as internal fop) posted (#2) for review on master by Venky Shankar (vshankar)
COMMIT: http://review.gluster.org/10160 committed in master by Vijay Bellur (vbellur) ------ commit 5502ead3804695e6e1edc48fd17e2b3fe7241131 Author: Venky Shankar <vshankar> Date: Wed Apr 8 14:46:33 2015 +0530 features/bitrot-stub: header file update in noinst_HEADERS Missing "bit-rot-object-version.h" causing devrpm failures. Change-Id: I5af326c5871cc468a10dece4772b29eda06c4fa9 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/10160 Reviewed-by: Raghavendra Bhat <raghavendra> Tested-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/10161 (features/bitrot-stub: Packed format for version xattr) posted (#2) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10148 (features/bit-rot: Mark versioning fsetxattr as internal fop) posted (#3) for review on master by Kotresh HR (khiremat)
COMMIT: http://review.gluster.org/10161 committed in master by Vijay Bellur (vbellur) ------ commit 221f260c9d5793d9a1b4ab60dd160bdd41ff3b59 Author: Venky Shankar <vshankar> Date: Wed Apr 8 14:43:47 2015 +0530 features/bitrot-stub: Packed format for version xattr Using __attribute__ ((__packed__)) for object signature xattr saves some bytes (7 bytes to be particular) occupied by the extended attribute on-disk as compared to the unpacked format. Change-Id: I91a6a0a54aa60e6fd8c357d72f7601b6ed213f2d BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/10161 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/10174 (tests/bitrot: Parallel open() test case) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10148 (features/bit-rot: Mark versioning fsetxattr as internal fop) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#2) for review on master by Venky Shankar (vshankar)
COMMIT: http://review.gluster.org/10148 committed in master by Venky Shankar (vshankar) ------ commit af569aaf6ee69ed77be8afc82b4c496041a7bd1b Author: Kotresh HR <khiremat> Date: Tue Apr 7 15:02:30 2015 +0530 features/bit-rot: Mark versioning fsetxattr as internal fop Changelog xlator was capturing bitrot-stub's fsetxattr sent for versioning. Since it was using the same frame as of the create fop, there was inconsistency in fop number and gfid of capturing metadata. So fix is to mark fsetxattr used for versioning as internal and add internal fop filter in changelog_fsetxattr. Change-Id: I51ff468995139838b22bf293a59a0713a92ee7a5 BUG: 1170075 Signed-off-by: Kotresh HR <khiremat> Reviewed-on: http://review.gluster.org/10148 Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Venky Shankar <vshankar> Tested-by: Venky Shankar <vshankar>
REVIEW: http://review.gluster.org/10174 (tests/bitrot: Parallel open() test case) posted (#2) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10174 (tests/bitrot: Parallel open() test case) posted (#3) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10174 (tests/bitrot: Parallel open() test case) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#3) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10352 (bitrot/scrubber: new volfile for bitrot and scrubber) posted (#1) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#2) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10375 (bitrot/scrub: fix induced throttling in syncop_ftw_throttle()) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10380 (core: Global timer-wheel) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10381 (features/bitrot: Use global timer wheel) posted (#1) for review on master by Venky Shankar (vshankar)
COMMIT: http://review.gluster.org/10375 committed in master by Vijay Bellur (vbellur) ------ commit 7be43338ff292eb9ff43892e05eb83575e66433c Author: Venky Shankar <vshankar> Date: Fri Apr 24 21:43:25 2015 +0530 bitrot/scrub: fix induced throttling in syncop_ftw_throttle() Failing to reset scanning counter causes "incorrect" delay of around 50 seconds per directory entry. This causes scrubber to run extremely slowly. [ NOTE: This is a temporary fix. With the introduction of token bucket based throttling, inducing throttle via sleep() call would be unneeded. ] Also, fix logging messages in scrubber to log brick and full path of the object which is identified/marked as corrupted. Change-Id: Id501bd15dcdbd8a09613f80f9d84050304740027 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/10375 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Raghavendra Bhat <raghavendra> Reviewed-by: Gaurav Kumar Garg <ggarg>
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#3) for review on master by Gaurav Kumar Garg (ggarg)
COMMIT: http://review.gluster.org/10380 committed in master by Vijay Bellur (vbellur) ------ commit 004f64e93d23f44144483d21422f47e81d358045 Author: Venky Shankar <vshankar> Date: Fri Apr 24 10:10:35 2015 +0530 core: Global timer-wheel Instantiate a process wide global instance of the timer wheel data structure. Spawning glusterfs* process with option arg "--global-timer-wheel" instantiates a global instance of timer-wheel under global context (->ctx). Translators can make use of this process wide instance [via a call to glusterfs_global_timer_wheel()] instead of maintaining an instance of their own and possibly consuming more memory. Linux kernel too has a single instance of timer wheel where subsystems such as IO, networking, etc.. make use of. Bitrot daemon would be early consumers of this: bitrot translator instances for multiple volumes would track objects belonging to their respective bricks in this global expiry tracking data structure. This is also a first step to move GlusterFS timer mechanism to use timer-wheel. Change-Id: Ie882df607e07acaced846ea269ebf1ece306d6ae BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/10380 Tested-by: NetBSD Build System Reviewed-by: Vijay Bellur <vbellur> Tested-by: Gluster Build System <jenkins.com>
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#5) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#4) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10174 (tests/bitrot: Parallel open() test case) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10381 (features/bitrot: Use global timer wheel) posted (#2) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#6) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10381 (features/bitrot: Use global timer wheel) posted (#3) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#7) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10174 (tests/bitrot: Parallel open() test case) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#8) for review on master by Gaurav Kumar Garg (ggarg)
COMMIT: http://review.gluster.org/10381 committed in master by Vijay Bellur (vbellur) ------ commit 0c5910a39b8daad2b131c1f7f48b0bf3b8f46030 Author: Venky Shankar <vshankar> Date: Sun Apr 26 16:25:08 2015 +0530 features/bitrot: Use global timer wheel Change-Id: I761927ea263b4144b851881f25791fda5b794f59 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/10381 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Raghavendra Bhat <raghavendra> Reviewed-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#6) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#9) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10352 (features/bitrot: Per volume bitrot translator) posted (#10) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10181 (features/bitrot: Follow xattr naming conventions) posted (#7) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10512 (bitrot/scrub: minor logging changes) posted (#1) for review on master by Venky Shankar (vshankar)
COMMIT: http://review.gluster.org/10352 committed in master by Kaushal M (kaushal) ------ commit f81deb95db417eeededf7442a30304a880cc8169 Author: Gaurav Kumar Garg <ggarg> Date: Thu Apr 23 18:44:30 2015 +0530 features/bitrot: Per volume bitrot translator Currently whatever bitrot/scrubber tunable value user set for one volume that value is considering for all other volumes also. Each volume should act on their respective bitrot/scrubber tunable value. For handling bitrot/scrubber tunable value independently with respect to all the volume bitrot and scrubber translator should run seperatly for each volume. Change-Id: I1d9379508afe6cfd2f78e3ebf29c829c362d84a9 BUG: 1170075 Signed-off-by: Gaurav Kumar Garg <ggarg> Reviewed-on: http://review.gluster.org/10352 Reviewed-by: Venky Shankar <vshankar> Tested-by: Venky Shankar <vshankar> Reviewed-by: Atin Mukherjee <amukherj> Reviewed-by: Kaushal M <kaushal>
COMMIT: http://review.gluster.org/10181 committed in master by Vijay Bellur (vbellur) ------ commit b03f9699055eed3f1c5d73e36bbe8474a1419304 Author: Venky Shankar <vshankar> Date: Thu Apr 9 16:26:31 2015 +0530 features/bitrot: Follow xattr naming conventions Instead of "trusted.glusterfs.bit-rot.*" use "trusted.bit-rot.*" NOTE: With this patch, data on existing volumes would be resigned (which should be OK as of now since we do not expect many users as of now :-)) Change-Id: I926c7bca266a9c8f2cb35d57c4d0359aa5cecfa0 BUG: 1170075 Signed-off-by: Venky Shankar <vshankar> Reviewed-on: http://review.gluster.org/10181 Tested-by: NetBSD Build System Tested-by: Gluster Build System <jenkins.com> Reviewed-by: Vijay Bellur <vbellur>
REVIEW: http://review.gluster.org/10512 (bitrot/scrub: minor logging changes) posted (#3) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10607 (doc/admin-guide: BitRot ciommand line usages) posted (#1) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10607 (doc/admin-guide: BitRot command line usage) posted (#2) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10512 (bitrot/scrub: minor logging changes) posted (#5) for review on master by Venky Shankar (vshankar)
REVIEW: http://review.gluster.org/10512 (bitrot/scrub: minor logging changes) posted (#6) for review on master by Gaurav Kumar Garg (ggarg)
REVIEW: http://review.gluster.org/10512 (bitrot/scrub: minor logging changes) posted (#8) for review on master by Gaurav Kumar Garg (ggarg)
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.8.0, please open a new bug report. glusterfs-3.8.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution. [1] http://blog.gluster.org/2016/06/glusterfs-3-8-released/ [2] http://thread.gmane.org/gmane.comp.file-systems.gluster.user