Comments (6)
If mmap()
and storing the data uncompressed are both OK then plain table may be of use - https://github.com/facebook/rocksdb/wiki/PlainTable-Format, https://github.com/facebook/rocksdb/wiki/RocksDB-In-Memory-Workload-Performance-Benchmarks
Otherwise you'd use block-based table and configure a large enough block cache to hold everything in memory.
Beyond that, what features to use depends on your workload/requirements
from rocksdb.
If
mmap()
and storing the data uncompressed are both OK then plain table may be of use - https://github.com/facebook/rocksdb/wiki/PlainTable-Format, https://github.com/facebook/rocksdb/wiki/RocksDB-In-Memory-Workload-Performance-BenchmarksOtherwise you'd use block-based table and configure a large enough block cache to hold everything in memory.
Beyond that, what features to use depends on your workload/requirements
plaintable is an SST file that supports pure memory. What do I do if I want to use pure memory functionality?
from rocksdb.
If
mmap()
and storing the data uncompressed are both OK then plain table may be of use - https://github.com/facebook/rocksdb/wiki/PlainTable-Format, https://github.com/facebook/rocksdb/wiki/RocksDB-In-Memory-Workload-Performance-BenchmarksOtherwise you'd use block-based table and configure a large enough block cache to hold everything in memory.
Beyond that, what features to use depends on your workload/requirements
rocksdb::Options options;
options.table_factory.reset(NewPlainTableFactory());
options.prefix_extractor.reset(NewFixedPrefixTransform(8));
options.allow_mmap_reads = true;
Is that the way?
from rocksdb.
Yes. Just make sure the prefix_extractor
you are setting reflects what kind of range scans you will be doing (with plain table, range scan needs to be within a key prefix). If you aren't doing range scans you could try using NewNoopTransform()
.
from rocksdb.
allow_mmap_reads
If I use PlainTable, do I need to set BlockCache?
from rocksdb.
There is no way to set block cache for plain table users. That is usually OK since block cache's usual purpose is caching block-based table blocks. There won't be any such blocks for plain table users.
from rocksdb.
Related Issues (20)
- Is it possible to make the db.get operation after db.close without exception? HOT 3
- Feature Request: Graceful upgrade
- There is an error when I am compilling rocksDB version above 8.10.0 with zenFS 2.1.4 HOT 1
- Doc bug: CustomFilterPolicy example
- Feature request: check if prefix exists without seeking HOT 5
- intermittent segfault with small database with multiple column families HOT 2
- coredump when trying to repair database
- Rocksdb crash when upgrade from 6.6.3 to 8.0 HOT 1
- ZSTD_TrainDictionary runs even when the compression is set to kNoCompression for a given level HOT 4
- can I reuse a rocksdb writebatch by calling rocksdb_writebatch_clear?
- TtlDb.java doesn't set default column family handle HOT 4
- Discussion: requiring minimum of C++20 HOT 10
- Enable/Disable CacheEntryRoleOptions::chargedfor CacheEntryRole DataBlock is not supported on Ubuntu only HOT 5
- rocksdb Open may read over 160MB from an sst file in one Read request to file system
- Windows GitHub Action build of RocksDB failing silently without marking job as failed HOT 1
- Memory Leak with rocksdb version 6.6.3 ? HOT 6
- function scoped static variable destruct early and cause a crash when used with ASAN HOT 5
- Java release for 9.0 HOT 5
- deadlock caused by calling SetOptions() in OnStallConditionsChanged()
- Service internal error: RocksDB open error: IO error: No such file or directory: while unlink() file:
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rocksdb.