views:

314

answers:

1

Hello,

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. Does any one can help me? Thanks.

  • 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 nmemb, 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?

A: 

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.

dmeister