directory-service: fix slow postgresql queries (#6639)

* add analysis

* implement p1.1 and p1.2

* Update apps/simplex-directory-service/src/Directory/Service.hs

Co-authored-by: Evgeny <evgeny@poberezkin.com>

* update plans

* remove plans

---------

Co-authored-by: Evgeny <evgeny@poberezkin.com>
This commit is contained in:
shandEvgeny authored and GitHub committed 2026-02-18 09:28:39 +00:00
1 parent 764fb27f1c
commit 26e15221f6
7 files changed
+15 -36

No files matched your search

-15
View File
@@ -68,7 +68,6 @@ module Simplex.Chat.Store.Groups
getGroupModerators,
getGroupRelays,
getGroupMembersForExpiration,
getGroupCurrentMembersCount,
deleteGroupChatItems,
deleteGroupMembers,
cleanupHostGroupLinkConn,
@@ -1100,20 +1099,6 @@ getGroupMembersForExpiration db vr user@User {userId, userContactId} GroupInfo {
)
(groupId, userId, userContactId, GSMemRemoved, GSMemLeft, GSMemGroupDeleted, GSMemUnknown)
getGroupCurrentMembersCount :: DB.Connection -> User -> GroupInfo -> IO Int
getGroupCurrentMembersCount db User {userId} GroupInfo {groupId} = do
statuses :: [GroupMemberStatus] <-
map fromOnly
<$> DB.query
db
[sql|
SELECT member_status
FROM group_members
WHERE group_id = ? AND user_id = ?
|]
(groupId, userId)
pure $ length $ filter memberCurrent' statuses
getGroupInvitation :: DB.Connection -> VersionRangeChat -> User -> GroupId -> ExceptT StoreError IO ReceivedGroupInvitation
getGroupInvitation db vr user groupId =
getConnRec_ user >>= \case