Publication | Closed Access
Language support for lightweight transactions
633
Citations
24
References
2014
Year
EngineeringComputer ArchitectureTransaction ProcessingConcurrent SystemLightweight TransactionsSoftware AnalysisConcurrency ControlFormal VerificationParallel ComputingConcurrent ProgrammingDeadlock ProblemsComputer ScienceProgram AnalysisTransactional ApplicationFormal MethodsParallel ProgrammingConcurrent Data StructureSystem SoftwareTransactional Memory
Concurrent programming is notoriously difficult. Current abstractions are intricate and make it hard to design computer systems that are reliable and scalable. We argue that these problems can be addressed by moving to a declarative style of concurrency control in which programmers directly indicate the safety properties that they require. In our scheme the programmer demarks sections of code which execute within lightweight software-based transactions that commit atomically and exactly once. These transactions can update shared data, instantiate objects, invoke library features and so on. They can also block, waiting for arbitrary boolean conditions to become true. Transactions which do not access the same shared memory locations can commit concurrently. Furthermore, in general, no performance penalty is incurred for memory accesses outside transactions. We present a detailed design of this proposal along with an implementation and evaluation. We argue that the resulting system (i ) is easier for mainstream programmers to use, (ii ) prevents lock-based priority-inversion and deadlock problems and (iii ) can offer performance advantages.
| Year | Citations | |
|---|---|---|
Page 1
Page 1