O'Connor's invited OverStory to solve significant performance issues with one of their key internal production systems. The complex cross-referencing application, intrinsic to the production workflow of all content, runs on MarkLogic but was benchmarked at 42mins per book. This application was not well known and significant analysis and refactoring was needed to make the system maintainable. OverStory consultants reduced the cycle time to less than 10 seconds, and with O’Connor’s, refactored the application to make it more future proof.
O’Connor’s (previously Jones McClure Publishing) have developed their own sophisticated MarkLogic based publishing platform for their legal Reference Books.
OverStory had been brought into address the non functional aspects of the system: the processing of cross references for a single 1200 page book, with 10k cross-references was benchmarked at 42 minutes.
The most immediate challenge was that the system was not well known. The application had originally been authored to be run on the eXist database, was very complex, and as with many older systems, the original O’Connor’s developers had moved on. We couldn’t move forward until we understood enough of the system to make safe recommendations and changes.
The closer we looked, the more we saw routines that either looked odd, or didn’t make sense. And without a good understanding of the system’s functional needs, we couldn’t be confident any changes would maintain the intended behaviours and outputs.
Other challenges included setting the system up outside it’s normal environment, as it hadn’t been done before, and hitting a blocker in the shape of a MarkLogic bug (reported to MarkLogic). The complexity of the application also meant that we had to apply a very broad approach to performance analysis, that covered a great deal of ground and required a deep MarkLogic know how.
How OverStory helped:
We agreed a cadence that was suitable for the O’Connor’s team, and balanced the need for their time in helping us understand the system requirements, especially as the hidden complexity of the system came into view.
With weekly updates on progress with extra ad hoc calls/messaging for urgent questions, communications was regular and open. In similar fashion to a sprint plan/review, we reviewed and validated progress, and then agreed next steps. In some cases our work needed to dovetail with O’Connor’s activities, and so great communications and flexibility on both sides were important. O’Connor’s are Texas based, and so all calls were in their time zone.
The lifecycle rotated around performance benchmarks and profiling, and investigations into which part of the application were the processing hotspots. We fed incremental improvements into the code repository so O'Connor's could test and make use of the changes as soon as possible. The more significant refactoring was left until we were more confident we understood the system well enough.
Craig Schlegelmilch, our consultant assigned to this project, is a highly experienced MarkLogic consultant with well over a decade of experience. Craig wasn’t working alone though, and has the call of our team’s expertise, whenever needed.
This project was particularly complex, and Craig put his skills to good use, and coupled to the diligence of Will, O’Connor’s Chief Software Engineer, the potential for some significant improvements were there.
An updated, but not yet final version of the cross-referencing system is now in production at O’Connor’s. The performance improvements are significant, as we have seen time reductions of at least 100x. There are some final changes just about to be pushed to Github which will improve performance even further, and leave the system in a much more performant and maintainable state.
O’Connor’s are happy, in that the cross-reference processing now runs much faster, and so their production cycles are vastly reduced. It also impacts testing time for new changes to this system, which now run through, with less tester wait time. Success. The system has also been refactored to make future changes more straightforward and testable.
Additionally, two more things have come out of this engagement. Firstly, we have helped O’Connor’s port another internal C# application into a more maintainable XQuery module. Secondly, after being prompted for the need by the O’Connor’s technical staff, and after some analysis and conversation, we are about to embark on extending an open source XQuery IDE plugin with debugging capability.
Can we help you achieve your goals?
OverStory are unique in the world of MarkLogic consultancies, as our staff have worked at MarkLogic itself, and have a deep insight into this application. However, we will help you achieve your goals regardless of the technology choices, and if MarkLogic isn’t right for you, we’ll say. We often integrate MarkLogic with open source technology stacks, and use whatever is best for the customer.