@ -42,20 +42,17 @@ struct LEVELDB_EXPORT Options {
const Comparator * comparator ;
const Comparator * comparator ;
/ / If true , the database will be created if it is missing .
/ / If true , the database will be created if it is missing .
/ / Default : false
bool create_if_missing ;
bool create_if_missing = false ;
/ / If true , an error is raised if the database already exists .
/ / If true , an error is raised if the database already exists .
/ / Default : false
bool error_if_exists ;
bool error_if_exists = false ;
/ / If true , the implementation will do aggressive checking of the
/ / If true , the implementation will do aggressive checking of the
/ / data it is processing and will stop early if it detects any
/ / data it is processing and will stop early if it detects any
/ / errors . This may have unforeseen ramifications : for example , a
/ / errors . This may have unforeseen ramifications : for example , a
/ / corruption of one DB entry may cause a large number of entries to
/ / corruption of one DB entry may cause a large number of entries to
/ / become unreadable or for the entire DB to become unopenable .
/ / become unreadable or for the entire DB to become unopenable .
/ / Default : false
bool paranoid_checks ;
bool paranoid_checks = false ;
/ / Use the specified object to interact with the environment ,
/ / Use the specified object to interact with the environment ,
/ / e . g . to read / write files , schedule background work , etc .
/ / e . g . to read / write files , schedule background work , etc .
@ -65,8 +62,7 @@ struct LEVELDB_EXPORT Options {
/ / Any internal progress / error information generated by the db will
/ / Any internal progress / error information generated by the db will
/ / be written to info_log if it is non - null , or to a file stored
/ / be written to info_log if it is non - null , or to a file stored
/ / in the same directory as the DB contents if info_log is null .
/ / in the same directory as the DB contents if info_log is null .
/ / Default : nullptr
Logger * info_log ;
Logger * info_log = nullptr ;
/ / - - - - - - - - - - - - - - - - - - -
/ / - - - - - - - - - - - - - - - - - - -
/ / Parameters that affect performance
/ / Parameters that affect performance
@ -79,39 +75,30 @@ struct LEVELDB_EXPORT Options {
/ / so you may wish to adjust this parameter to control memory usage .
/ / so you may wish to adjust this parameter to control memory usage .
/ / Also , a larger write buffer will result in a longer recovery time
/ / Also , a larger write buffer will result in a longer recovery time
/ / the next time the database is opened .
/ / the next time the database is opened .
/ /
/ / Default : 4 MB
size_t write_buffer_size ;
size_t write_buffer_size = 4 * 1024 * 1024 ;
/ / Number of open files that can be used by the DB . You may need to
/ / Number of open files that can be used by the DB . You may need to
/ / increase this if your database has a large working set ( budget
/ / increase this if your database has a large working set ( budget
/ / one open file per 2 MB of working set ) .
/ / one open file per 2 MB of working set ) .
/ /
/ / Default : 1000
int max_open_files ;
int max_open_files = 1000 ;
/ / Control over blocks ( user data is stored in a set of blocks , and
/ / Control over blocks ( user data is stored in a set of blocks , and
/ / a block is the unit of reading from disk ) .
/ / a block is the unit of reading from disk ) .
/ / If non - null , use the specified cache for blocks .
/ / If non - null , use the specified cache for blocks .
/ / If null , leveldb will automatically create and use an 8 MB internal cache .
/ / If null , leveldb will automatically create and use an 8 MB internal cache .
/ / Default : nullptr
Cache * block_cache ;
Cache * block_cache = nullptr ;
/ / Approximate size of user data packed per block . Note that the
/ / Approximate size of user data packed per block . Note that the
/ / block size specified here corresponds to uncompressed data . The
/ / block size specified here corresponds to uncompressed data . The
/ / actual size of the unit read from disk may be smaller if
/ / actual size of the unit read from disk may be smaller if
/ / compression is enabled . This parameter can be changed dynamically .
/ / compression is enabled . This parameter can be changed dynamically .
/ /
/ / Default : 4 K
size_t block_size ;
size_t block_size = 4 * 1024 ;
/ / Number of keys between restart points for delta encoding of keys .
/ / Number of keys between restart points for delta encoding of keys .
/ / This parameter can be changed dynamically . Most clients should
/ / This parameter can be changed dynamically . Most clients should
/ / leave this parameter alone .
/ / leave this parameter alone .
/ /
/ / Default : 16
int block_restart_interval ;
int block_restart_interval = 16 ;
/ / Leveldb will write up to this amount of bytes to a file before
/ / Leveldb will write up to this amount of bytes to a file before
/ / switching to a new one .
/ / switching to a new one .
@ -121,9 +108,7 @@ struct LEVELDB_EXPORT Options {
/ / compactions and hence longer latency / performance hiccups .
/ / compactions and hence longer latency / performance hiccups .
/ / Another reason to increase this parameter might be when you are
/ / Another reason to increase this parameter might be when you are
/ / initially populating a large database .
/ / initially populating a large database .
/ /
/ / Default : 2 MB
size_t max_file_size ;
size_t max_file_size = 2 * 1024 * 1024 ;
/ / Compress blocks using the specified compression algorithm . This
/ / Compress blocks using the specified compression algorithm . This
/ / parameter can be changed dynamically .
/ / parameter can be changed dynamically .
@ -139,20 +124,18 @@ struct LEVELDB_EXPORT Options {
/ / worth switching to kNoCompression . Even if the input data is
/ / worth switching to kNoCompression . Even if the input data is
/ / incompressible , the kSnappyCompression implementation will
/ / incompressible , the kSnappyCompression implementation will
/ / efficiently detect that and will switch to uncompressed mode .
/ / efficiently detect that and will switch to uncompressed mode .
CompressionType compression ;
CompressionType compression = kSnappyCompression ;
/ / EXPERIMENTAL : If true , append to existing MANIFEST and log files
/ / EXPERIMENTAL : If true , append to existing MANIFEST and log files
/ / when a database is opened . This can significantly speed up open .
/ / when a database is opened . This can significantly speed up open .
/ /
/ /
/ / Default : currently false , but may become true later .
/ / Default : currently false , but may become true later .
bool reuse_logs ;
bool reuse_logs = false ;
/ / If non - null , use the specified filter policy to reduce disk reads .
/ / If non - null , use the specified filter policy to reduce disk reads .
/ / Many applications will benefit from passing the result of
/ / Many applications will benefit from passing the result of
/ / NewBloomFilterPolicy ( ) here .
/ / NewBloomFilterPolicy ( ) here .
/ /
/ / Default : nullptr
const FilterPolicy * filter_policy ;
const FilterPolicy * filter_policy = nullptr ;
/ / Create an Options object with default values for all fields .
/ / Create an Options object with default values for all fields .
Options ( ) ;
Options ( ) ;
@ -162,26 +145,19 @@ struct LEVELDB_EXPORT Options {
struct LEVELDB_EXPORT ReadOptions {
struct LEVELDB_EXPORT ReadOptions {
/ / If true , all data read from underlying storage will be
/ / If true , all data read from underlying storage will be
/ / verified against corresponding checksums .
/ / verified against corresponding checksums .
/ / Default : false
bool verify_checksums ;
bool verify_checksums = false ;
/ / Should the data read for this iteration be cached in memory ?
/ / Should the data read for this iteration be cached in memory ?
/ / Callers may wish to set this field to false for bulk scans .
/ / Callers may wish to set this field to false for bulk scans .
/ / Default : true
bool fill_cache ;
bool fill_cache = true ;
/ / If " snapshot " is non - null , read as of the supplied snapshot
/ / If " snapshot " is non - null , read as of the supplied snapshot
/ / ( which must belong to the DB that is being read and which must
/ / ( which must belong to the DB that is being read and which must
/ / not have been released ) . If " snapshot " is null , use an implicit
/ / not have been released ) . If " snapshot " is null , use an implicit
/ / snapshot of the state at the beginning of this read operation .
/ / snapshot of the state at the beginning of this read operation .
/ / Default : nullptr
const Snapshot * snapshot ;
ReadOptions ( )
: verify_checksums ( false ) ,
fill_cache ( true ) ,
snapshot ( nullptr ) {
}
const Snapshot * snapshot = nullptr ;
ReadOptions ( ) = default ;
} ;
} ;
/ / Options that control write operations
/ / Options that control write operations
@ -200,13 +176,9 @@ struct LEVELDB_EXPORT WriteOptions {
/ / crash semantics as the " write() " system call . A DB write
/ / crash semantics as the " write() " system call . A DB write
/ / with sync = = true has similar crash semantics to a " write() "
/ / with sync = = true has similar crash semantics to a " write() "
/ / system call followed by " fsync() " .
/ / system call followed by " fsync() " .
/ /
/ / Default : false
bool sync ;
bool sync = false ;
WriteOptions ( )
: sync ( false ) {
}
WriteOptions ( ) = default ;
} ;
} ;
} / / namespace leveldb
} / / namespace leveldb