Skip to content
Snippets Groups Projects
  1. Nov 20, 2021
  2. Nov 19, 2021
  3. Nov 18, 2021
    • Aditya Manthramurthy's avatar
      54e25a02
    • Harshavardhana's avatar
    • Klaus Post's avatar
      Improve performance on multiple versions (#13573) · faf013ec
      Klaus Post authored
      Existing:
      
      ```go
      type xlMetaV2 struct {
          Versions []xlMetaV2Version `json:"Versions" msg:"Versions"`
      }
      ```
      
      Serialized as regular MessagePack.
      
      ```go
      //msgp:tuple xlMetaV2VersionHeader
      type xlMetaV2VersionHeader struct {
      	VersionID [16]byte
      	ModTime   int64
      	Type      VersionType
      	Flags     xlFlags
      }
      ```
      
      Serialize as streaming MessagePack, format:
      
      ```
      int(headerVersion)
      int(xlmetaVersion)
      int(nVersions)
      for each version {
          binary blob, xlMetaV2VersionHeader, serialized
          binary blob, xlMetaV2Version, serialized.
      }
      ```
      
      xlMetaV2VersionHeader is <= 30 bytes serialized. Deserialized struct 
      can easily be reused and does not contain pointers, so efficient as a 
      slice (single allocation)
      
      This allows quickly parsing everything as slices of bytes (no copy).
      
      Versions are always *saved* sorted by modTime, newest *first*. 
      No more need to sort on load.
      
      * Allows checking if a version exists.
      * Allows reading single version without unmarshal all.
      * Allows reading latest version of type without unmarshal all.
      * Allows reading latest version without unmarshal of all.
      * Allows checking if the latest is deleteMarker by reading first entry.
      * Allows adding/updating/deleting a version with only header deserialization.
      * Reduces allocations on conversion to FileInfo(s).
      faf013ec
    • Shireesh Anjal's avatar
      Use pointer based TLS field (#13659) · 71529153
      Shireesh Anjal authored
      
      This will help other projects like `health-analyzer` to verify that the
      struct was indeed populated by the minio server, and is not
      default-populated during unmarshalling of the JSON.
      
      Signed-off-by: default avatarShireesh Anjal <shireesh@minio.io>
      71529153
  4. Nov 17, 2021
  5. Nov 16, 2021
  6. Nov 15, 2021
  7. Nov 13, 2021
  8. Nov 12, 2021
  9. Nov 11, 2021
  10. Nov 10, 2021
Loading