tsuna / gohbase

Pure-Go HBase client
Apache License 2.0
736 stars 213 forks source link

hrpc/snapshot: keep version unset if not specified #243

Closed dethi closed 11 months ago

dethi commented 11 months ago

HBase has 2 snapshot formats: version 0 and version 2. Version 2 is more efficient as it doesn't require the creation of thousand of empty files and instead create a single manifest file[1].

The snapshot format version is dependent of the SnapshotDescription. When the version is not set, HBase will use the default version. In HBase 1.x/2.x, the default version is 2.

Unfortunately, gohbase implementation always set the version to 0, even when the caller didn't explicitly set the version. This is is because internally gohbase use an int32 (not a pointer) which default to 0 implicitly.

This change switch the internal storage to a pointer, to match the "optional" behaviour on the protobuf side.

[1] More details at:

codecov[bot] commented 11 months ago

Codecov Report

Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (642db04) 70.22% compared to head (0279695) 70.12%.

Files Patch % Lines
hrpc/snapshot.go 0.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #243 +/- ## ========================================== - Coverage 70.22% 70.12% -0.11% ========================================== Files 27 27 Lines 3782 3782 ========================================== - Hits 2656 2652 -4 - Misses 1005 1010 +5 + Partials 121 120 -1 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.