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 |
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).
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.
File Name | Posted | User |
---|---|---|
new_server.tar.bz2 | 2017-08-08 14:33:12 | Kline, Bob (NIH/NCI) [C] |
Elapsed: 0:00:00.001419