Details on No. 12 Sprint Towards Fedora4 Beta: Clustering, Authorization, Single Node Performance, Test Coverage++

Fri, 2014-03-14 13:05 -- carol

Winchester, MA  The Fedora team has concluded the twelfth sprint within the "Beta Phase" of Fedora4 development. The work of this and each sprint is planned and completed thanks to the contributions of Fedora stakeholder institutions which allocate developer time. If you would like to be involved with Fedora4 development, please send an email to Andrew Woods awoods@duraspace.org, or to fedora-community@googlegroups.com. If you have comments on the work from this sprint, please also send an email or comment directly on the wiki.

Read the the Sprint B12 summary:
https://wiki.duraspace.org/display/FF/Sprint+B12+Summary

About Sprint 12, Beta Phase

Development Team

Frank Asseg - FIZ Karlsruhe
Adam Soroka - University of Virginia
Greg Jansen - University of North Carolina, Chapel Hill
Ben Pennell - University of North Carolina, Chapel Hill
Mike Daines - University of North Carolina, Chapel Hill

Sprint Themes

1) Clustering
Incremental progress continues to be made towards the Fedora 4 clustering [1] capability. A set of Fedora Puppet scripts [2] have been refined which enable consistent clustering. In addition to the scripts and configuration details themselves, several tips and gotchas related to cluster deployment are included in the linked resources.

2) Authorization
In order to address the breadth of Authorization use cases [3], this sprint enhanced the Fedora 4 Authorization framework for two fundamental purposes:

- Enable the full context of servlet requests to be available to the Authorization enforcement point, and

- Make the Authorization interface boundaries abstract enough to allow both HTTP as well as embedded Java client requests to leverage the same security infrastructure.

Use case specific implementations are still required, but the framework should be flexible enough to now support a variety of scenarios including the integration of LDAP, filtering on request I.P. address, and restricting access by license-based policies.

3) Performance - Single Node
The improvement of Fedora 4's performance (in the form of user response-time) is a continual priority. In the "Holiday Release", Alpha-3, we compared the results [4] of ingest events against Fedora 3 and Fedora 4 installations. It has since been determined that one of the greatest impacts on response-time comes from the "persist" or "commit" phase of a repository interaction. Given that, this sprint retooled thebenchmarking utility [5] to optionally wrap performance tests within transactions. What the transaction offers is the ability to consolidate a set of repository updates into a single "commit" versus "committing" after every request.

The results [6] of executing suites of delete, ingest, and update operations with and without transactions reveal the following improvements:
- Delete: 62% improvement
- Ingest: 33% improvement
- Update: 32% improvement

4) Test Coverage
Unit and Integration test coverage [7] is a vital factor in maintaining a healthy code base. The following are the code coverage statistics at the end of this sprint, and the change from the previous sprint.
- Unit tests: 71.3% (up 6.8%)
- Integration tests: 71.1% (down 0.3%)
- Overall coverage: 84.4% (up 0.6%)

5) Housekeeping
Several bugs were addressed during this sprint. Bug fixes and application polishing included:
- Optionally caching checksums of content under filesystem projection
- Consolidating previously scattered configuration files into a single package
- Refactoring additional kernel interfaces from implementation classes
- Removing dead code

References

[1] https://wiki.duraspace.org/display/FF/Deploying+a+Fedora+Cluster
[2] https://github.com/futures/puppet-fcrepo/blob/master/README.md
[3] https://wiki.duraspace.org/label/FF/uc-authz
[4] https://wiki.duraspace.org/display/FF/Single-Node+Test+Results#Single-NodeTestResults-Fedora3/4Comparison
[5] https://github.com/futures/benchtool
[6] https://wiki.duraspace.org/display/FF/Single-Node+Test+Results#Single-NodeTestResults-TransactionalversusNon-transactionalTestsResults%28Benchtool%29
[7] http://sonar.fcrepo.org/dashboard/index/1

RSS Feeds: