In the current implementation of Swift, the entire object is stored mostly as a single file on object server.
Idea behind striping the object is basically to have parallel read/writes of object stripes from multiple object servers. The whole idea is to stripe the object, write stripes in parallel across the available and possible object servers, and read it in parallel from multiple object servers.
Vectored I/O to object can be the extended functionality along with object striping.
Advantages:
- Participation of maximum available and possible object servers in object reads and writes.
- Increase in Swift throughput: Especially in case of large size objects (object size more than stripe/chunk size like 1MB, 2MB and so on).
- Load sharing across multiple object servers can be achieved.
- Update operation support on objects can be added using vectored I/O.