2023-03-22 09:32:31 +01:00
|
|
|
#
|
|
|
|
# spec file for package rocksdb
|
|
|
|
#
|
2024-02-28 16:34:09 +01:00
|
|
|
# Copyright (c) 2024 SUSE LLC
|
2024-01-11 20:58:13 +01:00
|
|
|
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
|
2023-03-22 09:32:31 +01:00
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
|
|
#
|
|
|
|
|
|
|
|
|
2024-03-19 21:57:27 +01:00
|
|
|
%define lib_name librocksdb9
|
2023-03-25 09:21:13 +01:00
|
|
|
%bcond_with jemalloc
|
2023-03-22 09:32:31 +01:00
|
|
|
Name: rocksdb
|
2024-04-18 08:18:46 +02:00
|
|
|
Version: 9.0.1
|
2023-03-22 09:32:31 +01:00
|
|
|
Release: 0
|
Accepting request 1101081 from home:amanzini:branches:server:database
- update to 8.3.2
* Bug Fixes:
Reduced cases of illegally using Env::Default() during static destruction by never destroying the internal PosixEnv itself
- update to 8.3.1
* Performance Improvements:
Fixed higher read QPS during DB::Open() reading files created prior to #11406,
- update to 8.3.0
* New Features:
Introduced a new option block_protection_bytes_per_key, which can be used to enable per key-value integrity protection for in-memory blocks in block cache
Improve the operational safety of publishing a DB or SST files to many hosts by using different block cache hash seeds on different hosts.
Introduced a new option CompactionOptionsFIFO::file_temperature_age_thresholds that allows FIFO compaction to compact files to different temperatures based on key age
Added a new ticker stat to count how many times RocksDB detected a corruption while verifying a block checksum: BLOCK_CHECKSUM_MISMATCH_COUNT.
New statistics rocksdb.file.read.db.open.micros that measures read time of block-based SST tables or blob files during db open.
New statistics tickers for various iterator seek behaviors and relevant filtering, as *_LEVEL_SEEK_*. (#11460)
* Public API Changes:
EXPERIMENTAL: Add new API DB::ClipColumnFamily to clip the key in CF to a certain range. It will physically deletes all keys outside the range including tombstones.
Add MakeSharedCache() construction functions to various cache Options objects, and deprecated the NewWhateverCache() functions with long parameter lists.
Changed the meaning of various Bloom filter stats (prefix vs. whole key), with iterator-related filtering only being tracked in the new *_LEVEL_SEEK_*. stats. (#11460)
* Behavior changes:
For x86, CPU features are no longer detected at runtime nor in build scripts, but in source code using common preprocessor defines.
This will likely unlock some small performance improvements on some newer hardware, but could hurt performance of the kCRC32c checksum,
which is no longer the default, on some "portable" builds. See PR #11419 for details.
* Bug Fixes:
Delete an empty WAL file on DB open if the log number is less than the min log number to keep
Delete temp OPTIONS file on DB open if there is a failure to write it out or rename it
* Performance Improvements:
Improved the I/O efficiency of prefetching SST metadata by recording more information in the DB manifest.
OBS-URL: https://build.opensuse.org/request/show/1101081
OBS-URL: https://build.opensuse.org/package/show/server:database/rocksdb?expand=0&rev=18
2023-07-27 15:39:34 +02:00
|
|
|
Summary: Library for embeddable, persistent and fast key-value store
|
2023-03-23 15:01:21 +01:00
|
|
|
License: (Apache-2.0 OR GPL-2.0-only) AND BSD-2-Clause
|
2023-03-22 09:32:31 +01:00
|
|
|
URL: https://rocksdb.org/
|
|
|
|
Source: https://github.com/facebook/rocksdb/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
|
|
Patch0: rocksdb-8.0.0-reproducible.patch
|
2023-03-22 22:58:24 +01:00
|
|
|
Patch1: rocksdb-8.0.0-shared-liburing.patch
|
|
|
|
Patch2: rocksdb-8.0.0-rpath.patch
|
2024-03-19 21:57:27 +01:00
|
|
|
Patch3: rocksdb-9.0.0-Fix-zstd-typo-in-cmake.patch
|
2023-03-22 09:32:31 +01:00
|
|
|
BuildRequires: c++_compiler
|
|
|
|
BuildRequires: cmake
|
|
|
|
BuildRequires: pkgconfig
|
|
|
|
BuildRequires: cmake(Snappy)
|
|
|
|
BuildRequires: pkgconfig(bzip2)
|
|
|
|
BuildRequires: pkgconfig(liblz4)
|
2023-03-22 22:58:24 +01:00
|
|
|
BuildRequires: pkgconfig(liburing)
|
2023-03-22 09:32:31 +01:00
|
|
|
BuildRequires: pkgconfig(libzstd)
|
|
|
|
BuildRequires: pkgconfig(zlib)
|
2023-03-25 09:21:13 +01:00
|
|
|
%if %{with jemalloc}
|
|
|
|
BuildRequires: pkgconfig(jemalloc)
|
|
|
|
%endif
|
2023-04-21 15:33:22 +02:00
|
|
|
# see SR#1075555 for gflags linking failure
|
|
|
|
%if 0%{?suse_version} > 1500
|
|
|
|
BuildRequires: pkgconfig(gflags)
|
|
|
|
%else
|
|
|
|
BuildRequires: gflags-devel-static
|
|
|
|
%endif
|
2023-03-22 09:32:31 +01:00
|
|
|
|
|
|
|
%description
|
|
|
|
RocksDB is a high performance embedded database for key-value data.
|
|
|
|
It is a fork of LevelDB which was then optimized to exploit many
|
|
|
|
central processing unit (CPU) cores, and make efficient use of fast
|
|
|
|
storage, such as solid-state drives (SSD), for input/output (I/O)
|
|
|
|
bound workloads. It is based on a log-structured merge-tree (LSM tree)
|
|
|
|
data structure.
|
|
|
|
|
|
|
|
%package -n %{lib_name}
|
|
|
|
Summary: Shared library from rocksdb
|
|
|
|
|
|
|
|
%description -n %{lib_name}
|
|
|
|
RocksDB is a high performance embedded database for key-value data.
|
|
|
|
It is a fork of LevelDB which was then optimized to exploit many
|
|
|
|
central processing unit (CPU) cores, and make efficient use of fast
|
|
|
|
storage, such as solid-state drives (SSD), for input/output (I/O)
|
|
|
|
bound workloads. It is based on a log-structured merge-tree (LSM tree)
|
|
|
|
data structure.
|
|
|
|
|
|
|
|
This package holds the shared library of rocksdb.
|
|
|
|
|
2023-03-22 22:58:24 +01:00
|
|
|
%package tools
|
|
|
|
Summary: Utility tools for RocksDB
|
|
|
|
# MariaDB ships /usr/bin/sst_dump - MDEV-14918
|
|
|
|
Conflicts: mariadb
|
|
|
|
|
|
|
|
%description tools
|
|
|
|
RocksDB is a high performance embedded database for key-value data.
|
|
|
|
This package contains utility tools for RocksDB.
|
|
|
|
|
2023-03-22 09:32:31 +01:00
|
|
|
%package devel
|
|
|
|
Summary: Development package for RocksDB
|
|
|
|
Requires: %{lib_name} = %{version}
|
|
|
|
|
|
|
|
%description devel
|
|
|
|
RocksDB is a high performance embedded database for key-value data.
|
|
|
|
It is a fork of LevelDB which was then optimized to exploit many
|
|
|
|
central processing unit (CPU) cores, and make efficient use of fast
|
|
|
|
storage, such as solid-state drives (SSD), for input/output (I/O)
|
|
|
|
bound workloads. It is based on a log-structured merge-tree (LSM tree)
|
|
|
|
data structure.
|
|
|
|
|
|
|
|
This package contains the files needed to compile programs that use
|
|
|
|
the RocksDB library.
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%autosetup -p1
|
|
|
|
|
|
|
|
%build
|
|
|
|
# building tests is disabled, because they require additional instrumentation,
|
|
|
|
# which is build in library in debug mode and adds some overhead.
|
|
|
|
# Warnings: https://github.com/facebook/rocksdb/issues/11043
|
|
|
|
%cmake \
|
Accepting request 1101081 from home:amanzini:branches:server:database
- update to 8.3.2
* Bug Fixes:
Reduced cases of illegally using Env::Default() during static destruction by never destroying the internal PosixEnv itself
- update to 8.3.1
* Performance Improvements:
Fixed higher read QPS during DB::Open() reading files created prior to #11406,
- update to 8.3.0
* New Features:
Introduced a new option block_protection_bytes_per_key, which can be used to enable per key-value integrity protection for in-memory blocks in block cache
Improve the operational safety of publishing a DB or SST files to many hosts by using different block cache hash seeds on different hosts.
Introduced a new option CompactionOptionsFIFO::file_temperature_age_thresholds that allows FIFO compaction to compact files to different temperatures based on key age
Added a new ticker stat to count how many times RocksDB detected a corruption while verifying a block checksum: BLOCK_CHECKSUM_MISMATCH_COUNT.
New statistics rocksdb.file.read.db.open.micros that measures read time of block-based SST tables or blob files during db open.
New statistics tickers for various iterator seek behaviors and relevant filtering, as *_LEVEL_SEEK_*. (#11460)
* Public API Changes:
EXPERIMENTAL: Add new API DB::ClipColumnFamily to clip the key in CF to a certain range. It will physically deletes all keys outside the range including tombstones.
Add MakeSharedCache() construction functions to various cache Options objects, and deprecated the NewWhateverCache() functions with long parameter lists.
Changed the meaning of various Bloom filter stats (prefix vs. whole key), with iterator-related filtering only being tracked in the new *_LEVEL_SEEK_*. stats. (#11460)
* Behavior changes:
For x86, CPU features are no longer detected at runtime nor in build scripts, but in source code using common preprocessor defines.
This will likely unlock some small performance improvements on some newer hardware, but could hurt performance of the kCRC32c checksum,
which is no longer the default, on some "portable" builds. See PR #11419 for details.
* Bug Fixes:
Delete an empty WAL file on DB open if the log number is less than the min log number to keep
Delete temp OPTIONS file on DB open if there is a failure to write it out or rename it
* Performance Improvements:
Improved the I/O efficiency of prefetching SST metadata by recording more information in the DB manifest.
OBS-URL: https://build.opensuse.org/request/show/1101081
OBS-URL: https://build.opensuse.org/package/show/server:database/rocksdb?expand=0&rev=18
2023-07-27 15:39:34 +02:00
|
|
|
-DPORTABLE=1 \
|
2023-03-22 09:32:31 +01:00
|
|
|
-DFAIL_ON_WARNINGS=OFF \
|
2023-03-25 09:21:13 +01:00
|
|
|
%if !%{with jemalloc}
|
|
|
|
-DWITH_JEMALLOC=0 \
|
|
|
|
%endif
|
2023-03-22 09:32:31 +01:00
|
|
|
-DWITH_SNAPPY=ON \
|
|
|
|
-DWITH_LZ4=ON \
|
|
|
|
-DWITH_ZLIB=ON \
|
|
|
|
-DWITH_ZSTD=ON \
|
|
|
|
-DWITH_BZ2=ON \
|
|
|
|
-DWITH_TESTS=OFF \
|
2023-03-22 22:58:24 +01:00
|
|
|
-DWITH_TOOLS=OFF \
|
2023-03-22 09:32:31 +01:00
|
|
|
-DWITH_BENCHMARK_TOOLS=OFF \
|
2023-03-22 22:58:24 +01:00
|
|
|
%{nil}
|
2023-03-22 09:32:31 +01:00
|
|
|
|
|
|
|
%cmake_build
|
|
|
|
|
|
|
|
%install
|
|
|
|
%cmake_install
|
|
|
|
find %{buildroot}%{_libdir} -type f -name "*.a" -print -delete
|
2023-03-22 22:58:24 +01:00
|
|
|
install -dD -m 755 %{buildroot}/%{_bindir}
|
|
|
|
install -m 755 build/tools/ldb %{buildroot}/%{_bindir}/ldb
|
|
|
|
install -m 755 build/tools/sst_dump %{buildroot}/%{_bindir}/sst_dump
|
2023-03-22 09:32:31 +01:00
|
|
|
|
|
|
|
%ldconfig_scriptlets -n %{lib_name}
|
|
|
|
|
|
|
|
%files -n %{lib_name}
|
|
|
|
%license COPYING LICENSE.Apache LICENSE.leveldb
|
|
|
|
%{_libdir}/librocksdb.so.*
|
|
|
|
|
2023-03-22 22:58:24 +01:00
|
|
|
%files tools
|
|
|
|
%license COPYING LICENSE.Apache LICENSE.leveldb
|
|
|
|
%{_bindir}/ldb
|
|
|
|
%{_bindir}/sst_dump
|
|
|
|
|
2023-03-22 09:32:31 +01:00
|
|
|
%files devel
|
|
|
|
%license COPYING LICENSE.Apache LICENSE.leveldb
|
|
|
|
%doc README.md HISTORY.md LANGUAGE-BINDINGS.md
|
|
|
|
%{_includedir}/rocksdb
|
|
|
|
%{_libdir}/librocksdb.so
|
|
|
|
%{_libdir}/pkgconfig/rocksdb.pc
|
|
|
|
%{_libdir}/cmake/rocksdb
|
|
|
|
|
|
|
|
%changelog
|