Skip to content
This repository has been archived by the owner on Aug 16, 2023. It is now read-only.

Commit

Permalink
Replace janus_rtc_stream with recording in balancer queries (#164)
Browse files Browse the repository at this point in the history
  • Loading branch information
feymartynov committed Oct 8, 2020
1 parent e052bd1 commit 5e604b3
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 26 deletions.
11 changes: 4 additions & 7 deletions src/app/endpoint/rtc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -779,26 +779,23 @@ mod test {
.backend(&backend1)
.insert(&conn);

let stream1 = factory::JanusRtcStream::new(USR_AUDIENCE)
factory::JanusRtcStream::new(USR_AUDIENCE)
.rtc(&rtc1)
.backend(&backend1)
.insert(&conn);

crate::db::janus_rtc_stream::start(stream1.id(), &conn).unwrap();

let s1a1 = TestAgent::new("web", "s1a1", USR_AUDIENCE);
shared_helpers::insert_agent(&conn, s1a1.agent_id(), rtc1.room_id());

// The second backend has 1 stream with 2 agents but it's not started
// so it doesn't make any load on the backend.
// The second backend has 1 stream with 2 agents.
let rtc2 = shared_helpers::insert_rtc(&conn);

factory::Recording::new()
.rtc(&rtc2)
.backend(&backend2)
.insert(&conn);

let _stream2 = factory::JanusRtcStream::new(USR_AUDIENCE)
factory::JanusRtcStream::new(USR_AUDIENCE)
.rtc(&rtc2)
.backend(&backend2)
.insert(&conn);
Expand All @@ -812,7 +809,7 @@ mod test {
// The new rtc for which we will balance the stream.
let rtc3 = shared_helpers::insert_rtc(&conn);

(rtc3, backend1)
(rtc3, backend2)
})
.unwrap();

Expand Down
38 changes: 19 additions & 19 deletions src/db/janus_backend.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,26 +208,26 @@ const MOST_LOADED_SQL: &str = r#"
SELECT *
FROM room
WHERE backend = 'janus'
AND NOW() < UPPER(time)
AND UPPER(time) BETWEEN NOW() AND NOW() + INTERVAL '1 day'
),
janus_backend_load AS (
SELECT
backend_id,
SUM(GREATEST(taken, reserve)) AS load
FROM (
SELECT DISTINCT ON(backend_id, room_id)
jrs.backend_id,
rec.backend_id,
rtc.room_id,
COALESCE(rl.taken, 0) AS taken,
COALESCE(ar.reserve, 0) AS reserve
FROM janus_rtc_stream AS jrs
FROM recording AS rec
INNER JOIN rtc
ON rtc.id = jrs.rtc_id
ON rtc.id = rec.rtc_id
LEFT JOIN active_room AS ar
ON ar.id = rtc.room_id
LEFT JOIN room_load AS rl
ON rl.room_id = rtc.room_id
WHERE LOWER(jrs.time) IS NOT NULL
WHERE rec.status = 'in_progress'
) AS sub
GROUP BY backend_id
)
Expand Down Expand Up @@ -268,25 +268,25 @@ const LEAST_LOADED_SQL: &str = r#"
SELECT *
FROM room
WHERE backend = 'janus'
AND NOW() < UPPER(time)
AND UPPER(time) BETWEEN NOW() AND NOW() + INTERVAL '1 day'
),
janus_backend_load AS (
SELECT
backend_id,
SUM(taken) AS load
FROM (
SELECT DISTINCT ON(backend_id, room_id)
jrs.backend_id,
rec.backend_id,
rtc.room_id,
COALESCE(rl.taken, 0) AS taken
FROM janus_rtc_stream AS jrs
FROM recording AS rec
INNER JOIN rtc
ON rtc.id = jrs.rtc_id
ON rtc.id = rec.rtc_id
LEFT JOIN active_room AS ar
ON ar.id = rtc.room_id
LEFT JOIN room_load AS rl
ON rl.room_id = rtc.room_id
WHERE LOWER(jrs.time) IS NOT NULL
WHERE rec.status = 'in_progress'
) AS sub
GROUP BY backend_id
)
Expand Down Expand Up @@ -332,26 +332,26 @@ const FREE_CAPACITY_SQL: &str = r#"
SELECT *
FROM room
WHERE backend = 'janus'
AND NOW() < UPPER(time)
AND UPPER(time) BETWEEN NOW() AND NOW() + INTERVAL '1 day'
),
janus_backend_load AS (
SELECT
backend_id,
SUM(GREATEST(taken, reserve)) AS load
FROM (
SELECT DISTINCT ON(backend_id, room_id)
jrs.backend_id,
rec.backend_id,
rtc.room_id,
COALESCE(rl.taken, 0) AS taken,
COALESCE(ar.reserve, 0) AS reserve
FROM janus_rtc_stream AS jrs
FROM recording AS rec
INNER JOIN rtc
ON rtc.id = jrs.rtc_id
ON rtc.id = rec.rtc_id
LEFT JOIN active_room AS ar
ON ar.id = rtc.room_id
LEFT JOIN room_load AS rl
ON rl.room_id = rtc.room_id
WHERE LOWER(jrs.time) IS NOT NULL
WHERE rec.status = 'in_progress'
) AS sub
GROUP BY backend_id
)
Expand All @@ -365,11 +365,11 @@ const FREE_CAPACITY_SQL: &str = r#"
FROM rtc
LEFT JOIN room_load as rl
ON rl.room_id = rtc.room_id
LEFT JOIN janus_rtc_stream AS jrs
ON jrs.rtc_id = rtc.id
AND LOWER(jrs.time) IS NOT NULL AND UPPER(jrs.time) IS NULL
LEFT JOIN recording AS rec
ON rec.rtc_id = rtc.id
AND rec.status = 'in_progress'
LEFT JOIN janus_backend AS jb
ON jb.id = jrs.backend_id
ON jb.id = rec.backend_id
LEFT JOIN janus_backend_load AS jbl
ON jbl.backend_id = jb.id
WHERE rtc.id = $1
Expand Down

0 comments on commit 5e604b3

Please sign in to comment.