Summary:
There is an existing field Options.max_bytes_for_level_multiplier that
sets the multiplier for the size of each level in the database.
This patch introduces the ability to set different multipliers
for every level in the database. The size of a level is determined
by using both max_bytes_for_level_multiplier as well as the
per-level fanout.
size of level[i] = size of level[i-1] * max_bytes_for_level_multiplier
* fanout[i-1]
The default value of fanout is 1, so that it is backward compatible.
Test Plan: make check
Reviewers: haobo, emayanke
Reviewed By: emayanke
CC: leveldb
Differential Revision: https://reviews.facebook.net/D10863
main
parent
c3c13db346
commit
d1aaaf718c
@ -0,0 +1,23 @@ |
||||
// Copyright (c) 2013 Facebook.
|
||||
|
||||
#include <sstream> |
||||
#include <string> |
||||
#include <vector> |
||||
|
||||
namespace leveldb { |
||||
|
||||
using namespace std; |
||||
using std::string; |
||||
using std::vector; |
||||
using std::stringstream; |
||||
|
||||
vector<string> stringSplit(string arg, char delim) { |
||||
vector<string> splits; |
||||
stringstream ss(arg); |
||||
string item; |
||||
while(getline(ss, item, delim)) { |
||||
splits.push_back(item); |
||||
} |
||||
return splits; |
||||
} |
||||
} |
||||
@ -0,0 +1,12 @@ |
||||
// Copyright (c) 2013 Facebook.
|
||||
|
||||
#ifndef STORAGE_LEVELDB_UTIL_STRINGUTIL_H_ |
||||
#define STORAGE_LEVELDB_UTIL_STRINGUTIL_H_ |
||||
|
||||
namespace leveldb { |
||||
|
||||
extern std::vector<std::string> stringSplit(std::string arg, char delim); |
||||
|
||||
} |
||||
|
||||
#endif // STORAGE_LEVELDB_UTIL_STRINGUTIL_H_
|
||||
Loading…
Reference in new issue