Commit Graph

144 Commits

Author SHA1 Message Date
Paul Wells
de7532b5a1 split room and participant services (#2205)
* merge

* tidy

* deps
2023-10-31 21:28:21 -07:00
Paul Wells
a5abf61a56 update psrpc (#2188) 2023-10-25 20:20:49 -07:00
Paul Wells
48dba9d589 reduce closing signal stream log level (#2182) 2023-10-24 17:46:07 -07:00
Paul Wells
325e5ca753 add psrpc room service (#2171)
* add psrpc room service

* update deps

* disable by default

* feedback

* config

* test
2023-10-22 22:49:38 -07:00
David Zhao
d6ebc081d5 Use random NodeID instead of MAC based (#2029)
Makes it possible to run multiple instances of livekit-server locally.

Also enables Signal Relay by default as default signal proxy.
2023-09-02 17:36:55 -07:00
David Zhao
981fb7cac7 Adding license notices (#1913)
* Adding license notices

* remove from config
2023-07-27 16:43:19 -07:00
Raja Subramanian
f11a7a229f Remove unnecessary check (#1806) 2023-06-19 16:40:05 +05:30
Raja Subramanian
40f5902d36 Consistently use connID as log tag (#1801) 2023-06-17 21:02:02 +05:30
Raja Subramanian
12db469297 Better tracking of signalling connection. (#1794)
* Better tracking of signalling connection.

- Reason for closing signaling channel.
- ConnectionID attached to request source/response sink

* Tests
2023-06-15 12:53:34 +05:30
Paul Wells
5f3ea75a1e conditionally block on signal relay close (#1722) 2023-05-18 13:53:20 -07:00
Paul Wells
e03b7ef8de start signal relay sessions with the correct node (#1721)
* start signal relay sessions with the correct node

* enable signal relay in multiregion integration test
2023-05-18 12:39:02 -07:00
Raja Subramanian
c79e0ce06f Make signal close async. (#1711)
* Make signal close async.

Left notes about async close in code.

Also reducing retry config timeout
- Timeout to 7.5 seconds (making it 1/4th of current config)
- max retry to 4 seconds
- so, it can do 4 tries now in 7.5 seconds (with retries ending at 0.5
  seconds, 1.5 seconds, 3.5 seconds, 7.5 seconds). The change of max to
  4 seconds is not really needed, but it lined up with 7.5. So, made the
  change.

* update comments a bit
2023-05-16 14:08:17 +05:30
Paul Wells
fc09cacfce increase level for signal stream closed log messages (#1660)
* increase level for signal stream closed log messages

* ensure stream closes on signal close receipt

* cleanup
2023-04-27 08:30:40 -07:00
Paul Wells
f9f89cd7cf close signal with reliable message (#1658)
* close signal with reliable message

* update protocol
2023-04-26 22:59:39 -07:00
David Colburn
ab6c994db4 update protocol/psrpc (#1643)
* update protocol/psrpc

* metadata references
2023-04-21 12:43:20 -07:00
Paul Wells
70041f004f create signalStats from out of order join (#1640) 2023-04-20 03:27:41 -07:00
Paul Wells
422a28551e record signal read failure metrics (#1639) 2023-04-19 15:33:42 -07:00
Paul Wells
96f3aaa587 free signal join response to gc after forwarding (#1619) 2023-04-16 17:38:09 -07:00
Paul Wells
9c64d71e91 update message counter in signal relay (#1620) 2023-04-16 08:40:23 -07:00
Raja Subramanian
ac266fbcd6 Support subscriber_allow_pause connect option (#1612)
* Support subscriber_allow_pause connect option

* optional subscriber_allow_pause field
2023-04-13 17:00:32 +05:30
Paul Wells
eb095db70a Batch signal retries (#1593)
* batch signal retries

* cleanup

* update protocol

* range check message dedup

* update protocol with codegen

* block while draining

* only log send timeouts

* cleanup

* cleanup

* cleanup

* typo

* update config yaml options

* update protocol
2023-04-09 18:18:21 -07:00
Paul Wells
6b0cb33c53 set participant node for redis router in signal service (#1584) 2023-04-05 16:08:25 -07:00
Paul Wells
234f7ea5cb read batched signal messages (#1583)
* batch signal messages

* update protcol
2023-04-05 14:41:52 -07:00
Paul Wells
6636e37664 add prometheus psrpc metrics observer (#1571)
* add prometheus psrpc metrics observer

* record rpc error counts

* update psrpc

* update protocol
2023-04-05 03:50:43 -07:00
Paul Wells
aaab3b8ce8 fix signal client message buffer size (#1561)
* fix signal client message buffer size

* update psrpc dep
2023-03-29 16:34:45 -07:00
David Colburn
191a9e8014 update core to 0.0.5 (#1540)
* update core

* sort imports

* fix typos

* redundant types
2023-03-22 16:53:23 -07:00
Paul Wells
04150c044b count active signal sessions (#1519)
* count active signal sessions

* fix

* generate fake
2023-03-14 17:35:32 -07:00
Paul Wells
54bf7e0dac allow configuring signal message buffer size (#1504)
* allow configuring signal message buffer size

* update psrpc
2023-03-08 17:34:14 -08:00
Paul Wells
2c93d55e5c add stream retry middleware for signalling (#1503) 2023-03-08 00:51:19 -08:00
Paul Wells
e22de045ba add signal psrpc service (#1485)
* add signal psrpc service

* update protocol dep

* refactor for cloud

* update psrpc

* pr feedback
2023-03-03 15:49:46 -08:00
David Zhao
ea12e1477f Update to go-redis v9. Fixed Redis cluster support (#1415)
* Update to go-redis v9. Fixed Redis cluster support
2023-02-12 22:22:21 -08:00
David Zhao
9a7ea7a2fa Close previous request channels when during initial retry (#1409)
So we don't leave abandoned requests hanging on the media instance
2023-02-09 17:27:33 -08:00
cnderrauber
8b6dab780c Add reconnect reason and signal rtt calculation (#1381)
* Add connect reason and signal rtt calculate

* Update protocol

* solve comment
2023-02-06 11:12:25 +08:00
David Zhao
2fa46e2df4 Retry initial connection attempt should it fail (#1335)
Sometimes the initial selected node could fail. In that case, we'll give it a few more attempts to locate a media node for the session instead of failing it after the first try.
2023-01-25 22:59:57 -08:00
Dan McFaul
9e3ca1e989 adding rtc_init stat (#1316)
* adding rtc_initiated stat

* clean up signal and rtc init/connected

* update naming and break out stats update funcs

* update protocol dependency
2023-01-23 12:49:15 -07:00
Raja Subramanian
e6bbf07089 Comment out memstats worker. (#1239) 2022-12-19 22:37:34 +05:30
Raja Subramanian
80a4dc574a Fallback to participant key if base62 is not available (#1223) 2022-12-13 05:01:23 +05:30
Raja Subramanian
b2df257ac6 base62 encode user provided name/identity. (#1220) 2022-12-10 13:02:31 +05:30
Raja Subramanian
2cad63fe9a Create response channel before sending StartSession (#1208) 2022-12-05 00:11:52 +05:30
Benjamin Pracht
c735668f67 Use the redis.UniversalClient interface instead of *redis.Client when interacting with go-redis (#1149)
* Use the redis.UniversalClient interface instead of *redis.Client when interacting with go-redis

* Update protocol to v1.2.1
2022-11-07 17:27:28 -08:00
Raja Subramanian
1e8cc0dc76 Consolidate getMemoryStats (#1122)
* Consolidate getMemoryStats

* Avoid divide-by-0
2022-10-26 09:16:39 +05:30
cnderrauber
441053b7fa add participant id when client reconnect (#988) 2022-09-07 15:56:56 +08:00
cnderrauber
f365481dde unify resume/restart in single/multi node mode (#946) 2022-08-23 18:22:44 +08:00
Ramakrishna Chilaka
677b7c16d1 removing piBy180 from critical path (#821) 2022-07-11 16:02:51 -07:00
Dan McFaul
aa0df2813f deleting nonRtc rooms and fixing race when deleting rooms (#721) 2022-05-27 09:45:22 -06:00
Raja Subramanian
11fb079a4f Catching a few more races reported by go test -race ./... (#713)
* Fix a few more races

* Make sure room store on leave has correct count

* Revert logger change to reduce diff
2022-05-25 07:32:25 +05:30
David Zhao
26700ea135 Add back region when hydrating ParticipantInit. (#648)
It was left out in the previous PR #646
2022-04-24 09:07:33 -07:00
David Zhao
b7d22c4f34 Fix MessageChannel leaks (#646) 2022-04-22 10:53:20 -07:00
David Zhao
59112b9200 Increase default message channel from 200 -> 10k (#638) 2022-04-20 16:34:00 -07:00
Raja Subramanian
8535f3d5b9 Redis AdaptiveStream (#631)
* Redis AdaptiveStream

* Fix adaptive stream while tarnsferring from start session
2022-04-20 10:48:32 +05:30