Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-7662

3x Usability/Documenation Suggestions: CAP, Replica, Flush

    Details

      Description

      I've been racking my brain on Couchbase's classification in the CAP theorem, and have concluded (perhaps erroneously?) that it simultaneously fulfills 2 instances of the "choose 2 of 3" requirements. The "Working Set" portion of Couchbase is CP; we don't have Availability because writes are not guaranteed if there is not enough room in the working set. The "Persisted Working Set" is AP; it is not Consistent because a Map/View does not always query the most up to date data – it only queries persisted data. There is another aspect of the latter as well: two emits from a Map/View are not guaranteed to show up in the same Reduce/Query, because the multiple emits in the Map/View are not combined/atomic. ACTUALLY, I don't know that second aspect to be 100% true because I don't know the Couchbase internals... however, I have asked the question here: http://www.couchbase.com/forums/thread/handful-questions-hotspotsemit-atomicityview-updatesreduce-results-saving (question #2) – and seeing as nobody knows the answer to it, the safest bet is that atomocity isn't guaranteed. You would be able to answer it if the emits were atomic because it doing so would require additional work on your part (and is perhaps impossible because of the CAP theorem itself).
      ^^The reason I'm pointing this out is just so the documentation can be updated accordingly. Right now I see a lot of uncertainty in it and I would like to see clarity instead. The less confused your users are, the less time you have to spend helping them, the more time you spend working on the actual product, and then I win in the end . The key thing to mention (that I have not yet seen mentioned) are the two differences in the modes of operation. Emphasis should be put on the effects this has in a user's software design. One could easily write an entire essay on the subject. However I will state that Couchbase implementing 2 sections of the "choose 2 of 3" requirement simultaneously is freaking amazing. Couchbase is awesome.

      "Replica"/"Replicate" terminology usage is ambiguious. The differences between the two are astronomical. Use more adjectives/adverbs or invent new words to obliterate the ambiguity.
      Use 1 (storing a value): http://www.couchbase.com/docs/couchbase-manual-1.8/couchbase-introduction-architecture-replication.html
      Use 2 (XDCR): http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-admin-tasks-xdcr.html

      "Flush" is used in other domains to mean "write (flush) to disk", not "delete". The documentation is clear on this, but what if a "know-it-all" user was to use it without reading the documentation (REST API for example (Because I'm assuming the web interface warns you?))? "Format" would be a good alternative...

      d3fault

      No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

        Hide
        mikew Mike Wiederhold added a comment -

        Karen,

        I removed a bunch of components here since this looks like it is just a documentation task and having the couchbase-bucket component on their clutters up some of the filters I have in place. If having these components makes things easier for you then feel free to add them back. Also, if there are any tasks on this issue for me feel free to assign this to me.

        Show
        mikew Mike Wiederhold added a comment - Karen, I removed a bunch of components here since this looks like it is just a documentation task and having the couchbase-bucket component on their clutters up some of the filters I have in place. If having these components makes things easier for you then feel free to add them back. Also, if there are any tasks on this issue for me feel free to assign this to me.
        Hide
        kzeller kzeller added a comment -

        Interpretation: cross reference and distinguish intro from inracluster and XDCR

        Show
        kzeller kzeller added a comment - Interpretation: cross reference and distinguish intro from inracluster and XDCR
        Hide
        kzeller kzeller added a comment -

        Distinguish flush from rDMS which means store to disk/

        Need to make clear that our flush term is different = means remove from cache.

        Show
        kzeller kzeller added a comment - Distinguish flush from rDMS which means store to disk/ Need to make clear that our flush term is different = means remove from cache.
        Hide
        kzeller kzeller added a comment -

        -Fixed as part of ongoing overhaul to replica content since 2.0.
        -Discussion of CAP theorem out of scope for manuals per PM

        Show
        kzeller kzeller added a comment - -Fixed as part of ongoing overhaul to replica content since 2.0. -Discussion of CAP theorem out of scope for manuals per PM
        Hide
        kzeller kzeller added a comment -

        -Fixed as part of ongoing overhaul to replica content since 2.0.
        -Discussion of CAP theorem out of scope for manuals per PM

        Show
        kzeller kzeller added a comment - -Fixed as part of ongoing overhaul to replica content since 2.0. -Discussion of CAP theorem out of scope for manuals per PM

          People

          • Assignee:
            kzeller kzeller
            Reporter:
            d3fault d3fault
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 59h
              59h
              Remaining:
              Remaining Estimate - 59h
              59h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Gerrit Reviews

                There are no open Gerrit changes