Feature #15843
Milestone #15372: art multi-threading phase 1
Feature #15374: Modifying all framework-provided services to be thread safe.
Create DatabaseConnection service
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 almost 4 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 almost 4 years ago
- Status changed from Assigned to Resolved
#3 Updated by Kyle Knoepfel over 3 years ago
- Target version set to 1209
#4 Updated by Kyle Knoepfel over 3 years ago
- Target version changed from 1209 to 2.07.01
#5 Updated by Kyle Knoepfel over 3 years ago
- Status changed from Resolved to Closed