I have been trying to find a better Tokyo Cabinet (or Tokyo Tyrant) configuration for my application, but I don't know exactly how. I know what some parameters mean but I want to have a fine tuning control, so I need to know the impact of each one. The Tokyo documentation is really good but not at this point.
TCHDB -> *bool tchdbtune(TCHDB *hdb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*
How do I use: bnum
, apow
and fpow
?
TCBDB -> *bool tcbdbtune(TCBDB *bdb, int32_t lmemb, int32_t nm开发者_如何学编程emb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*
How do I use: lmemb
, nmemb
, bnum
, apow
and fpow
?
TCFDB -> *bool tcfdbtune(TCFDB *fdb, int32_t width, int64_t limsiz);*
How do I use: width
and limsiz
? Note: I am only putting this to get all types of database in the topic, this one is really simple.
TCTDB -> *bool tctdbtune(TCTDB *tdb, int64_t bnum, int8_t apow, int8_t fpow, uint8_t opts);*
How do I use: bnum
, apow
and fpow
?
I stood before the same problem.
But because the results will highly depend on your application, my advise as a two factrial experiment:
- Benchmark your application with a low value and a high value for each parameter (use multiple runs to gain confidence into the results)
- Calculate based on the benchmark results (the effect of each factor)
You have than data that indicates the importance of the parameters. Factors with a high effect are very significant for the performance, factors with a low effect are not important.
You should than fine tune the important parameters.
精彩评论