Enhancement #5840

Introduce a Runnable interface that indicate read-only tasks to solver variable backend

Added by Tuukka Lehtonen over 2 years ago. Updated over 2 years ago.

Status:ClosedStart date:2015-05-12
Priority:4Due date:2015-05-21
Assignee:Tuukka Lehtonen% Done:

100%

Category:VariableSpent time:2.00 hours
Target version:1.18.1
Release notes:Developers: Introduced new interface @VariableNodeReadRunnable extends Runnable@ that indicates to the solver variable backend that the task is read-only regarding the solver. This adds a bit of freedom in optimizing for read-concurrency in the backend.
Tags: perf, variable, solver, concurrency
Story points-
Velocity based estimate-
ReleaseSimantics 1.18.1Release relationshipAuto

Description

Introduce a Runnable interface to indicate to solver variable backend (Realm) implementations that a task will only read the solver and not perform any writes to it.

This information can be leveraged to optimize/enable concurrent access to the solver data model depending on the threading capabilities of the solver.


Related issues

Related to Platform - Enhancement #5839: Timeouting (non-blocking) database requests for platform ... Closed 2015-05-12 2015-05-21
Related to Platform - Feature #4556: Non-blocking requests for org.simantics.db.Session Closed 2013-11-18 2015-05-21

Associated revisions

Revision 31275
Added by Tuukka Lehtonen over 2 years ago

Introduce functional interface VariableNodeReadRunnable for exploiting read-only concurrency in solver variable backend implementations.

The interface is now used only in the platform-internal implementations that consult solver variable node backend implementations and naturally in the solver variable backend implementations themselves.

refs #5840

Revision 31277
Added by Tuukka Lehtonen over 2 years ago

Added copyright to interface VariableNodeReadRunnable.

refs #5840

Revision 31280
Added by Tuukka Lehtonen over 2 years ago

Merged trunk@31275,31277 to branches/simantics-1.18 on 2015-05-12 for 1.18.2 release.

refs #5840

History

#1 Updated by Tuukka Lehtonen over 2 years ago

  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 100

#2 Updated by Tuukka Lehtonen over 2 years ago

  • Status changed from Feedback to Closed
  • Target version changed from 1.18.2 to 1.18.1
  • Release changed from 33 to 17
  • Release notes set to Developers: Introduced new interface @VariableNodeReadRunnable extends Runnable@ that indicates to the solver variable backend that the task is read-only regarding the solver. This adds a bit of freedom in optimizing for read-concurrency in the backend.

Also available in: Atom PDF