iotex-core icon indicating copy to clipboard operation
iotex-core copied to clipboard

[db] add versioned BoltDB and KvVersionedWithBuffer

Open dustinxie opened this issue 1 year ago • 1 comments

Description

Base DB change for index DB size reduction

Fixes #(issue)

Type of change

Please delete options that are not relevant.

  • [] Bug fix (non-breaking change which fixes an issue)
  • [x] New feature (non-breaking change which adds functionality)
  • [] Code refactor or improvement
  • [] Breaking change (fix or feature that would cause a new or changed behavior of existing functionality)
  • [] This change requires a documentation update

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

  • [] make test
  • [] fullsync
  • [] Other test (please specify)

Test Configuration:

  • Firmware version:
  • Hardware:
  • Toolchain:
  • SDK:

Checklist:

  • [] My code follows the style guidelines of this project
  • [] I have performed a self-review of my code
  • [] I have commented my code, particularly in hard-to-understand areas
  • [] I have made corresponding changes to the documentation
  • [] My changes generate no new warnings
  • [] I have added tests that prove my fix is effective or that my feature works
  • [] New and existing unit tests pass locally with my changes
  • [] Any dependent changes have been merged and published in downstream modules

dustinxie avatar Jan 04 '24 01:01 dustinxie

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

7 New issues
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

sonarqubecloud[bot] avatar Jan 04 '24 01:01 sonarqubecloud[bot]

Codecov Report

Attention: Patch coverage is 26.92308% with 38 lines in your changes are missing coverage. Please review.

Project coverage is 77.01%. Comparing base (d716bb9) to head (1e46af9). Report is 29 commits behind head on master.

:exclamation: Current head 1e46af9 differs from pull request most recent head b7e4bf8. Consider uploading reports for the commit b7e4bf8 to get more accurate results

Files Patch % Lines
db/db_versioned.go 0.00% 38 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4041      +/-   ##
==========================================
+ Coverage   76.51%   77.01%   +0.50%     
==========================================
  Files         340      342       +2     
  Lines       29273    29369      +96     
==========================================
+ Hits        22397    22618     +221     
+ Misses       5761     5654     -107     
+ Partials     1115     1097      -18     

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

codecov[bot] avatar Mar 28 '24 01:03 codecov[bot]

pls add more details as context in the description

Liuhaai avatar Apr 12 '24 22:04 Liuhaai

From my understand, the idea of pr is to build a mapping for deduplicated data. Changing the implementation of KVStore is more reasonable than changing boltdb itself, where does simple kv storage jobs.

Liuhaai avatar Apr 15 '24 18:04 Liuhaai

From my understand, the idea of pr is to build a mapping for deduplicated data. Changing the implementation of KVStore is more reasonable than changing boltdb itself, where does simple kv storage jobs.

it's not changing boltdb, rather it's using boltdb's underlying API to construct a KVStore that can return multiple versions of value for the same key

dustinxie avatar Apr 15 '24 22:04 dustinxie