ClusterLabs / anvil

The Anvil! Intelligent Availability™ Platform, mark 3
5 stars 6 forks source link

Something is constantly writing to 'sessions', even when nothing has changed #520

Closed digimer closed 9 months ago

digimer commented 10 months ago

I was noticing frequent DB resyncs, and the root cause is that the 'sessions' table is constantly being updated, despite nothing in the data actually changing. I believe this is coming from the UI;

anvil=# SELECT * FROM history.sessions ORDER BY modified_date DESC LIMIT 10; SELECT COUNT(*) FROM history.sessions;
 history_id |             session_uuid             |          session_host_uuid           |          session_user_uuid           | session_salt | session_user_agent |         modified_date         
------------+--------------------------------------+--------------------------------------+--------------------------------------+--------------+--------------------+-------------------------------
       4993 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:51.71388-04
       4992 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:51.383893-04
       4991 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:46.663442-04
       4990 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:41.615823-04
       4989 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:41.354393-04
       4988 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:36.578299-04
       4987 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:31.526188-04
       4986 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:31.242938-04
       4985 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:26.491961-04
       4984 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:21.449429-04
(10 rows)

 count 
-------
  3977
(1 row)

Wait a few seconds;

anvil=# SELECT * FROM history.sessions ORDER BY modified_date DESC LIMIT 10; SELECT COUNT(*) FROM history.sessions;
 history_id |             session_uuid             |          session_host_uuid           |          session_user_uuid           | session_salt | session_user_agent |         modified_date         
------------+--------------------------------------+--------------------------------------+--------------------------------------+--------------+--------------------+-------------------------------
       4998 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:21:07.115261-04
       4997 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:21:06.87761-04
       4996 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:21:01.823844-04
       4995 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:21:01.438678-04
       4994 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:56.769743-04
       4993 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:51.71388-04
       4992 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:51.383893-04
       4991 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:46.663442-04
       4990 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:41.615823-04
       4989 | cf34faf6-b09c-46e7-88f7-e11684f78bee | e57cd018-f426-4205-aeff-6220d1cfa69c | d4849342-1c5f-4e2a-973c-25889bcc6e88 |              |                    | 2023-11-03 19:20:41.354393-04
(10 rows)

 count 
-------
  3982
(1 row)

Normally, using Database->insert_or_update_sessions should handle not actually updating the DB unless something has changed. If this is not being used and the DB is being written to directly, a check needs to be made to only update if something has actually changed. The update rate is about 1/sec so the DB will grow quickly at this rate.

Marking this as 'high' as I believe I can mitigate this on the backend for now. If not, this is urgent.