From 1fa31e4a72b773bc0c59ebbac94a49dd0c96e5eb Mon Sep 17 00:00:00 2001 From: "Michael J. Sullivan" Date: Tue, 27 Feb 2024 16:46:15 -0800 Subject: [PATCH] HMMMMM --- edb/server/pgcon/pgcon.pyx | 5 +++++ edb/server/tenant.py | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/edb/server/pgcon/pgcon.pyx b/edb/server/pgcon/pgcon.pyx index 2089a0431f7..3b95682e486 100644 --- a/edb/server/pgcon/pgcon.pyx +++ b/edb/server/pgcon/pgcon.pyx @@ -699,11 +699,14 @@ cdef class PGConnection: async def signal_sysevent(self, event, **kwargs): if self.tenant.get_backend_runtime_params().has_create_database: assert defines.EDGEDB_SYSTEM_DB in self.dbname + print("SIGNAL", event, self.tenant._signal_ctr) event = json.dumps({ 'event': event, 'server_id': self.server._server_id, 'args': kwargs, + 'num': self.tenant._signal_ctr, }) + self.tenant._signal_ctr += 1 query = f""" SELECT pg_notify( '__edgedb_sysevent__', @@ -711,6 +714,7 @@ cdef class PGConnection: ) """.encode() await self.sql_execute(query) + print('DONE SIGNAL') async def sync(self): if self.waiting_for_sync: @@ -2888,6 +2892,7 @@ cdef class PGConnection: event = event_data.get('event') server_id = event_data.get('server_id') + print("GOT ", event, event_data.get('num')) if server_id == self.server._server_id: # We should only react to notifications sent # by other edgedb servers. Reacting to events diff --git a/edb/server/tenant.py b/edb/server/tenant.py index e5d9811ffe2..49d232fc0a4 100644 --- a/edb/server/tenant.py +++ b/edb/server/tenant.py @@ -129,6 +129,7 @@ def __init__( backend_adaptive_ha: bool = False, ): self._pending_cache_changes = 0 + self._signal_ctr = 0 self._cluster = cluster self._tenant_id = self.get_backend_runtime_params().tenant_id @@ -1315,10 +1316,11 @@ async def cancel_and_discard_pgcon( self.release_pgcon(dbname, con, discard=True) async def signal_sysevent(self, event: str, **kwargs) -> None: - if event == 'query-cache-changes' and self._pending_cache_changes > 10: + if event == 'query-cache-changes' and self._pending_cache_changes >= 3: print( "=== query-cache-changes backlog!!", - self._pending_cache_changes + event, + self._pending_cache_changes, ) try: if not self._initing and not self._running: