Bug 1199906 - Changelog: Include leftover changelog into existing htime file
Summary: Changelog: Include leftover changelog into existing htime file
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: GlusterFS
Classification: Community
Component: geo-replication
Version: mainline
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Saravanakumar
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-03-09 08:38 UTC by Saravanakumar
Modified: 2015-12-29 10:31 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2015-12-29 10:31:18 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Saravanakumar 2015-03-09 08:38:59 UTC
Description of problem:

Geo-replication make use of changelog translator (which is used to 
capture all I/O operations happening in a Volume and this happens per 
brick).

All the I/O operations happening are stored in 
.glusterfs/changelogs/CHANGELOG.TS (where TS is timestamp).

All successful changelogs(in a session) are getting logged into HTIME file.

Now, we have a case where the Brick can go down (for example some crash) 
and Changelog logging stops.

Consider, gluster volume is started again.
Now, the last CHANGELOG (which captured I/Os just before crash) is 
getting included into the new HTIME file.

This leads to inconsistent timings. The last CHANGELOG should have been 
included into the previous HTIME file.

Solution is to modify changelog translator so that the last 
CHANGELOG will be included into the previous HTIME file.  It will be renamed as CHANGELOG.<Previous Changelog TS + 1>.

This will give better results when changes happened across a specific 
duration is asked for.



Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. kill the glusterfsd brick daemon while changelogs are getting generated
2. There should be a CHANGELOG file without any extension.
3. Restart the brick daemon. Now the CHANGELOG file be included 
into new HTIME file.

Actual results:
CHANGELOG file is getting included into new htime file. 


Expected results:
Existing Changelog file, if any should get included into the previous htime file. Also, the file I/Os captured(in the changelog) should be propagated to slave by geo-rep session.

Additional info:

Comment 1 Anand Avati 2015-03-09 08:50:56 UTC
REVIEW: http://review.gluster.org/9832 (changelog: include leftover changelog into previous htime file) posted (#1) for review on master by Saravanakumar Arumugam (sarumuga)

Comment 2 Anand Avati 2015-03-17 09:37:08 UTC
REVIEW: http://review.gluster.org/9832 (changelog: include leftover changelog into previous htime file) posted (#2) for review on master by Saravanakumar Arumugam (sarumuga)

Comment 3 Anand Avati 2015-03-19 12:48:27 UTC
REVIEW: http://review.gluster.org/9832 (changelog: include leftover changelog into previous htime file) posted (#3) for review on master by Saravanakumar Arumugam (sarumuga)

Comment 4 Anand Avati 2015-03-24 14:11:02 UTC
REVIEW: http://review.gluster.org/9832 (changelog: include leftover changelog into previous htime file) posted (#4) for review on master by Saravanakumar Arumugam (sarumuga)

Comment 5 Aravinda VK 2015-05-10 03:41:43 UTC
Some more work expected on the posted patch. Moving back to Assigned.

Comment 6 Aravinda VK 2015-12-29 10:31:18 UTC
No new Changelogs index file(HTIME) is created after upgrade/brick node reboots. HTIME file will be created only when Changelog disabled and enabled. (BZ 1211327)

This bug is not relevant now. Closing this bug. Please reopen if found again.


Note You need to log in before you can comment on or make changes to this bug.