  Distributed storage systems with replication are well known for storing large
amount of data. A large number of replication is done in order to provide
reliability. This makes the system expensive. Various methods have been
proposed over time to reduce the degree of replication and yet provide same
level of reliability. One recently suggested scheme is of Regenerating codes,
where a file is divided in to parts which are then processed by a coding
mechanism and network coding to provide large number of parts. These are stored
at various nodes with more than one part at each node. These codes can generate
whole file and can repair a failed node by contacting some out of total
existing nodes. This property ensures reliability in case of node failure and
uses clever replication. This also optimizes bandwidth usage. In a practical
scenario, the original file will be read and updated many times. With every
update, we will have to update the data stored at many nodes. Handling multiple
requests at the same time will bring a lot of complexity. Reading and writing
or multiple writing on the same data at the same time should also be prevented.
In this paper, we propose an algorithm that manages and executes all the
requests from the users which reduces the update complexity. We also try to
keep an adequate amount of availability at the same time. We use a voting based
mechanism and form read, write and repair quorums. We have also done
probabilistic analysis of regenerating codes.
