diff options
author | 2024-08-24 11:49:37 +0200 | |
---|---|---|
committer | 2024-08-24 11:49:37 +0200 | |
commit | f23f04e0b1d117be714bf91d5266dab219ed741e (patch) | |
tree | 0b3ddd60d51c8729949c3669993910a7f8f32a7b /internal/cache | |
parent | [performance] ffmpeg ffprobe wrapper improvements (#3225) (diff) | |
download | gotosocial-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.go | 4 | ||||
-rw-r--r-- | internal/cache/db.go | 23 | ||||
-rw-r--r-- | internal/cache/size.go | 11 |
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(>smodel.InteractionApproval{ +func sizeofInteractionRequest() uintptr { + return uintptr(size.Of(>smodel.InteractionRequest{ ID: exampleID, CreatedAt: exampleTime, - UpdatedAt: exampleTime, - AccountID: exampleID, + StatusID: exampleID, + TargetAccountID: exampleID, InteractingAccountID: exampleID, InteractionURI: exampleURI, InteractionType: gtsmodel.InteractionAnnounce, URI: exampleURI, + AcceptedAt: exampleTime, })) } |