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

Refactor and clean up the code that reads a blob from a file #6093

Closed
wants to merge 2 commits into from

Conversation

ltamasi
Copy link
Contributor

@ltamasi ltamasi commented Nov 26, 2019

Summary:
This patch factors out the logic that reads a (potentially compressed) blob
from a file into a separate helper method GetRawBlobFromFile, and cleans
up the code a bit. Also, errors during decompression are now logged/propagated
to the user by returning a Status code of Corruption.

Test Plan:
make check

Copy link
Contributor

@facebook-github-bot facebook-github-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ltamasi has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

Copy link
Contributor

@facebook-github-bot facebook-github-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ltamasi has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

@ltamasi ltamasi changed the title [WIP] Refactor and clean up the code that reads blobs from files a bit, handle blob uncompression errors Refactor and clean up the code that reads a blob from files a bit, handle blob uncompression errors Nov 26, 2019
@ltamasi ltamasi changed the title Refactor and clean up the code that reads a blob from files a bit, handle blob uncompression errors Refactor and clean up the code that reads a blob from a file Nov 26, 2019
@ltamasi ltamasi requested a review from siying November 26, 2019 23:51
compression_type);
s = UncompressBlockContentsForCompressionType(
info, value->data(), value->size(), &contents,
kBlockBasedTableVersionFormat, *(cfh->cfd()->ioptions()));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's outside the scope to this PR but UncompressBlockContentsForCompressionType() seems to only need ImmutableCFOptions for Env and Statistics, which should be available here locally too. The complicated casting for cfh should be able to be avoided.

}

if (!s.ok()) {
if (debug_level_ >= 2) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is also outside the scope of the PR but I don't understand why blobDB doesn't rely on the standard RocksDB log level system, but use another debug level. This is unnecessarily complicating things to me.

@facebook-github-bot
Copy link
Contributor

@ltamasi merged this pull request in d9314a9.

dvdplm added a commit to dvdplm/rocksdb that referenced this pull request Nov 27, 2019
* upstream/master: (572 commits)
  Work around weird unused errors with Mingw (facebook#6075)
  Support options.max_open_files = -1 with periodic_compaction_seconds (facebook#6090)
  Fix HISTORY.md for 6.6.0 (facebook#6096)
  Expose and elaborate FilterBuildingContext (facebook#6088)
  Fix compilation under MSVC VS2015 (facebook#6081)
  Add shared library for musl-libc (facebook#3143)
  Refactor and clean up the code that reads a blob from a file (facebook#6093)
  Allow fractional bits/key in BloomFilterPolicy (facebook#6092)
  Refactor blob file creation logic (facebook#6066)
  Use lowercase for shlwapi.lib rpcrt4.lib (facebook#6076)
  Fix naming of library on PPC64LE (facebook#6080)
  Small improvements to Docker build for RocksJava (facebook#6079)
  Remove unused/undefined ImmutableCFOptions() (facebook#6086)
  Update 3rd-party libraries used by RocksJava (facebook#6084)
  Make default value of options.ttl to be 30 days when it is supported. (facebook#6073)
  Ignore value of BackupableDBOptions::max_valid_backups_to_open when B… (facebook#6072)
  Update HISTORY.md for forward compatibility (facebook#6085)
  Support ttl in Universal Compaction (facebook#6071)
  Fix the constness issues around autovector::iterator_impl's dereference operators (facebook#6057)
  Support options.ttl with options.max_open_files = -1 (facebook#6060)
  ...
wolfkdy pushed a commit to wolfkdy/rocksdb that referenced this pull request Dec 22, 2019
…k#6093)

Summary:
This patch factors out the logic that reads a (potentially compressed) blob
from a file into a separate helper method `GetRawBlobFromFile`, and cleans
up the code a bit. Also, errors during decompression are now logged/propagated
to the user by returning a `Status` code of `Corruption`.

Pull Request resolved: facebook#6093

Test Plan: `make check`

Differential Revision: D18716673

Pulled By: ltamasi

fbshipit-source-id: 44144bc064cab616862d5643f34384f2bae6eb78
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants