Search code examples
databaseopentsdbcnosdb

Is there any limit on number of tags we can create in a single database in CnosDB?


OpenTSDB by default support up to 8 tags in a database (see here) and you can modify this in configuration. Since CnosDB is adopting similar tag-set model, is there any limit on the number of tags we can create in a single database here then?

I assume the limitation (if exists) is there to avoid the high series cardinality, which could lead to OOM, right?


Solution

  • By default, there are some settings about tags and series in config file.

    • max-series-per-database = 1000000 The maximum number of series allowed per database before writes are dropped. The default setting is 1000000. Change the setting to 0 to allow an unlimited number of series per database.

    If a point causes the number of series in a database to exceed max-series-per-database, CnosDB will not write the point, and it returns error.

    • max-values-per-tag = 100000 The maximum number of tag values allowed per tag key. The default value is 100000. Change the setting to 0 to allow an unlimited number of tag values per tag key. If a tag value causes the number of tag values of a tag key to exceed max-values-per-tag, then CnosDB will not write the point, and it returns a partial write error.

    Any existing tag keys with tag values that exceed max-values-per-tag will continue to accept writes, but writes that create a new tag value will fail.

    The more tags you have, the more series you have. By default, you can't create unlimited series in a CnosDB instance. If you want to write more series and tags to a CnosDB instance, you can edit the config file and use the command cnosdb --config /config/file/directory to import the config file. Then restart the CnosDB instance, the new config file will go into effect.

    Click here for more information about the config file of CnosDB.