All transactions are applied in a sequential order, but can run in parallel as long as there are no read-write conflicts. The big cost: all values > 48 bits in size must be heap-allocated. For this I wrote a non blocking concurrent garbage collector a couple years ago.
-
-
Show this thread
-
The “trick” is to store a 10-bit transaction id inside variables and use that to resolve conflicts. Any transaction can undo any earlier one, and can be undone by any later one, at any time, with detection at read and write points.
Show this thread -
I view this algorithm as the last hope for performant software transactional implementations since the .NET team’s efforts failed and all experiments show hash table indirection adds too much overhead.
Show this thread
End of conversation
New conversation -
-
-
so, LMDB?
-
LMDB stores all data in a B+ tree and write transactions fork pages of data using copy on write to avoid a transaction log. I support arbitrary C++ data structures containing mutable data and maintain a transaction to write and undo in-place.
- 2 more replies
New conversation -
-
-
This sounds a lot like STM (software transactional memory) from Haskell.https://www.microsoft.com/en-us/research/publication/composable-memory-transactions/ …
-
That is the idea exactly, minus manual retry features, plus plumbing for exceptions and asynchronous features. I’m just trying to make STM fast enough to be practical, in a C++ library.
- 1 more reply
New conversation -
-
-
How did your project go? Would love to read more about it.
-
The core idea works. It’s too slow but within the range that it may be viable with optimization.
- 1 more reply
New conversation -
-
-
Atomics still bug me due to their cache implications - have you measured the impact?
-
On Intel Skylake, there are 16 cycles of complete core blockage = 96 issue slots for an uncontended atomic, plus the (amortizable) cost of taking ownership of the cache line in L1.
- 4 more replies
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.