Comments (7)
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.
@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.
@atinmu we can use ETCD pagination for querying
from glusterd2.
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.
@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.
#1478 fixes it.
from glusterd2.
Fixed through #1478
from glusterd2.
Related Issues (20)
- pvc request failed to create volume with error "timeout in synchronizing txn" HOT 16
- glustershd needs to be restarted for volume start/stop operations HOT 1
- Healinfo for disperse volumes errors out HOT 3
- Replicate volume created on single node without force HOT 1
- glustershd memory keeps increasing while creating PVCs HOT 11
- Fix spurious socket connect failure issue in brick multiplexing stop code path HOT 1
- stale brick process when volume stop operations are done in parallel in brick multiplexing mode HOT 8
- Inconsistency in glustershd process HOT 1
- Glusterd2--version displays some logs along with it
- Support RWO with Loopback devices HOT 1
- parallel volume deletion requests fail with device or resource busy for some of the PVs HOT 1
- disable glustershd for GCS 1.0 HOT 2
- Volume status shows PID as 0 for few volumes HOT 1
- PVC delete failed to delete 146/250 gluster volumes
- Brick process didn't come up on the node post gluster node reboot HOT 2
- GlusterD kubernetes: systemctl start glusterd silent failures. HOT 1
- Can gd2 take a directory as requirement (instead of 'add-device') for loopback bricks? HOT 2
- Please fix systemd depency to rpcbind HOT 1
- Is glusterd2 dead? HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from glusterd2.