5c7badb80f
* Fix correctness of MultiGet across column families with user timestamp. - update to 9.6.0: - New Features * Best efforts recovery supports recovering to incomplete Version with a clean seqno cut that presents a valid point in time view from the user's perspective, if versioning history doesn't include atomic flush. * New option BlockBasedTableOptions::decouple_partitioned_filters should improve efficiency in serving read queries because filter and index partitions can consistently target the configured metadata_block_size. This option is currently opt-in. * Introduce a new mutable CF option paranoid_memory_checks. It enables additional validation on data integrity during reads/scanning. Currently, skip list based memtable will validate key ordering during look up and scans. - Public API Changes * Add ticker stats to count file read retries due to checksum mismatch * Adds optional installation callback function for remote compaction - Behavior Changes * There may be less intra-L0 compaction triggered by total L0 size being too small. We now use compensated file size (tombstones are assigned some value size) when calculating L0 size and reduce the threshold for L0 size limit. This is to avoid accumulating too much data/tombstones in L0. - Bug Fixes * Make DestroyDB supports slow deletion when it's configured in SstFileManager. The slow deletion is subject to the configured rate_bytes_per_sec, but not subject to the max_trash_db_ratio. * Fixed a bug where we set unprep_seqs_ even when WriteImpl() fails. This was caught by stress test write fault injection in WriteImpl(). This may have incorrectly caused iteration creation failure for unvalidated writes or returned wrong result for WriteUnpreparedTxn::GetUnpreparedSequenceNumbers(). OBS-URL: https://build.opensuse.org/package/show/server:database/rocksdb?expand=0&rev=53
148 lines
4.7 KiB
RPMSpec
148 lines
4.7 KiB
RPMSpec
#
|
|
# spec file for package rocksdb
|
|
#
|
|
# Copyright (c) 2024 SUSE LLC
|
|
# Copyright (c) 2024 Andreas Stieger <Andreas.Stieger@gmx.de>
|
|
#
|
|
# 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/
|
|
#
|
|
|
|
|
|
%define lib_name librocksdb9
|
|
%bcond_with jemalloc
|
|
Name: rocksdb
|
|
Version: 9.6.1
|
|
Release: 0
|
|
Summary: Library for embeddable, persistent and fast key-value store
|
|
License: (Apache-2.0 OR GPL-2.0-only) AND BSD-2-Clause
|
|
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
|
|
Patch1: rocksdb-8.0.0-shared-liburing.patch
|
|
Patch2: rocksdb-8.0.0-rpath.patch
|
|
BuildRequires: c++_compiler
|
|
BuildRequires: cmake
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: cmake(Snappy)
|
|
BuildRequires: pkgconfig(bzip2)
|
|
BuildRequires: pkgconfig(liblz4)
|
|
BuildRequires: pkgconfig(liburing)
|
|
BuildRequires: pkgconfig(libzstd)
|
|
BuildRequires: pkgconfig(zlib)
|
|
%if %{with jemalloc}
|
|
BuildRequires: pkgconfig(jemalloc)
|
|
%endif
|
|
# see SR#1075555 for gflags linking failure
|
|
%if 0%{?suse_version} > 1500
|
|
BuildRequires: pkgconfig(gflags)
|
|
%else
|
|
BuildRequires: gflags-devel-static
|
|
%endif
|
|
|
|
%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.
|
|
|
|
%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.
|
|
|
|
%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 \
|
|
-DPORTABLE=1 \
|
|
-DFAIL_ON_WARNINGS=OFF \
|
|
%if !%{with jemalloc}
|
|
-DWITH_JEMALLOC=0 \
|
|
%endif
|
|
-DWITH_SNAPPY=ON \
|
|
-DWITH_LZ4=ON \
|
|
-DWITH_ZLIB=ON \
|
|
-DWITH_ZSTD=ON \
|
|
-DWITH_BZ2=ON \
|
|
-DWITH_TESTS=OFF \
|
|
-DWITH_TOOLS=OFF \
|
|
-DWITH_BENCHMARK_TOOLS=OFF \
|
|
%{nil}
|
|
|
|
%cmake_build
|
|
|
|
%install
|
|
%cmake_install
|
|
find %{buildroot}%{_libdir} -type f -name "*.a" -print -delete
|
|
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
|
|
|
|
%ldconfig_scriptlets -n %{lib_name}
|
|
|
|
%files -n %{lib_name}
|
|
%license COPYING LICENSE.Apache LICENSE.leveldb
|
|
%{_libdir}/librocksdb.so.*
|
|
|
|
%files tools
|
|
%license COPYING LICENSE.Apache LICENSE.leveldb
|
|
%{_bindir}/ldb
|
|
%{_bindir}/sst_dump
|
|
|
|
%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
|