Giter VIP home page Giter VIP logo

Comments (7)

anthony-murphy avatar anthony-murphy commented on July 19, 2024

I see their benefit, we don't need to pass data over the wire if clients already have it, but we'd need to fix all the problems, and i'm not sure it is worth it at the moment.

from fluidframework.

anthony-murphy avatar anthony-murphy commented on July 19, 2024

Copy also never worked right, as it will mess up the pending segment group queue, as a segment group is never added for the local copy op, so when it op is acked it will ack the wrong pending segment group

from fluidframework.

anthony-murphy avatar anthony-murphy commented on July 19, 2024

Another thought i had is this has the potential for denial of service attacks. Imagine a large document, like pride and predudice. I could open the document, copy the entire thing, and then close my client. Then repeat. This would result is the entirety of the document being stored in a register for each client i do this with, which would eventually exhaust the memory on the connected clients. This scenerio assumes a malicious user, but something similar could take place even with a non-malicious client.

from fluidframework.

steveluc avatar steveluc commented on July 19, 2024

Registers avoid large ops for cut copy paste. The sequence groups are going away soon to be replaced by general continuous ops.

from fluidframework.

steveluc avatar steveluc commented on July 19, 2024

I agree we need to finish the feature including cleanup semantics, but we definitely need the feature to avoid arbitrary-sized ops for things like copying the whole document and pasting it.

We could tie registers to the lifetime of quorum members so that the register would be deleted when its creator leaves the quorum and the op that created the register is <= min seq.

from fluidframework.

steveluc avatar steveluc commented on July 19, 2024
        if (range.end) {
            this.copy(range, op.register, clientArgs);
            // enqueue an empty segment group to be dequeued on ack
            //
            if (clientArgs.sequenceNumber === UnassignedSequenceNumber) {
                this.mergeTree.pendingSegments.enqueue({segments: []});
            }
            return true;
        }

This code from applyInsertOp seems to be setting up the empty segment group to be acked in the local copy case.

from fluidframework.

vladsud avatar vladsud commented on July 19, 2024

This issue is 2 years old. Closing. @anthony-murphy - if we need some cleanup due to not supporting registers right now, please open separate issue,

from fluidframework.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.