Bug 1267242

Summary: Data Tiering feature of glusterfs requires update of sqlite version in RHEL6 to sqlite 3.7 or above to support WAL journaling mode
Product: Red Hat Enterprise Linux 6 Reporter: Vivek Agarwal <vagarwal>
Component: sqliteAssignee: Jan Staněk <jstanek>
Status: CLOSED WONTFIX QA Contact: qe-baseos-daemons
Severity: urgent Docs Contact:
Priority: high    
Version: 6.8CC: databases-maint, dlambrig, hhorak, josferna, jstanek, mpillai, nchilaka, ndevos, rcyriac, salmy, sankarshan, ssaha
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1240569 Environment:
Last Closed: 2016-01-25 21:11:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1265399, 1270123    
Bug Blocks: 1217622, 1240569    
Attachments:
Description Flags
RHGS tiering performance delta when using a newer version of sqlite none

Comment 2 Rejy M Cyriac 2015-09-29 16:40:44 UTC
The WAL journaling mode does not work in sqlite 3.6.20-1 available at RHEL 6. 

WAL Journaling mode is required for the Data Tiering feature of Red Hat Gluster Storage on RHEL 6

It is required to upgrade sqlite version on RHEL 6.7 to sqlite 3.7 and above, which supports WAL journaling mode

Comment 5 Sayan Saha 2015-11-19 20:24:30 UTC
We measured the performance of our tiering feature with the current version of sqlite in RHEL 6.7 and it is very poor. We won't have a viable feature without sqlite 3.7 or higher. We need RHEL PM to weigh this request very closely as RHGS's tiering feature is  not usable without a rebase of the sqlite version in RHEL. Our other alternative would be to carry a newer version of sqlite in our channels and we're trying to avoid doing that.

Comment 6 Honza Horak 2015-11-19 21:02:13 UTC
So we have a risk of issues on customers side (remember, we speak about data here, not only broken application) and performance improvement (how big?) on the other side. For me, bundling the sqlite with RHGS is the only viable choice here.

Comment 7 Sayan Saha 2015-11-20 15:16:50 UTC
Is there no plan to rebase sqlite for the entire life-cycle of RHEL 6 i.e. till 2020? We waited for the RHEL 6.8 planning window to open to make our request.

Comment 8 Sayan Saha 2015-11-24 18:04:37 UTC
Can someone please respond to my above question?

Comment 10 Honza Horak 2015-11-25 11:53:39 UTC
(In reply to Sayan Saha from comment #7)
> Is there no plan to rebase sqlite for the entire life-cycle of RHEL 6 i.e.
> till 2020? We waited for the RHEL 6.8 planning window to open to make our
> request.

Currently there is no such plan, which means the sqlite would stay in 3.6 till EOL of RHEL-6, yes. As already said, there are big risks that we would cause troubles by doing the rebase. From my PoV, the benefits are not worth such a big risk.

Comment 11 Sayan Saha 2015-11-30 21:45:27 UTC
Created attachment 1100643 [details]
RHGS tiering performance delta when using a newer version of sqlite

Please find attached a graph that shows how big the performance difference is for the toering feature in RHGS if we use a newer version of sqlite.

Comment 12 Honza Horak 2015-12-01 10:56:37 UTC
Sayan, I see your point, the performance delta seems to be significant.

However, that doesn't change the statement that upgrading in RHEL 6 would be too risky. The upstream says [1]:
"... Since 2004, there have been enhancements to SQLite such that newer database files are unreadable by older versions of the SQLite library..."

Such forward incompatibility ^^ is something we cannot afford in RHEL minor update, because it can easily lead to issues like in [2].

That said, I'd like to ask you to think seriously about some alternative solution, like having own release of sqlite for your product.

[1] https://www.sqlite.org/formatchng.html
[2] http://stackoverflow.com/questions/28413683/backwards-compatibility-with-sqlite-db