optimize double reads by reusing results from checkUploadIDExists() (#15692)

Move to using `xl.meta` data structure to keep temporary partInfo,
this allows for a future change where we move to different parts to
different drives.
This commit is contained in:
Harshavardhana
2022-09-15 12:43:49 -07:00
committed by GitHub
parent 124544d834
commit 9e5853ecc0
4 changed files with 89 additions and 145 deletions
+20
View File
@@ -234,6 +234,26 @@ type FileInfo struct {
Checksum []byte `msg:"cs,allownil"`
}
// WriteQuorum returns expected write quorum for this FileInfo
func (fi FileInfo) WriteQuorum(dquorum int) int {
if fi.Deleted {
return dquorum
}
quorum := fi.Erasure.DataBlocks
if fi.Erasure.DataBlocks == fi.Erasure.ParityBlocks {
quorum++
}
return quorum
}
// ReadQuorum returns expected read quorum for this FileInfo
func (fi FileInfo) ReadQuorum(dquorum int) int {
if fi.Deleted {
return dquorum
}
return fi.Erasure.DataBlocks
}
// Equals checks if fi(FileInfo) matches ofi(FileInfo)
func (fi FileInfo) Equals(ofi FileInfo) (ok bool) {
if !fi.MetadataEquals(ofi) {