sto
sto copied to clipboard
Eddie's wishlist
- [x] Combine unlock() and cleanup() methods
- We currently think this was a bad idea! It's hard to write a true
cleanup()
when you can't know whether some other part of the data structure has been locked.
- We currently think this was a bad idea! It's hard to write a true
- [x] An abort() during the lock() phase doesn't leave the txn system borked
- [ ] Check equality of read_version()s when installing a new read version over an item that already has one; otherwise we risk issues if, e.g., a txn checks value equality for read values
- This is not necessary for opaque reads
- I think we can't ever check value equality; the predicate system is designed to fix this problem
- [ ] Should
Sto::check_in_progress()
be an assertion? - [ ] New-style opacity check (GP7 or whatever?…)
- [ ] Try-lock?
- [x]
Vector
uses conflictingly-typed keys (Vector* this vs. int), all keys should be same type - [x] predicate changes
- [x]
check_predicate
- [x]
- [x] Call
cleanup
only ifhas_write
Final version
- [ ] Boosting comparison with hash tables—Nate
- [ ] Boosting comparison with red-black trees—lower prio—Nate
- [ ] Relationship between boosting and STM
- [x] Fine-grained locking for red-black trees; red-black tree comparison vs. TL2—lower prio—Yihe
- [x] Checking Silo/Masstree for bugs—Jeevana
- [ ] Predicate experiment—Jeevana
- [ ] Code cleanup—Eddie
- [ ] GV6/7 more scalable opacity check
- [ ] Try-lock for deadlock detection
- [ ] Avoid commit protocol for read-only transactions
- [ ]
versioned_value_struct
leaks memory - [x] Predicate recheck if opacity fails!!
- [ ] Get rid of code in check_reads()?
Transactional versions
- [x] Opacity relationship with TransactionTid/TVersion
- Suggest a
TVersion
type which encapsulates a version number - Suggest we override
add_read(TVersion)
to automatically handle opacity
- Suggest a
- [ ] How does
PriorityQueue::empty_key
work? Is that actually a predicate? - [ ] Hate comments like (list.hh) “check_item() is not const, but the way we’re using it is” :(
- [ ] Do we need both List and List1?
- [ ] GenericSTM is not correct wrt opacity
- [ ] Boosting + RBtree
- [ ] Terminology: “poisoned” objects (rather than “try-lock”)
Eric Koskinen
- Does boosting have fine-grained or coarse-grained locking?
- Really true that boosting has no STM?
- Boosting code
- Attach our paper
- Do you have a hash table?
- What'd they use for the list in STAMP vacation?
- How'd they boost k-means?
PLDI paper
- What'd they use for the list in STAMP vacation?