diff --git a/p6.md b/p6.md index c08f246553a5496a484b793e0219206e70dc7f6f..bfaba097e1fd0d35f0554311b17d1f5fc8b86726 100644 --- a/p6.md +++ b/p6.md @@ -1,5 +1,5 @@ # 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