# Tenzir Node v4.16.0

## 🚀 Features

### Enable selective deletion of lookup table entries

Jun 5, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4274](https://github.com/tenzir/tenzir/pull/4274)

For `lookup-table` contexts, the new `--erase` option for `context update` enables selective deletion of lookup table entries.

The `context update` operator now defaults the `--key <field>` option to the first field in the input when no field is explicitly specified.

### Add percentile aggregation functions

Jun 4, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4273](https://github.com/tenzir/tenzir/pull/4273)

The `p99`, `p95`, `p90`, `p75`, and `p50` aggregation functions calculate commonly used percentiles of grouped values in the `summarize` operator.

### Support multiple publishers

Jun 4, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4270](https://github.com/tenzir/tenzir/pull/4270)

The `publish` operator’s topics no longer have to be unique. Instead, any number of pipelines may use the `publish` operator with the same topic. This enables multi-producer, multi-consumer (MPMC) event routing, where streams of events from different pipelines can now be merged back together in addition to being split.

Inter-pipeline data transfer with the `publish` and `subscribe` operators is now as fast as intra-pipeline data transfer between pipeline operators and utilizes the same amount of memory.

Back pressure now propagates from subscribers back to publishers, i.e., if a pipeline with a `subscribe` operator is too slow then all pipelines with matching `publish` operators will be slowed down to a matching speed. This limits the memory usage of `publish` operators and prevents data loss.

## 🔧 Changes

### Add percentile aggregation functions

Jun 4, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4273](https://github.com/tenzir/tenzir/pull/4273)

The `approximate_median` aggregation function is now called `median`. We found the longer name, despite being more accurate, to be rather unintuitive.

## 🐞 Bug Fixes

### Handle loading of configured and non-configured contexts with the same name

Jun 4, 2024 · [@Dakostu](https://github.com/Dakostu) · [#4224](https://github.com/tenzir/tenzir/pull/4224)

Configured and non-configured contexts with the same name will not cause non-deterministic behavior upon loading anymore. The node will shut down instead.

### Evaluate `ip == subnet` predicates

Jun 3, 2024 · [@dominiklohmann](https://github.com/dominiklohmann) · [#4268](https://github.com/tenzir/tenzir/pull/4268)

Predicates of the form `ip == subnet` and `ip in [subnet1, subnet2, …]` now work as expected.

The `lookup` operator now correctly handles subnet keys when using the `--retro` or `--snapshot` options.

[ Download on GitHub ](https://github.com/tenzir/tenzir/releases/tag/v4.16.0)

[Get the release artifacts and source code.](https://github.com/tenzir/tenzir/releases/tag/v4.16.0)