summaryrefslogtreecommitdiff
path: root/internal/cache
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-08-24 11:49:37 +0200
committerLibravatar GitHub <noreply@github.com>2024-08-24 11:49:37 +0200
commitf23f04e0b1d117be714bf91d5266dab219ed741e (patch)
tree0b3ddd60d51c8729949c3669993910a7f8f32a7b /internal/cache
parent[performance] ffmpeg ffprobe wrapper improvements (#3225) (diff)
downloadgotosocial-f23f04e0b1d117be714bf91d5266dab219ed741e.tar.xz
[feature] Interaction requests client api + settings panel (#3215)
* [feature] Interaction requests client api + settings panel * test accept / reject * fmt * don't pin rejected interaction * use single db model for interaction accept, reject, and request * swaggor * env sharting * append errors * remove ErrNoEntries checks * change intReqID to reqID * rename "pend" to "request" * markIntsPending -> mark interactionsPending * use log instead of returning error when rejecting interaction * empty migration * jolly renaming * make interactionURI unique again * swag grr * remove unnecessary locks * invalidate as last step
Diffstat (limited to 'internal/cache')
-rw-r--r--internal/cache/cache.go4
-rw-r--r--internal/cache/db.go23
-rw-r--r--internal/cache/size.go11
3 files changed, 22 insertions, 16 deletions
diff --git a/internal/cache/cache.go b/internal/cache/cache.go
index 2949d528a..f1c382d11 100644
--- a/internal/cache/cache.go
+++ b/internal/cache/cache.go
@@ -81,7 +81,7 @@ func (c *Caches) Init() {
c.initFollowRequestIDs()
c.initInReplyToIDs()
c.initInstance()
- c.initInteractionApproval()
+ c.initInteractionRequest()
c.initList()
c.initListEntry()
c.initMarker()
@@ -158,7 +158,7 @@ func (c *Caches) Sweep(threshold float64) {
c.DB.FollowRequestIDs.Trim(threshold)
c.DB.InReplyToIDs.Trim(threshold)
c.DB.Instance.Trim(threshold)
- c.DB.InteractionApproval.Trim(threshold)
+ c.DB.InteractionRequest.Trim(threshold)
c.DB.List.Trim(threshold)
c.DB.ListEntry.Trim(threshold)
c.DB.Marker.Trim(threshold)
diff --git a/internal/cache/db.go b/internal/cache/db.go
index c1b87ef96..5e86c92a2 100644
--- a/internal/cache/db.go
+++ b/internal/cache/db.go
@@ -106,8 +106,8 @@ type DBCaches struct {
// Instance provides access to the gtsmodel Instance database cache.
Instance StructCache[*gtsmodel.Instance]
- // InteractionApproval provides access to the gtsmodel InteractionApproval database cache.
- InteractionApproval StructCache[*gtsmodel.InteractionApproval]
+ // InteractionRequest provides access to the gtsmodel InteractionRequest database cache.
+ InteractionRequest StructCache[*gtsmodel.InteractionRequest]
// InReplyToIDs provides access to the status in reply to IDs list database cache.
InReplyToIDs SliceCache[string]
@@ -802,31 +802,36 @@ func (c *Caches) initInstance() {
})
}
-func (c *Caches) initInteractionApproval() {
+func (c *Caches) initInteractionRequest() {
// Calculate maximum cache size.
cap := calculateResultCacheMax(
- sizeofInteractionApproval(),
- config.GetCacheInteractionApprovalMemRatio(),
+ sizeofInteractionRequest(),
+ config.GetCacheInteractionRequestMemRatio(),
)
log.Infof(nil, "cache size = %d", cap)
- copyF := func(i1 *gtsmodel.InteractionApproval) *gtsmodel.InteractionApproval {
- i2 := new(gtsmodel.InteractionApproval)
+ copyF := func(i1 *gtsmodel.InteractionRequest) *gtsmodel.InteractionRequest {
+ i2 := new(gtsmodel.InteractionRequest)
*i2 = *i1
// Don't include ptr fields that
// will be populated separately.
// See internal/db/bundb/interaction.go.
- i2.Account = nil
+ i2.Status = nil
+ i2.TargetAccount = nil
i2.InteractingAccount = nil
+ i2.Like = nil
+ i2.Reply = nil
+ i2.Announce = nil
return i2
}
- c.DB.InteractionApproval.Init(structr.CacheConfig[*gtsmodel.InteractionApproval]{
+ c.DB.InteractionRequest.Init(structr.CacheConfig[*gtsmodel.InteractionRequest]{
Indices: []structr.IndexConfig{
{Fields: "ID"},
+ {Fields: "InteractionURI"},
{Fields: "URI"},
},
MaxSize: cap,
diff --git a/internal/cache/size.go b/internal/cache/size.go
index 4c474fa28..29ab77fbf 100644
--- a/internal/cache/size.go
+++ b/internal/cache/size.go
@@ -190,7 +190,7 @@ func totalOfRatios() float64 {
config.GetCacheFollowRequestMemRatio() +
config.GetCacheFollowRequestIDsMemRatio() +
config.GetCacheInstanceMemRatio() +
- config.GetCacheInteractionApprovalMemRatio() +
+ config.GetCacheInteractionRequestMemRatio() +
config.GetCacheInReplyToIDsMemRatio() +
config.GetCacheListMemRatio() +
config.GetCacheListEntryMemRatio() +
@@ -441,16 +441,17 @@ func sizeofInstance() uintptr {
}))
}
-func sizeofInteractionApproval() uintptr {
- return uintptr(size.Of(&gtsmodel.InteractionApproval{
+func sizeofInteractionRequest() uintptr {
+ return uintptr(size.Of(&gtsmodel.InteractionRequest{
ID: exampleID,
CreatedAt: exampleTime,
- UpdatedAt: exampleTime,
- AccountID: exampleID,
+ StatusID: exampleID,
+ TargetAccountID: exampleID,
InteractingAccountID: exampleID,
InteractionURI: exampleURI,
InteractionType: gtsmodel.InteractionAnnounce,
URI: exampleURI,
+ AcceptedAt: exampleTime,
}))
}