Commit Graph

2331 Commits

Author SHA1 Message Date
Alexander Yastrebov 6c05a9f6b1 fix: reduce `SetAddrs` shards lock contention
Introduces a new lock to make `SetAddrs` calls exclusive.
This allows release of shards lock for the duration of potentially long `newRingShards` call.

`TestRingSetAddrsContention` observes number of pings increased from <1000 to ~40_000.

See https://github.com/go-redis/redis/pull/2190#discussion_r953040289

Updates #2077
2022-11-22 23:55:13 +01:00
Vladimir Mihailenco 5502cf6c3a
Merge pull request #2291 from boatrainlsz/master
feat: add support for SINTERCARD command
2022-11-22 14:50:09 +02:00
Vladimir Mihailenco df9162d541
Merge pull request #2294 from go-redis/fix/conn-tx-pipeline
fix: wrap cmds in Conn.TxPipeline
2022-11-22 14:48:25 +02:00
Vladimir Mihailenco 5053db2f9c fix: wrap cmds in Conn.TxPipeline 2022-11-22 14:30:27 +02:00
Alexander Yastrebov a31c1d6ff0 test: add TestRingSetAddrsContention
See https://github.com/go-redis/redis/pull/2190#discussion_r953040289

Updates #2077
2022-11-21 16:06:22 +01:00
boatrainlsz bc51c61a45 feat: add support for SINTERCARD command 2022-11-21 22:11:23 +08:00
Vladimir Mihailenco 0884e48a21 chore: improve cluster pipeline retries 2022-11-21 11:55:19 +02:00
Vladimir Mihailenco 7335ef65dc chore: cleanup 2022-11-21 11:31:38 +02:00
Vladimir Mihailenco dadd6d2785
Merge pull request #2273 from DomParfitt/add-with-conn-tests
Add withConn tests
2022-11-21 11:03:25 +02:00
Vladimir Mihailenco 2073dc35ea
Merge pull request #2259 from go-redis/dependabot/go_modules/github.com/stretchr/testify-1.8.1
chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1
2022-11-21 11:02:15 +02:00
dependabot[bot] a1cc91272b
chore(deps): bump github.com/stretchr/testify from 1.8.0 to 1.8.1
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.8.0...v1.8.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-21 09:01:39 +00:00
Vladimir Mihailenco 2f82a5d569
Merge pull request #2280 from go-redis/dependabot/go_modules/github.com/onsi/gomega-1.24.1
chore(deps): bump github.com/onsi/gomega from 1.21.1 to 1.24.1
2022-11-21 11:01:01 +02:00
Alexander Yastrebov d83436b321
fix: fixes ring.SetAddrs and rebalance race (#2283)
* fix: fixes ring.SetAddrs and rebalance race

The change ensures atomic update of `c.hash` and `c.shards`.

`BenchmarkRingRebalanceLocked` shows rebalance latency:
```
go test . -run=NONE -bench=BenchmarkRingRebalanceLocked -v -count=10 | benchstat /dev/stdin
name                   time/op
RingRebalanceLocked-8  8.50µs ±14%
```

(Note: it essentially reverts a46b053aa6)
2022-11-21 11:00:00 +02:00
Vladimir Mihailenco bbff4dd5dc chore: fix metrics in redisotel 2022-11-18 15:32:17 +02:00
Vladimir Mihailenco 58e87e00e2
Merge pull request #2286 from go-redis/feat/has-error-prefix
feat: add HasErrorPrefix
2022-11-18 13:21:21 +02:00
Vladimir Mihailenco 44af3c09a7 chore: add more metrics to redisotel 2022-11-17 16:24:16 +02:00
Vladimir Mihailenco d3d8002e89 feat: add HasErrorPrefix 2022-11-17 16:18:04 +02:00
dependabot[bot] d82ec71ad9
chore(deps): bump github.com/onsi/gomega from 1.21.1 to 1.24.1
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.21.1 to 1.24.1.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.21.1...v1.24.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-09 13:52:51 +00:00
Vladimir Mihailenco f9e60f214b chore: update example 2022-11-09 15:51:59 +02:00
Vladimir Mihailenco 90144999eb chore: update readme 2022-11-09 15:18:55 +02:00
Vladimir Mihailenco dd858eaf07 chore: update otel example 2022-11-09 15:16:13 +02:00
Vladimir Mihailenco 1278a8094f chore: sync the doc comment 2022-11-09 14:57:10 +02:00
Vladimir Mihailenco 8f6bc464a5
Merge pull request #2275 from stephaniehingtgen/fix-route-randomly-query-param
Read in the route_randomly parameter correctly in cluster mode
2022-11-09 14:52:17 +02:00
Stephanie Hingtgen f236053735
fix: read in route_randomly query param correctly 2022-11-04 11:17:22 -06:00
Dom Parfitt a54ed5afb2 test: add withConn tests 2022-11-03 10:45:48 +00:00
Vladimir Mihailenco 5350c18740
Merge pull request #2272 from DomParfitt/fix-with-conn-cleanup
Capture error correctly in withConn
2022-11-02 12:07:47 +02:00
Dom Parfitt d1bfaba549 fix: capture error correctly in withConn 2022-11-02 09:11:36 +00:00
Vladimir Mihailenco f1d6bc91b7 chore: add link to an example 2022-10-20 16:44:05 +03:00
Vladimir Mihailenco 517938a6b0 chore: update example 2022-10-19 15:30:35 +03:00
Vladimir Mihailenco 4cb9d14eb6 chore: update changelog 2022-10-17 16:27:10 +03:00
Vladimir Mihailenco 104c757027 chore: improve docker config 2022-10-16 12:12:35 +03:00
Vladimir Mihailenco f16c3a7fee chore: update example 2022-10-16 11:28:12 +03:00
Vladimir Mihailenco 9070a20f41 chore: improve OpenTelemetry example 2022-10-16 11:11:54 +03:00
Vladimir Mihailenco f6940c80ca chore: cleanup changelog 2022-10-14 17:05:15 +03:00
Vladimir Mihailenco 53b3c8c1de
Merge pull request #2253 from go-redis/release/v9.0.0-rc.1
Release/v9.0.0 rc.1
2022-10-14 17:04:13 +03:00
Vladimir Mihailenco e84461f7ed chore: release v9.0.0-rc.1 (release.sh) 2022-10-14 15:19:56 +03:00
Vladimir Mihailenco bbf100d7bb chore: go 1.17 compat 2022-10-14 15:19:45 +03:00
Vladimir Mihailenco 894b0b961b chore: don't update dependencies 2022-10-14 15:18:15 +03:00
Vladimir Mihailenco c306a51f21
Merge pull request #2252 from go-redis/fix/unsub-all
fix: reset pubsub state when unsubscribing from all channels
2022-10-14 15:17:02 +03:00
Vladimir Mihailenco 331e40dc6c fix: reset pubsub state when unsubscribing from all channels 2022-10-14 15:15:06 +03:00
Vladimir Mihailenco 6a8cf3e9d8 chore: fix examples 2022-10-13 09:12:05 +03:00
Vladimir Mihailenco 3e4ae80c12 chore: improve instrumentation example 2022-10-12 17:18:55 +03:00
Vladimir Mihailenco d01dc36c09
Merge pull request #2245 from go-redis/fix/dial-hook
fix: late binding for dial hook
2022-10-12 17:18:27 +03:00
Vladimir Mihailenco eab588ddb5 chore: fix linter 2022-10-12 15:14:26 +03:00
Vladimir Mihailenco 2ec03d9b37 fix: late binding for dial hook 2022-10-12 15:00:06 +03:00
Vladimir Mihailenco 180f107add
Merge pull request #2244 from go-redis/feat/metrics
Add OpenTelemetry Metrics using new hooks
2022-10-12 11:10:06 +03:00
Vladimir Mihailenco 0dff3d1461 feat: add OpenTelemetry metrics instrumentation 2022-10-12 11:09:41 +03:00
Vladimir Mihailenco d07457b6cf
Merge pull request #2243 from go-redis/feat/context-timeout-enabled
feat: add ContextTimeoutEnabled to respect context timeouts and deadl…
2022-10-11 10:41:16 +03:00
Vladimir Mihailenco 41a533cb7b chore: downgrade opentelemetry 2022-10-11 10:37:43 +03:00
Vladimir Mihailenco 58f7149e38 feat: add ContextTimeoutEnabled to respect context timeouts and deadlines 2022-10-11 10:22:42 +03:00