Git Product home page Git Product logo

Comments (7)

aravindavk avatar aravindavk commented on June 3, 2024

For now second option looks good. But to support mix of manually provisioned volume and smart volumes we need to validate the brick path to prevent use by multiple volumes.

from glusterd2.

atinmu avatar atinmu commented on June 3, 2024

@kshlm regarding option 2, if we end up having a bad bug introduced in the brick allocation logic in smart volumes, then this might be dangerous, isn't it? Or do you see that can never happen?

Isn't there a way (I'm not sure) if we can actually query etcd on batches like fetch 1-300 bricks at 1 batch and then 301-600 bricks in 2nd and so on and then consolidate?

from glusterd2.

Madhu-1 avatar Madhu-1 commented on June 3, 2024

@atinmu we can use ETCD pagination for querying

from glusterd2.

kshlm avatar kshlm commented on June 3, 2024

For now second option looks good. But to support mix of manually provisioned volume and smart volumes we need to validate the brick path to prevent use by multiple volumes.

I'm not proposing that we remove brick validation completely. The validation would be skipped when the request is detected to be a smart vol request. A normal request would include the validation step.

@kshlm regarding option 2, if we end up having a bad bug introduced in the brick allocation logic in smart volumes, then this might be dangerous, isn't it? Or do you see that can never happen?

The brick paths are generated by the bricksplanner should be unique based on the the volume name. There may be issues with parallel requests to the same volume, but the locking should help avoid this. But we could make it even more by using use the volume uuid and brick uuid, which should give unique brick paths.

Isn't there a way (I'm not sure) if we can actually query etcd on batches like fetch 1-300 bricks at 1 batch and then 301-600 bricks in 2nd and so on and then consolidate?

That is part of the problem here. The initial fetch performed by the txn leader before setting 'all-bricks-in-cluster' will be helped by the pagination as @Madhu-1 suggested. The other problem is that once all the bricks are fetched, we're setting a single large value with in the txn context. Pagination will not help with this.

from glusterd2.

aravindavk avatar aravindavk commented on June 3, 2024

@kshlm regarding option 2, if we end up having a bad bug introduced in the brick allocation logic in smart volumes, then this might be dangerous, isn't it? Or do you see that can never happen?

All generated brick path will contain volume name so collision will not happen. But collision can happen if manually provisioned volumes are allowed.

Isn't there a way (I'm not sure) if we can actually query etcd on batches like fetch 1-300 bricks at 1 batch and then 301-600 bricks in 2nd and so on and then consolidate?

@atinmu we can use ETCD pagination for querying

I think etcd response size is not the problem. We should make bricks validation as single node transaction step and avoid setting the response again in context for next transaction.

from glusterd2.

atinmu avatar atinmu commented on June 3, 2024

#1478 fixes it.

from glusterd2.

atinmu avatar atinmu commented on June 3, 2024

Fixed through #1478

from glusterd2.

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.