Skip to content
Snippets Groups Projects
Commit bd265364 authored by Peter J. Keleher's avatar Peter J. Keleher
Browse files

auto

parent f765b416
No related branches found
No related tags found
No related merge requests found
# Project 6: Supporting High-level Abstractions From a Shared Log
**v1.0**<br>
**v1.1**<br>
**Due Dec 10**
## Setup
......@@ -25,9 +25,7 @@ KV. Like w/ Tango, we expect transactions to support strict
serializability. Writes from transactions that abort do not affect the
KV.
Finally, in the *tree* type, you will create a shared tree that
supports concurrent modifications via simple mutations. You build this
entirely from scratch.
Finally, you will build something else. See below.
You will build your tango support in a new `p6/tango` module. Your
applications will call the tango module API to access the shared log.
......@@ -162,6 +160,16 @@ non-transactional updates, but *calls for transactional updates are
delayed until a transaction is known to have committed*.
## Something Else
Build some other distributed data type on tango. Or do something else cool w/ Raft.
## Points.
- [**40 pts**] intCRED
- [**60 pts**] transactional KV
- [**50%**] of final exam grade: "Something Else". The other 50% will be a take-home exam.
Everything, the "Something Else", should be well-documented in your README.
## Testing.
1. I will test by running two copies of `intCRDT.go` against "scriptInt.1"
concurrently, multiple times. Each time the end result should be the
......@@ -170,16 +178,10 @@ same regardless of interleaving.
"scriptKV.1" with one app. As the third READ is seen, I will start
another instance of `kv.go` running "scriptKV.2", which should
cause transaction 2 to abort. Transactions 1 and 3 will commit.
3. You should come up scripts, similar to the KV scripts, to test your
log-based tree implementation. Details should be in your README.md file.
3. Your something else should come w/ scripts, similar to the KV scripts, for testing. Details should be in your README.md file.
## Random Details
- The tree should support mutations such as:
- add a child
- move a child
- delete a child
Transactional semantics allow these to be combined atomically.
## Submitting
Submit by pushing to your repository.
- DO update the `README.md` to
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment