4

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 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?

Cœur
  • 37,241
  • 25
  • 195
  • 267

1 Answers1

2

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
  • 34,704
  • 19
  • 73
  • 95