CDR Tickets

Issue Number 4251
Summary Spike Story: Investigate the feasibility of moving the CDR Server to Python
Created 2017-04-05 14:41:23
Issue Type Task
Submitted By Kline, Bob (NIH/NCI) [C]
Assigned To Kline, Bob (NIH/NCI) [C]
Status Closed
Resolved 2017-04-13 12:13:23
Resolution Fixed
Path /home/bkline/backups/jira/ocecdr/issue.206141
Description

The Problem:
The original CDR Server was implemented in C++, a complex language for which the ODDC team has fewer experienced programmers than for more modern languages.

The Question:
Will it be possible to provide the same functionality currently implemented in the CDR Server using a Python replacement, without introducing any unacceptable drawbacks?

Objective of this Spike Story:
Investigate whether or not new problems (e.g., significantly degraded performance or multi-threading failures) will be introduced by running the CDR Server in Python, and determine whether the switch to Python would lose important functionality. At least three major components of the CDR Server (filtering, validation, and search) will need to be prototyped to verify the feasibility of implementing those components in Python. Separate tickets will be created for each of these components. The work for this ticket will focus on the general architecture issues (robustness of the service, reliability of the concurrency, performance).

Comment entered 2017-04-13 12:13:23 by Kline, Bob (NIH/NCI) [C]

The work on the prototype is complete. There appears to be no technical impediment to replacing the C++ CDR Server with a Python equivalent, and the result will run at least as fast, using significantly cleaner and more compact code. In addition, we would eliminate dependence on aging and (in some cases) non-compliant software packages. The detailed summary of what was learned during this exercise are captured in this Collaborate page.

Attachments
File Name Posted User
new_server.tar.bz2 2017-08-08 14:33:12 Kline, Bob (NIH/NCI) [C]

Elapsed: 0:00:00.001419