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

Add useBaseAddress to OptionTypeInfo #397

Merged
merged 261 commits into from
Nov 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
261 commits
Select commit Hold shift + click to select a range
59495ff
Update HISTORY and bump version to 7.7.2
riversand963 Oct 5, 2022
6296ac6
Fix bug in HyperClockCache ApplyToEntries; cleanup (#10768)
pdillinger Oct 6, 2022
eb9a80f
Update HISTORY and version.h for 7.7.3
pdillinger Oct 11, 2022
7e4c534
Init
rtpro May 24, 2022
c7e17a2
SPDB-126: status: don't include private headers from public headers
isaac-io Jun 15, 2021
1e7d495
build: fix clang diagnostics
isaac-io Jun 20, 2021
d7ddc9b
tests: add initialisation in gtest in order to resolve a GCC diagnostic
isaac-io May 19, 2021
1c72bf7
tests: resolve GCC diagnostics
isaac-io May 20, 2021
707cb4b
build: compilation fixes
Yuval-Ariel May 17, 2022
7b7c088
SPDB-165: build: fix building on CentOS 7 with old versions of gflags…
isaac-io Jul 6, 2021
b801cfe
SPDB-556: build: fix clang 12 compilation errors
isaac-io Mar 9, 2022
daaffd6
SPDB-553: build: support sccache in the CMake config
isaac-io Mar 8, 2022
56134ce
SPDB-181: tests: add missing `override` specifier in gtest to fix a c…
isaac-io Jul 8, 2021
f7b7e1a
SPDB-87: build: fix clang compilation errors
isaac-io Apr 14, 2021
284f164
#15: fault_injection_fs: avoid division by zero in DropRandomUnsynced…
Yuval-Ariel Jun 23, 2022
09157e4
customizable_test: fix breakage caused by SPDB-556 (#27)
isaac-io Jun 23, 2022
e917872
SPDB-209: crash_test: bail if the run failed before the driver killed it
isaac-io Aug 22, 2021
9c831ca
SPDB-225: crash_test: backup last two db states
Yuval-Ariel Jun 14, 2022
f42bc0b
SPDB-229: crash_test: add timestamp and PID to command execution output
isaac-io Oct 6, 2021
54f06e9
SPDB-231: crash_test: clean left-over copies of the database on success
isaac-io Oct 6, 2021
0efaf2a
SPDB-235: crash_test: remove redundant command execution print
isaac-io Oct 6, 2021
b2d6786
SPDB-266: crash_test: fix parsing of boolean arguments
isaac-io Oct 13, 2021
bb89735
SPDB-331: db_stress: fix compare_full_db_state_snapshot with batched …
Yuval-Ariel Jun 27, 2022
4e3f1ca
SPDB-331: crash_test: don't toggle test_batches_snapshots
Yuval-Ariel Jun 23, 2022
66e52b0
SPDB-241: crash_test: add narrow crash test
Yuval-Ariel Jun 23, 2022
2442cdc
SPDB-284: crash_test: increase stress test coverage
Yuval-Ariel Jun 14, 2022
781a88b
SPDB-495: crash_test: disable test_batches_snapshots when cf_consiste…
Yuval-Ariel Jun 14, 2022
7a6441e
SPDB-469: db_stress: add data_block_index_type
Yuval-Ariel Jan 20, 2022
469665b
stress_test: fix test_cf_consistency msg and ..
Yuval-Ariel Jun 27, 2022
1a9490d
git: add clangd cache to .gitignore
isaac-io Apr 6, 2021
8b36673
column_family: make the comparison of the SuperVersion pointer explicit
Yuval-Ariel Jun 6, 2022
50f3e26
Rename rocksdb threads to speedb
speedbmike Jan 31, 2021
b4857b1
log: change log header to SpeeDB
Yuval-Ariel May 17, 2022
da3e7b0
SPDB-467: Report the metadata_cache_options table options to the trace
udi-speedb Jan 17, 2022
dc180a6
SPDB-538: Support configuration of metadata-cache-options in db_bench
udi-speedb Feb 28, 2022
bfe8152
SPDB-632: Print write_buffer_manager size to LOG
Yuval-Ariel Apr 17, 2022
09af7f3
SPDB-347: Add a version number to our builds
isaac-io Nov 25, 2022
6361dfd
SPDB-382: Exclude third party code from the checks
Yuval-Ariel Jul 3, 2022
da63840
SPDB-270: db_bench: add SeekRandomWriteRandom test
Yuval-Ariel Jul 12, 2022
c1aea6f
README: Update to contain a quick start guide for speedb
Nov 23, 2022
62ff2f1
customizable_test: revert the offsetof() build-related fixes (#55)
isaac-io Jul 14, 2022
6e10924
SPDB-180: general: avoid comparing Status using == as it only compare…
isaac-io Jul 8, 2021
33de8af
SPDB-180: tests: avoid comparing Status using == as it only compares …
isaac-io Jul 13, 2022
4d4f9ef
SPDB-156: db_test: add test for - forward the incomplete status on no_io
Yuval-Ariel May 17, 2022
49350fb
SPDB-341: optimistic_transaction_example: fix snapshots leak
isaac-io Nov 16, 2021
96c2dca
SPDB-96: ldb: fix get to print the entire value
isaac-io Apr 27, 2021
326005c
SPDB-534: db_bench: fix rocksdb bug of last_ref assertion
Yuval-Ariel Feb 23, 2022
92e8736
SPDB 521: db_bench: fix SeekRandom and ReadRandomWriteRandom
Yuval-Ariel Jun 20, 2022
4a70aa7
mutable_db_options: fix a Clang 14 build error (#57)
isaac-io Jul 14, 2022
4d6e346
db_bench: reset the last operation time where rate limiting is applied
hilikspdb Jul 10, 2022
d7362f8
Add ability to create MemTableFactory from URI/string to tools
mrambacher Jul 27, 2022
0e4658e
cmake: use the old plugin infra and add support for *_FUNC registrati…
isaac-io Jul 27, 2022
849fb7e
spdb memtable: add a new hash-based memtable
ayulas Aug 4, 2021
bdc04c2
build: always add the Speedb plugin to the build (#87)
isaac-io Jul 31, 2022
d41ef3a
crash_test: add the new memtable as a random choice (#89)
isaac-io Jul 31, 2022
783b0b6
spdb_memtable: fix an unused parameter issue (#91)
isaac-io Jul 31, 2022
88d1e94
crash_test: fix incorrect passing of the memtablerep argument (#93)
isaac-io Aug 1, 2022
35c5e62
crash_test: remove the hash-based memtable from crash test (#98)
isaac-io Aug 1, 2022
477d9c8
CI: initial setup
Nov 23, 2022
e35995f
Update issue templates
rtpro Nov 23, 2022
9de11a8
Devops ci/add build tools (#104)
nathan-bo Aug 3, 2022
8924080
ci: add a /var/tmp volume to the QA tests to fix tests failing (#107)
isaac-io Aug 3, 2022
ca0ca78
new release line network hotfix (#109)
nathan-bo Aug 4, 2022
e916378
release: publish version 2.0.0
isaac-io Aug 4, 2022
1c9a9e1
Create README.md
rtpro Aug 3, 2022
8537dcc
Update README.md
rtpro Aug 9, 2022
234ac3d
#53: Update contributing guide (#59)
isaac-io Aug 16, 2022
badefe6
Update README.md
rtpro Aug 17, 2022
8ffe798
Update CODE_OF_CONDUCT.md
rtpro Aug 18, 2022
2b8346a
build: fix the java test target dependencies (#128)
isaac-io Aug 19, 2022
c4c978a
flush_job: do not roll back memtable flush on CF drop and DB shutdown…
isaac-io Aug 18, 2022
0c30bd7
Update test_fuzz.yml
nathan-bo Aug 22, 2022
96287ff
bloom_test: fix compilation error with GCC 12 (#136)
isaac-io Aug 24, 2022
a13fd1f
build: clean up the Makefile a bit (#118)
isaac-io Aug 9, 2022
add4101
build: allow setting the path to GNU Parallel in the Makefile (#118)
isaac-io Aug 10, 2022
06497e2
licence: remove the GPL as an alternative licence (#118)
isaac-io Aug 9, 2022
c1f151a
docs: update license files to comply with Apache 2.0 (#111)
rtpro Aug 25, 2022
c0d9d0b
Adding logo to readme (#135)
rtpro Aug 30, 2022
48be17d
ci: move fuzz testing to reusable workflow (#133)
nathan-bo Sep 5, 2022
c13de62
plugins: add Plugin Tests to builds (#123)
mrambacher Sep 13, 2022
01128bf
makefile: avoid setting TEST_TMPDIR unnecessarily (#140)
isaac-io Aug 25, 2022
681938d
build: replace usages of egrep with grep -E (#166)
isaac-io Sep 16, 2022
5d2c7ea
crash_test: clean up DB copies in whitebox and narrow test (#159)
isaac-io Sep 19, 2022
229fa84
#34: set purges as Pri::Low
Yuval-Ariel Jun 28, 2022
c5c7e56
db: Fixes for db_test2 and deletefile_test
AmnonHanuhov Sep 6, 2022
324514e
Accurate memory tracking of immutable memory (#132)
udi-speedb Aug 17, 2022
36627aa
Update logo dark mode
rtpro Nov 23, 2022
380dfac
db_bench: allow setting avoid_unnecessary_blocking_io (#183)
isaac-io Sep 29, 2022
76049b5
makefile: fix shell tab-completions (#147)
isaac-io Aug 30, 2022
6c14e1d
makefile: fix parallel `make check` failing on the first run (#177)
isaac-io Sep 23, 2022
17b0e81
fix a typo
jsteemann Sep 30, 2022
c000d6c
docs: fix a broken link in the contributing guide (#153)
dinga-dinga Oct 3, 2022
8f7ea10
docs: update HISTORY.md (#189)
bosmatt Oct 3, 2022
0011841
CI: run stress tests for 1hr instead of 500secs
Yuval-Ariel Oct 3, 2022
f162f8a
cmake: allow running the tests in parallel like in the Makefile (#102)
isaac-io Aug 2, 2022
2dbc6bb
makefile: rework the dependency graph for faster test runs startup (#…
isaac-io Aug 22, 2022
9ae2752
tools: Make FilterPolicy settable via URI/CreateFromString (#71)
mrambacher Jul 28, 2022
d1540fe
options: fix documentation from #34 purges set to LOW
Yuval-Ariel Oct 20, 2022
05055a6
options: change the default value for compaction threads to 8 (#169)
isaac-io Oct 19, 2022
f9c553c
Speedb's Paired Block Bloom (#29)
udi-speedb Jul 11, 2022
b78a738
tests: fix breakage caused by the compaction threads value change (#197)
isaac-io Oct 23, 2022
72799b2
paired_filter: fix copyright and licence headers (#199) (#204)
isaac-io Oct 24, 2022
77d8bea
build: clean up the build configuration to allow rebranding (#64)
isaac-io Aug 25, 2022
b0a6256
build: rename artefacts from RocksDB to Speedb (#64)
isaac-io Jul 25, 2022
3715f3d
scripts: rename RocksDB references to Speedb (#64)
isaac-io Nov 24, 2022
a9e9f3d
general: replace RocksDB references in strings with Speedb (#64)
isaac-io Jul 25, 2022
b293388
tools: replace RocksDB version information with the Speedb version (#64)
isaac-io Jul 25, 2022
bc766ae
build: update zlib to 1.2.13 (#206)
isaac-io Nov 24, 2022
2ea92d9
Added questions section to the README file
bosmatt Oct 26, 2022
894e51a
ci: fix the release pipeline
isaac-io Oct 26, 2022
b9f0f18
release: publish version 2.1.0
Oct 26, 2022
5f08895
cmake: clean up on successful runs and randomise test scheduling (#202)
isaac-io Oct 24, 2022
d0dbefe
build: add a version build-tag for non-release builds (#156)
isaac-io Nov 25, 2022
fe0d0ea
build: support ccache and sccache in the Makefile build (#170)
isaac-io Sep 21, 2022
461e6f6
crashtest: fix 0 value of data_block_hash_table_util_ratio (#214)
Yuval-Ariel Nov 6, 2022
78ad8e7
memtable_list: avoid rolling back memtable flush on CF drop (#144)
isaac-io Aug 30, 2022
9138814
deletefile_test: fix breakage caused by the compaction threads change…
isaac-io Nov 7, 2022
567c8d5
docs: Update README.md (#212)
Yuval-Ariel Nov 25, 2022
c8b0dba
docs: readme typo fix (#223)
azmisaquib Nov 9, 2022
cf2fbe3
docs: fix instructions for building Speedb in README.md and INSTALL.md
isaac-io Nov 10, 2022
2f2e344
ci: build a release without a debug tag (#228)
isaac-io Nov 10, 2022
b482ff7
build: correctly handle merge commits when calculating a build tag (#…
isaac-io Nov 9, 2022
b14e9df
db_test2: fix BackgroundPurgeTest (#236)
Yuval-Ariel Nov 11, 2022
f29c535
docs: Update HISTORY.md README.md (#239)
bosmatt Nov 25, 2022
6c4895c
db_bench: Fix a bug when destructing a Benchmark with multiple db-s (…
udi-speedb Nov 10, 2022
8a85b53
hash spd memtable (#98)
ayulas Nov 14, 2022
eadf04b
db_bench: add benchmark - seektodeletedranges (#200)
Yuval-Ariel Nov 14, 2022
cf0fceb
db_bench: Make -statistics_string behave as -statistics (#248)
udi-speedb Nov 17, 2022
a936fdb
docs: Add db_bench README
bosmatt Nov 27, 2022
6d3349b
QA tool to check artifacts (#120)
RoyBenMoshe Nov 20, 2022
9190699
ci: added db_bench_README.txt to db_bench-speedb-V.tar.gz (#253)
maxb-io Nov 25, 2022
24f28fa
cmake: Fix build for rebase 7.7.3 (#264)
Yuval-Ariel Nov 25, 2022
a9ecde4
java makefile: fix dependencies
Yuval-Ariel Nov 25, 2022
67825ec
Fix check sources to ignore GIF files
mrambacher Nov 15, 2022
eb8b39d
rebase 7.7: Fix merge issues
mrambacher Nov 25, 2022
8c8b740
rebase 7.7: fix merge issues
Yuval-Ariel Nov 26, 2022
f3f5521
db_bench: Enhancement - Support multiple benchmarks groups, each with…
udi-speedb Nov 27, 2022
3427275
db_bench: Support control over WBM's allow_stall ctor parameter (#187)
udi-speedb Nov 24, 2022
abf2272
db_bench: Enhancement - Allow specifying the db-s to use in each group
udi-speedb Nov 27, 2022
810110f
db_bench: fix compiler warnings (#263)
Yuval-Ariel Nov 28, 2022
1dc9082
db_bench: ErrorExit from static func compiler error (#277)
Yuval-Ariel Nov 28, 2022
c528ec8
build: Add gtest-parallel to project
AmnonHanuhov Nov 22, 2022
553c63b
Update README.md (#280)
bosmatt Dec 5, 2022
badbbc6
Update README.md (#291)
bosmatt Dec 7, 2022
934b849
db_stress: Support control over WBM's allow_stall (#287)
udi-speedb Dec 7, 2022
ed71d66
db_bench: Support '--groups' in addition to '-groups' (#283)
udi-speedb Dec 14, 2022
a8226e7
unit tests: disable CompactionServiceTest.RemoteEventListener (#300)
Yuval-Ariel Dec 18, 2022
14177a2
generic switch memtable allows the ability to pre create memtable tha…
ayulas Dec 14, 2022
51efd6d
Smaller batch size in the paired bloom filter (#161)
udi-speedb Dec 14, 2022
0ceb2d6
misc: add build properties info to LOG file (#262)
RoyBenMoshe Dec 18, 2022
f1846de
Dynamic Delay: new feature - Dynamic Delay (#276)
Yuval-Ariel Dec 19, 2022
e097334
Proactive Flushes (#155)
udi-speedb Sep 29, 2022
b5ae932
unit tests: disable LoadCustomizableTest.LoadMemTableRepFactoryTest (…
ayulas Dec 21, 2022
bed23e3
Proactive Flushes: compilation warnings fix (#304)
Yuval-Ariel Dec 21, 2022
7d6ad9d
release: publish version 2.2.0
Dec 21, 2022
f34368c
Update artifact-release.yml
maxb-io Dec 21, 2022
14a511c
Update artifact-release.yml
maxb-io Dec 21, 2022
be12d4d
Update artifact-release.yml
maxb-io Dec 21, 2022
3cccb33
release: publish version 2.3.0
Dec 21, 2022
16b67f4
Update version.h
maxb-io Dec 21, 2022
520d978
Update version.h
maxb-io Dec 21, 2022
c8e7bfb
release: publish version 2.3.0
Dec 21, 2022
12f8bc7
Update version.h
maxb-io Dec 21, 2022
a846525
release: publish version 2.3.0
Dec 21, 2022
91c7b6c
Update version.h
maxb-io Dec 21, 2022
a2c3d50
release: publish version 2.2.0
Dec 22, 2022
2f46760
Delayed Writes: fix L0 calc bug (#310)
Yuval-Ariel Dec 25, 2022
9ae26fb
Print WBM's cache info to log (#312)
udi-speedb Dec 25, 2022
1e6fd16
artifacts check tool: update readme file (#293)
RoyBenMoshe Jan 1, 2023
ba4939d
unit tests: fix CompactionServiceTest.RemoteEventListener (#314)
Yuval-Ariel Jan 6, 2023
6a577bc
Update README.md
bosmatt Jan 8, 2023
8a81432
build: remove the dependency on GNU Parallel for running unit tests (…
AmnonHanuhov Nov 15, 2022
fa31dd3
db_bench: set db_bench defaults to speedbs (#61)
Yuval-Ariel Jan 1, 2023
14486a6
Use malloc/free for LRUHandle instead of new[]/delete[] (#10884)
ltamasi Oct 27, 2022
1e29d09
Update HISTORY and version for 7.7.4
pdillinger Oct 28, 2022
f553739
Reduce heap operations for range tombstone keys in iterator (#10877)
cbi42 Oct 27, 2022
f6b9267
Update HISTORY and version.h for 7.7.5
cbi42 Oct 28, 2022
30691f0
Fix async_io failures in case there is error in reading data (#10890)
akankshamahajan15 Nov 1, 2022
e47981d
Update HISTORY and version.h for 7.7.6
akankshamahajan15 Nov 3, 2022
6d4e92a
Fix async_io regression in scans (#10939)
akankshamahajan15 Nov 11, 2022
a78ece4
Fix db_stress failure in async_io in FilePrefetchBuffer (#10949)
akankshamahajan15 Nov 15, 2022
68378ff
Update HISTORY and version.h for 7.7.7
akankshamahajan15 Nov 15, 2022
4155158
Add some async read stats (#10947)
Nov 14, 2022
be39240
Fix flush picking non-consecutive memtables (#10921)
ajkr Nov 4, 2022
692f785
Fix CompactionIterator flag for penultimate level output (#10967)
ajkr Nov 22, 2022
dcceb07
fixup HISTORY.md
ajkr Nov 24, 2022
278ce6c
Prevent iterating over range tombstones beyond `iterate_upper_bound` …
cbi42 Nov 28, 2022
66413ff
update HISTORY.md and version.h for 7.7.8
ajkr Nov 28, 2022
1247fca
Spdb memtable: improve performance (#298)
ayulas Dec 18, 2022
38b4ac1
add speedb is awesome example to support new getting started instruct…
RoyBenMoshe Feb 1, 2023
24be917
db_bench: align used tests (#325)
Yuval-Ariel Jan 10, 2023
0582054
windows build failed in speedb_paired_bloom_internal files due to bad…
ayulas Feb 2, 2023
1d3804f
unit_tests: Generate new db dir per test (#353)
mrambacher Feb 7, 2023
ed180bf
MAC_build: Add F_BARRIERFSYNC (#319)
mrambacher Feb 7, 2023
a30c67a
db_bench: Fix compilation issues on Mac (#393)
mrambacher Feb 8, 2023
61974b1
Add Injection and NoSyncFS (#380)
mrambacher Feb 9, 2023
acd646b
Add useBaseAddress to OptionTypeInfo
mrambacher Feb 10, 2023
b76dd95
live config changes: add RefreshOptions method (#294)
mrambacher Feb 11, 2023
5344acd
db_bench: fix for issue (#290) (#370)
andy-byers Feb 11, 2023
fa371b1
Paired-Bloom-Filter: Balancing rounding to batches between the bottom…
noamhaham Feb 13, 2023
2369e50
AXV512: don't use XXH3_accumulate_512 with ASAN (#398)
Yuval-Ariel Feb 14, 2023
a83f8b8
util: Add DECLARE_uint32 to gflags compatibility (#396)
AmnonHanuhov Feb 14, 2023
c2372d3
Report to Log the Index size per CF - LRU Cache Only (#338)
udi-speedb Feb 14, 2023
883a9a2
Remove dead lines
mrambacher Feb 14, 2023
ae78980
release: publish version 2.3.0
Feb 15, 2023
ea5b771
fault_injection_fs: Add back accidental revert in DropRandomUnsyncedD…
mrambacher Feb 15, 2023
6b5eb12
Add speedb licenses to code (#409)
ofriedma Feb 23, 2023
354c6a1
CI: Enforce writing licenses inside source files (#410)
ofriedma Feb 23, 2023
86a6dbf
Makefile: Use speedb libs in `build_size` target (#399)
AmnonHanuhov Feb 28, 2023
a35a064
ci job test_fuzz - removed saving logs to s3, it is not needed as the…
maxb-io Jan 30, 2023
9530d03
removed AWS credentials as they are not required, were used for uploa…
maxb-io Mar 1, 2023
0d43a01
Win build: Replace uint with unsinged int (Windows Build Failure) (#421)
udi-speedb Mar 12, 2023
2574f8f
Global Write Controller: share write controller across dbs (#346)
Yuval-Ariel Feb 23, 2023
3a1541a
added ci_macos.yml file for automation of tests and builds on MacOS (…
maxb-io Mar 19, 2023
cffb516
added ci_windows.yml for automation of tests and build on Windows (#435)
maxb-io Mar 19, 2023
ee8beac
added a step that copies thirdparty.inc from external dir to the spee…
maxb-io Mar 19, 2023
19d5597
Global delay bug fix: use credits only under mutex (#438)
Yuval-Ariel Mar 22, 2023
3abde67
crashtest: dont reroll skip_list or HashSpdRepFactory (#452)
Yuval-Ariel Mar 29, 2023
ed310b7
options: Forward declare WriteBufferManager (#279)
AmnonHanuhov Mar 29, 2023
c2ec2e5
CI windows: switched VC 2019 to VC 2022 in the ci_windows.yml in orde…
maxb-io Mar 29, 2023
e1fa41e
dynamic delay: fix pending bytes rate calculation (#451)
Yuval-Ariel Apr 2, 2023
033718d
Write Flow: Spdb WF (#445)
ayulas Apr 3, 2023
df25119
TTL: Skip expired object when using DBWithTtl (#403)
ofriedma Apr 4, 2023
e1955f3
added readline-dev package to the alpine container in the CI test (#463)
maxb-io Apr 4, 2023
4091672
adding beezcli and ttl support (#427)
ofriedma Apr 5, 2023
de9aacd
release: publish version 2.4.0
Apr 5, 2023
0a218cd
added temporary workflow to test artifact build with readline-dev ins…
maxb-io Apr 5, 2023
a2a7fac
466 artifact build fails due to beezcli is missing (#468)
maxb-io Apr 5, 2023
09a50e4
466 artifact build fails due to beezcli is missing (#469)
maxb-io Apr 5, 2023
1e6cabf
release: publish version 2.5.0
Apr 5, 2023
836f97e
466 artifact build fails due to beezcli is missing (#470)
maxb-io Apr 5, 2023
8ef7469
release: publish version 2.4.0
Apr 5, 2023
6f4d068
Write Flow: Reduce debug logs (#472)
ayulas Apr 17, 2023
5817370
Java FilterPolicy: Add Filter::CreateFromString to Java (#387)
mrambacher Apr 19, 2023
236de93
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Apr 20, 2023
0961fc2
Add unit test for kBaseAddress
mrambacher Apr 24, 2023
b2a28e4
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Aug 4, 2023
425e7d8
Fix merge issues
mrambacher Aug 7, 2023
4d0b3fe
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Oct 16, 2023
5f6114c
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Oct 19, 2023
0af152b
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Oct 19, 2023
48eda08
Make format
mrambacher Oct 19, 2023
ad67f74
Update HISTORY
mrambacher Oct 19, 2023
4579252
Fix merge issue
mrambacher Oct 19, 2023
c211316
Another make format
mrambacher Oct 19, 2023
b4d3b0b
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Oct 20, 2023
5bf40a5
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Oct 24, 2023
eee34eb
Revert two unchanged files
mrambacher Oct 30, 2023
5f34349
Merge remote-tracking branch 'upstream/main' into Speedb/OptionsAddrO…
mrambacher Oct 30, 2023
a9e53a5
Add license
mrambacher Oct 30, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
* LOG Reporting: add reporting capabilities to the WriteController and the WriteBufferManager by saving the Loggers of the dbs which are using them internally and issuing WARN msgs to these Loggers whenever the state of the WC and WBM changes in regards to delaying (#556).
* Enable speedb features: Use Scoped Pinning Policy in Enable speedb feature (#459).
* sst_dump: display metaindex_handle and the index_handle's offset and size in footer information (#404).
* Added a kUseBaseAddress flag and GetBaseOffset flag to OptionTypeInfo. If this flag is set and a function is used for processing options, the function is passed the base address of the struct rather than the specific field (#397)
* Static Pinning: Set the default for mid-percent capacity threshold in scoped pinning policy to 70 (#689).
* db_bench: Add support for individual scoped pinning policy parameters (#687).

Expand Down Expand Up @@ -435,6 +436,10 @@ Based on RocksDB 7.2.2
* Fix a bug in key range overlap checking with concurrent compactions when user-defined timestamp is enabled. User-defined timestamps should be EXCLUDED when checking if two ranges overlap.
* Fixed a bug where the blob cache prepopulating logic did not consider the secondary cache (see #10603).
* Fixed the rocksdb.num.sst.read.per.level, rocksdb.num.index.and.filter.blocks.read.per.level and rocksdb.num.level.read.per.multiget stats in the MultiGet coroutines
* Fix a bug in io_uring_prep_cancel in AbortIO API for posix which expects sqe->addr to match with read request submitted and wrong paramter was being passed.
* Fixed a regression in iterator performance when the entire DB is a single memtable introduced in #10449. The fix is in #10705 and #10716.
* Fix a bug in io_uring_prep_cancel in AbortIO API for posix which expects sqe->addr to match with read request submitted and wrong paramter was being passed.
* Fixed a regression in iterator performance when the entire DB is a single memtable introduced in #10449. The fix is in #10705 and #10716.

### Public API changes
* Add `rocksdb_column_family_handle_get_id`, `rocksdb_column_family_handle_get_name` to get name, id of column family in C API
Expand Down
5 changes: 3 additions & 2 deletions db/column_family.cc
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@
#include "port/port.h"
#include "rocksdb/convenience.h"
#include "rocksdb/table.h"
#include "rocksdb/utilities/options_type.h"
#include "rocksdb/write_controller.h"
#include "table/merging_iterator.h"
#include "util/autovector.h"
Expand Down Expand Up @@ -221,8 +222,8 @@ ColumnFamilyOptions SanitizeOptions(const ImmutableDBOptions& db_options,
size_t clamp_max = std::conditional<
sizeof(size_t) == 4, std::integral_constant<size_t, 0xffffffff>,
std::integral_constant<uint64_t, 64ull << 30>>::type::value;
ClipToRange(&result.write_buffer_size, (static_cast<size_t>(64)) << 10,
clamp_max);
OptionTypeInfo::ClipToRange(&result.write_buffer_size,
(static_cast<size_t>(64)) << 10, clamp_max);
// if user sets arena_block_size, we trust user to use this value. Otherwise,
// calculate a proper value from writer_buffer_size;
if (result.arena_block_size <= 0) {
Expand Down
7 changes: 0 additions & 7 deletions db/db_impl/db_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -2852,13 +2852,6 @@ extern uint64_t FindMinPrepLogReferencedByMemTable(
VersionSet* vset,
const autovector<const autovector<MemTable*>*>& memtables_to_flush);

// Fix user-supplied options to be reasonable
template <class T, class V>
static void ClipToRange(T* ptr, V minvalue, V maxvalue) {
if (static_cast<V>(*ptr) > maxvalue) *ptr = maxvalue;
if (static_cast<V>(*ptr) < minvalue) *ptr = minvalue;
}

inline Status DBImpl::FailIfCfHasTs(
const ColumnFamilyHandle* column_family) const {
column_family = column_family ? column_family : DefaultColumnFamily();
Expand Down
3 changes: 2 additions & 1 deletion db/db_impl/db_impl_open.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
#include "monitoring/persistent_stats_history.h"
#include "options/options_helper.h"
#include "rocksdb/table.h"
#include "rocksdb/utilities/options_type.h"
#include "rocksdb/wal_filter.h"
#include "test_util/sync_point.h"
#include "util/rate_limiter.h"
Expand Down Expand Up @@ -64,7 +65,7 @@ DBOptions SanitizeOptions(const std::string& dbname, const DBOptions& src,
if (max_max_open_files == -1) {
max_max_open_files = 0x400000;
}
ClipToRange(&result.max_open_files, 20, max_max_open_files);
OptionTypeInfo::ClipToRange(&result.max_open_files, 20, max_max_open_files);
TEST_SYNC_POINT_CALLBACK("SanitizeOptions::AfterChangeMaxOpenFiles",
&result.max_open_files);
}
Expand Down
99 changes: 76 additions & 23 deletions include/rocksdb/utilities/options_type.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,15 @@ enum class OptionTypeFlags : uint32_t {
kCompareLoose = ConfigOptions::kSanityLevelLooselyCompatible,
kCompareExact = ConfigOptions::kSanityLevelExactMatch,

kMutable = 0x0100, // Option is mutable
kRawPointer = 0x0200, // The option is stored as a raw pointer
kShared = 0x0400, // The option is stored as a shared_ptr
kUnique = 0x0800, // The option is stored as a unique_ptr
kAllowNull = 0x1000, // The option can be null
kDontSerialize = 0x2000, // Don't serialize the option
kDontPrepare = 0x4000, // Don't prepare or sanitize this option
kStringNameOnly = 0x8000, // The option serializes to a name only
kMutable = 0x00100, // Option is mutable
kRawPointer = 0x00200, // The option is stored as a raw pointer
kShared = 0x00400, // The option is stored as a shared_ptr
kUnique = 0x00800, // The option is stored as a unique_ptr
kAllowNull = 0x01000, // The option can be null
kDontSerialize = 0x02000, // Don't serialize the option
kDontPrepare = 0x04000, // Don't prepare or sanitize this option
kStringNameOnly = 0x08000, // The option serializes to a name only
kUseBaseAddress = 0x10000, // Pass the base (instead of offset) to functions
};

inline OptionTypeFlags operator|(const OptionTypeFlags& a,
Expand Down Expand Up @@ -251,6 +252,7 @@ using ValidateFunc = std::function<Status(
const std::string& /*name*/, const void* /*addr*/)>;

class OptionProperties : public std::unordered_map<std::string, std::string> {};

// A struct for storing constant option information such as option name,
// option type, and offset.
class OptionTypeInfo {
Expand Down Expand Up @@ -324,13 +326,7 @@ class OptionTypeInfo {
// @return InvalidArgument if the value is not found in the map
[map](const ConfigOptions&, const std::string& name,
const std::string& value, void* addr) {
if (map == nullptr) {
return Status::NotSupported("No enum mapping ", name);
} else if (ParseEnum<T>(*map, value, static_cast<T*>(addr))) {
return Status::OK();
} else {
return Status::InvalidArgument("No mapping for enum ", name);
}
return StringToEnum<T>(name, map, value, static_cast<T*>(addr));
});
info.SetSerializeFunc(
// Uses the map argument to convert the input enum into
Expand All @@ -340,14 +336,8 @@ class OptionTypeInfo {
// @return InvalidArgument if the enum is not found in the map
[map](const ConfigOptions&, const std::string& name, const void* addr,
std::string* value) {
if (map == nullptr) {
return Status::NotSupported("No enum mapping ", name);
} else if (SerializeEnum<T>(*map, (*static_cast<const T*>(addr)),
value)) {
return Status::OK();
} else {
return Status::InvalidArgument("No mapping for enum ", name);
}
return EnumToString<T>(name, map, *static_cast<const T*>(addr),
value);
});
info.SetEqualsFunc(
// Casts addr1 and addr2 to the enum type and returns true if
Expand Down Expand Up @@ -736,6 +726,26 @@ class OptionTypeInfo {
return static_cast<char*>(base) + offset_;
}

// Returns either the base or the base+offset address,
// depending on the kUseBaseAddress flag
template <typename T>
const void* GetBaseOffset(const void* base, const std::function<T>& f) const {
if (f != nullptr && IsEnabled(OptionTypeFlags::kUseBaseAddress)) {
return base;
} else {
return GetOffset(base);
}
}

template <typename T>
void* GetBaseOffset(void* base, const std::function<T>& f) const {
if (f != nullptr && IsEnabled(OptionTypeFlags::kUseBaseAddress)) {
return base;
} else {
return GetOffset(base);
}
}

template <typename T>
const T* GetOffsetAs(const void* base) const {
const void* addr = GetOffset(base);
Expand Down Expand Up @@ -825,6 +835,33 @@ class OptionTypeInfo {
Status Validate(const DBOptions& db_opts, const ColumnFamilyOptions& cf_opts,
const std::string& name, const void* opt_ptr) const;

template <typename E>
static Status StringToEnum(
const std::string& name,
const std::unordered_map<std::string, E>* const map,
const std::string& value, E* e) {
if (map == nullptr) {
return Status::NotSupported("No enum mapping ", name);
} else if (ParseEnum(*map, value, e)) {
return Status::OK();
} else {
return Status::InvalidArgument("No mapping for enum ", name);
}
}
template <typename E>
static Status EnumToString(
const std::string& name,
const std::unordered_map<std::string, E>* const map, E e,
std::string* value) {
if (map == nullptr) {
return Status::NotSupported("No enum mapping ", name);
} else if (SerializeEnum(*map, e, value)) {
return Status::OK();
} else {
return Status::InvalidArgument("No mapping for enum ", name);
}
}

// Parses the input opts_map according to the type_map for the opt_addr
// For each name-value pair in opts_map, find the corresponding name in
// type_map If the name is found:
Expand Down Expand Up @@ -948,6 +985,22 @@ class OptionTypeInfo {
constexpr static const char* kIdPropName() { return "id"; }
constexpr static const char* kIdPropSuffix() { return ".id"; }

// Fix user-supplied options to be reasonable
template <class T, class V>
static void ClipToMin(T* ptr, V minvalue) {
if (static_cast<V>(*ptr) < minvalue) *ptr = minvalue;
}
template <class T, class V>
static void ClipToMax(T* ptr, V maxvalue) {
if (static_cast<V>(*ptr) > maxvalue) *ptr = maxvalue;
}

template <class T, class V>
static void ClipToRange(T* ptr, V minvalue, V maxvalue) {
ClipToMin(ptr, minvalue);
ClipToMax(ptr, maxvalue);
}

static std::string MakePrefix(const std::string& prefix,
const std::string& name) {
if (prefix.empty()) {
Expand Down
Loading