Permalink
Commits on Aug 16, 2017
  1. Merge pull request #378 from google/crdt-doc-1

    trishume committed Aug 16, 2017
    CRDT Documentation
  2. More edits from @cmyr

    trishume committed Aug 16, 2017
Commits on Aug 6, 2017
  1. Applied @cmyr's remaining suggestions

    trishume committed Aug 6, 2017
Commits on Aug 4, 2017
  1. A bunch of editing thanks to @cmyr

    trishume committed Aug 4, 2017
  2. Merge pull request #380 from google/fuchsia-crdt-doc

    trishume committed Aug 4, 2017
    Document about CRDTs on the Fuchsia Ledger
  3. Document about CRDTs on the Fuchsia Ledger

    trishume committed Aug 4, 2017
  4. Fix up typos, links and citations

    trishume committed Aug 4, 2017
Commits on Aug 3, 2017
  1. Merge pull request #379 from google/fix-fuchsia-compile

    trishume committed Aug 3, 2017
    Fix compile errors with Fuchsia syncing
  2. Fix compile errors with Fuchsia syncing

    trishume committed Aug 3, 2017
  3. Fix trans_expand image

    trishume committed Aug 3, 2017
Commits on Aug 2, 2017
  1. More diagrams and short motivation section

    trishume committed Aug 2, 2017
Commits on Jul 31, 2017
  1. Diagrams for transform_expand

    trishume committed Jul 31, 2017
Commits on Jul 28, 2017
  1. Document rebase

    trishume committed Jul 28, 2017
  2. Merge pull request #369 from google/better-sync

    trishume committed Jul 28, 2017
    Use CRDT merge to resolve conflicts with Fuchsia sync
  3. Merge pull request #370 from google/session-priority

    trishume committed Jul 28, 2017
    Use both edit priority and session ID to order inserts
  4. Small cleanliness fix

    trishume committed Jul 28, 2017
  5. More writing

    trishume committed Jul 28, 2017
Commits on Jul 26, 2017
  1. More docs, and pictures!

    trishume committed Jul 26, 2017
  2. Cleaner engine code

    trishume committed Jul 26, 2017
  3. WIP CRDT document

    trishume committed Jul 15, 2017
Commits on Jul 12, 2017
  1. Use both edit priority and session ID to order inserts

    trishume committed Jul 12, 2017
    Multiple devices may use the same priorities for edits since they depend only
    on the plugin, which means that they may not be well-ordered. Solve this by
    also using the session ID to break ties in priority, both for merge and
    mk_new_rev.
Commits on Jul 11, 2017
  1. WIP conflict resolver machinery

    trishume committed Jul 11, 2017
    This should be all that is needed, but I haven't even compiled it so it might
    be totally borked.
Commits on Jul 10, 2017
  1. Merge pull request #364 from google/device-ids

    trishume committed Jul 10, 2017
    Refactor revision numbers to have session IDs
  2. Plumb session ID through to Engine from top level on Fuchsia

    trishume committed Jul 7, 2017
  3. Switch to 96 bits of session ID

    trishume committed Jul 7, 2017
    The numbers with 64 bits were such that if Fuchsia/Xi was a spectacular success
    and a million people made documents with 6 million sessions there would be on
    expectation one person who's document got corrupted by a collision.
    
    Realistically not enough people would have 6 million sessions on a single
    document but I could avoid the possibility entirely without increasing
    struct size so why not.
  4. Refactor revision IDs into RevId struct and u64 tokens

    trishume committed Jul 6, 2017
    The RevId struct is a delta-compressible representation used by Engine, the
    RevToken is an alias for u64 that is used by plugins as a non-colliding
    identifier for a revision to base their edits on.
    
    The RevToken is currently just a DefaultHasher hashed version of RevId,
    which since DefaultHasher is cryptographically-pseudorandom should never
    really collide. The collision set is just concurrent revisions since it
    searches for the corresponding revision from newest to oldest.
    
    This refactor paves the way for different Fuchsia devices to have separate
    device IDs on their Engine, allowing them to generate non-conflicting
    revisions that can be merged using the Ledger syncing mechanics.
  5. Merge pull request #363 from callodacity/master

    trishume committed Jul 10, 2017
    implement delete_word_forward and delete_word_backward
Commits on Jul 6, 2017
  1. Merge pull request #357 from google/xi-editor/fix-gc-crash

    trishume committed Jul 6, 2017
    Also GC initial loading revision in Editor, fixing panic
Commits on Jul 5, 2017
  1. Update Cargo.lock

    trishume committed Jul 5, 2017
  2. GC initial loading revision, fixing panic

    trishume committed Jul 5, 2017
    Fixes google/xi-mac#52 by including the revision
    that contains the initial contents in the GC call the Editor makes. The GC
    only supports GCing prefixes of the visible edit history but when the initial
    revision was introduced, the Editor no longer abided by that restriction,
    causing invalid states and thus crashes.