Project

General

Profile

Feature #15843

Milestone #15372: art multi-threading phase 1

Feature #15374: Modifying all framework-provided services to be thread safe.

Create DatabaseConnection service

Added by Kyle Knoepfel over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
03/10/2017
Due date:
% Done:

100%

Estimated time:
1.00 h
Spent time:
Scope:
Internal
Experiment:
-
SSI Package:
art
Duration:

Description

As part of ensuring thread-safe interactions with SQLite databases, a cet::sqlite::ConnectionFactory class has been developed. Although the ConnectionFactory class is not a singleton, a single instance of the class will need to be used in the context of services (e.g. MemoryTracker). To that end, a DatabaseConnection service should be developed so that SQLite database connections can be established via the pattern:

auto c = ServiceHandle<DatabaseConnection>{}->get(dbFilename);

The service is simple to write (and has been done so already), however it is not clear to me if it should be a "system" or an "optional" service. Also, the DatabaseConnection need not be configurable via FHiCL. Should it have an associated ParameterSet that is persisted to a file if (e.g.) MemoryTracker is configured?

History

#1 Updated by Kyle Knoepfel over 2 years ago

  • Status changed from New to Assigned
  • Assignee set to Kyle Knoepfel
  • % Done changed from 0 to 100
  • Estimated time set to 1.00 h
  • SSI Package art added

The service has been implemented as a system service whose configuration is propagated into the art/ROOT output file. I have not yet marked this issue as resolved since it is not clear to me if we want to propagate its (uninteresting) configuration into the output file.

Implemented with commit art:935d0027.

#2 Updated by Kyle Knoepfel over 2 years ago

  • Status changed from Assigned to Resolved

#3 Updated by Kyle Knoepfel over 2 years ago

  • Target version set to 1209

#4 Updated by Kyle Knoepfel about 2 years ago

  • Target version changed from 1209 to 2.07.01

#5 Updated by Kyle Knoepfel about 2 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF