# Addressing

The following address types are specified for identification of time series in InfluxDB: *Path, custom address*, and *Hash*. The address specifies which value should be used for *tsid* tag as a time series identifier.

**"Path" address:** Identifies time series by using string path.

**Custom text:** Identifies time series by using custom text.

**"Hash" address:** Identifies time series by using hash-function. Hash is calculated as follows: *SHA1(ServerUID + TimeSeriesUID)*. Thus time series gets the following unique global identifier *LhdB7l4450F/xs1GjJzHGV+k2VU=*. Let’s consider the case of Hash address use. You have 100 one-type distributed Modbus devices to control electrical network parameters. You plan to use 100 instances of Monokot Server to get data from multimeters and to store it in InfluxDB.

By the way for such a large order you will be provided with a very good discount! 🙂

After you configure, debug and start one instance of the server using time series *Path* addressing everything will operate correctly. But if you upload config of the first server to the second and subsequent instances you will get undesirable effect: data from all servers will be randomly written to the same time series because all server instances have the same addressing.

![](/files/GfG9NSvGu3t9IhE3eqeH)

To solve this problem specify *Hash* address for all time series. In this case data will be written correctly: each time series specified in the server will be presented by its own time series in the database. Another way of solving this task can be the use of *Path* addressing together with *Add Server UID to Tag* flag. This method is more convenient for further queries, but *Hash* addressing also has its advantages. *Hash* address is always a fixed-size string (28 bytes). That is why:

* Maximum message body size in the writing request becomes predictable and can be calculated.

For example, let’s consider the following path to the time series: *DrillingRig.VariableFrequencyDriveHouse.MudCirculatingSystem.VerticalSludge Pump1.Voltage* (string size is 90 bytes). Thus when using *Path* addressing you need to send \~900 bytes to the database server to write just 10 values. Big size of the request increases information network load and reduces InfluxDB performance.

* Short values of tags have a positive effect on writing performance into database.
* Short values of tags have a positive effect on fetch performance from database.

Disadvantages of using *Hash* addressing:

* Hash is not human “friendly”. For example, the following hash *6ig0pCCEf4XcZZZqacVATbaNJTU=*  can unambiguously identify time series in the database, but at the same time it doesn’t carry any additional information about the time series. In other words it is impossible to understand which parameter (temperature, pressure, current, torque, etc.) is hidden behind this identifier. In order to map hash address with a certain time series there is a special tool in Monokot Server Administrator which is described below.
* After time series is deleted *Hash* address will be lost forever.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.monokot.io/time-series-and-stores/influxdb-connectivity-store/addressing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
