Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

satellite/metainfo: reduce pointerDB access for CommitObject #3589

Merged
merged 4 commits into from
Nov 24, 2019

Conversation

mniewrzal
Copy link
Contributor

@mniewrzal mniewrzal commented Nov 18, 2019

What: Currently CommitObject is iterating from s0 to sN+1 to detect last segment and rename sN to l. CommitObject request contains object metadata and numberOfSegments which can be used to determine index of last segment without iterating. Only one Get is needed to acquire pointer bytes for deletion.

Backward compatibility concerns:
CommitObject method was merged with uplink on Sep 10 (#2640 ) and unencrypted segment count was merged on Aug 22 (#2859 ) so we can assume that all clients that are using CommitObject are also storing unencrypted segment count in object metadata.

Why: Less request to pointerDB, faster execution.

Please describe the tests:

  • Test 1: all tests should pass

Please describe the performance impact: more segments are committed faster execution compared to current implementation

Code Review Checklist (to be filled out by reviewer)

  • NEW: Are there any Satellite database migrations? Are they forwards and backwards compatible?
  • Does the PR describe what changes are being made?
  • Does the PR describe why the changes are being made?
  • Does the code follow our style guide?
  • Does the code follow our testing guide?
  • Is the PR appropriately sized? (If it could be broken into smaller PRs it should be)
  • Does the new code have enough tests? (every PR should have tests or justification otherwise. Bug-fix PRs especially)
  • Does the new code have enough documentation that answers "how do I use it?" and "what does it do?"? (both source documentation and higher level, diagrams?)
  • Does any documentation need updating?
  • Do the database access patterns make sense?

@mniewrzal mniewrzal added the Request Code Review Code review requested label Nov 18, 2019
@mniewrzal mniewrzal requested a review from a team November 18, 2019 08:24
@cla-bot cla-bot bot added the cla-signed label Nov 18, 2019
@ghost ghost requested review from isaachess and mobyvb and removed request for a team November 18, 2019 08:24
@mniewrzal mniewrzal merged commit 1aa2bc0 into master Nov 24, 2019
@mniewrzal mniewrzal deleted the mn/improve-commitobject branch November 24, 2019 21:14
bryanchriswhite added a commit that referenced this pull request Nov 25, 2019
* storj/master: (63 commits)
  web/satellite:  token payments logic (#3581)
  satellite/metainfo: reduce pointerDB access for CommitObject (#3589)
  satellite/metainfo: Fix misspelling in comment (#3636)
  argon2: choose a steady parallelism value (#3630)
  satellitedb: add support to testplanet for cockroachdb (#3634)
  satellite/console/auth: return in error handle added (#3639)
  Make sed a little more cross platformable (#3629)
  web: ms edge support bug fixed (#3638)
  web/satellite: registration/welcome message fixed, usage-report url fixed, storj-sim fixed (#3622)
  web/satellite: fonts changed to Inter (#3620)
  storagenode/updater: read identity location from storagenode's config.yaml (#3607)
  cmd/segment-reaper: Implement bitmask type (#3626)
  storagenode/gracefulexit: improve logging (#3633)
  private/testplanet: add a mock referral manager server into testplanet (#3631)
  satellite/gracefulexit: refactor concurrency (#3624)
  pkg/pb/referralmanager: update to add satellite ID to Get Tokens request (#3625)
  satellite/metainfo: improve Loop comments (#3595)
  storagenode: add bandwidth metrics (#3623)
  satellite/console: Add security headers (#3615)
  satellite/payments: token deposit accept cents (#3628)
  ...
bryanchriswhite pushed a commit to bryanchriswhite/storj that referenced this pull request Oct 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants