gotosocial/internal/db
kim 7ec1e1332e
[performance] overhaul struct (+ result) caching library for simplicity, performance and multiple-result lookups (#2535)
* rewrite cache library as codeberg.org/gruf/go-structr, implement in gotosocial

* use actual go-structr release version (not just commit hash)

* revert go toolchain changes (damn you go for auto changing this)

* fix go mod woes

* ensure %w is used in calls to errs.Appendf()

* fix error checking

* fix possible panic

* remove unnecessary start/stop functions, move to main Cache{} struct, add note regarding which caches require start/stop

* fix copy-paste artifact... 😇

* fix all comment copy-paste artifacts

* remove dropID() function, now we can just use slices.DeleteFunc()

* use util.Deduplicate() instead of collate(), move collate to util

* move orderByIDs() to util package and "generify"

* add a util.DeleteIf() function, use this to delete entries on failed population

* use slices.DeleteFunc() instead of util.DeleteIf() (i had the logic mixed up in my head somehow lol)

* add note about how collate differs from deduplicate
2024-01-19 12:57:29 +00:00
..
bundb [performance] overhaul struct (+ result) caching library for simplicity, performance and multiple-result lookups (#2535) 2024-01-19 12:57:29 +00:00
account.go [performance] cache follow, follow request and block ID lists (#2027) 2023-07-31 11:25:29 +01:00
admin.go [feature] Store admin actions in the db, prevent conflicting actions (#2167) 2023-09-04 14:55:17 +01:00
application.go [performance] remove last of relational queries to instead rely on caches (#2091) 2023-08-10 15:08:41 +01:00
basic.go [feature] request blocking by http headers (#2409) 2023-12-18 14:18:25 +00:00
db.go [feature] request blocking by http headers (#2409) 2023-12-18 14:18:25 +00:00
domain.go [feature] Implement explicit domain allows + allowlist federation mode (#2200) 2023-09-21 12:12:04 +02:00
emoji.go [bugfix] Don't copy ptr fields in caches (#2386) 2023-11-27 15:39:44 +00:00
error.go [performance] retry db queries on busy errors (#2025) 2023-07-25 10:34:05 +02:00
headerfilter.go [feature] request blocking by http headers (#2409) 2023-12-18 14:18:25 +00:00
instance.go [bugfix] Don't copy ptr fields in caches (#2386) 2023-11-27 15:39:44 +00:00
list.go [performance] overhaul struct (+ result) caching library for simplicity, performance and multiple-result lookups (#2535) 2024-01-19 12:57:29 +00:00
marker.go [feature] Implement markers API (#1989) 2023-07-29 12:49:14 +02:00
media.go [performance] Tweak media attachment cleanup; replace stale index (#2143) 2023-08-21 14:03:04 +01:00
mention.go [feature] add support for polls + receiving federated status edits (#2330) 2023-11-08 14:32:17 +00:00
notification.go [performance] overhaul struct (+ result) caching library for simplicity, performance and multiple-result lookups (#2535) 2024-01-19 12:57:29 +00:00
params.go [chore] Improve copyright header handling (#1608) 2023-03-12 16:00:57 +01:00
poll.go [bugfix] use a much shorter refresh limit for statuses with polls (#2453) 2023-12-15 15:24:39 +01:00
relationship.go [bugfix] Don't copy ptr fields in caches (#2386) 2023-11-27 15:39:44 +00:00
report.go [feature] List replies policy, refactor async workers (#2087) 2023-08-09 19:14:33 +02:00
rule.go [feature] Instance rules (#2125) 2023-08-19 14:33:15 +02:00
search.go [feature] Hashtag federation (in/out), hashtag client API endpoints (#2032) 2023-07-31 15:47:35 +02:00
session.go [performance] retry db queries on busy errors (#2025) 2023-07-25 10:34:05 +02:00
status.go [bugfix] use a much shorter refresh limit for statuses with polls (#2453) 2023-12-15 15:24:39 +01:00
statusbookmark.go [performance] retry db queries on busy errors (#2025) 2023-07-25 10:34:05 +02:00
statusfave.go [performance] add caching of status fave, boost of, in reply to ID lists (#2060) 2023-08-04 12:28:33 +01:00
tag.go [feature] Hashtag federation (in/out), hashtag client API endpoints (#2032) 2023-07-31 15:47:35 +02:00
thread.go [feature] Status thread mute/unmute functionality (#2278) 2023-10-25 15:04:53 +01:00
timeline.go [feature] Hashtag federation (in/out), hashtag client API endpoints (#2032) 2023-07-31 15:47:35 +02:00
tombstone.go [performance] retry db queries on busy errors (#2025) 2023-07-25 10:34:05 +02:00
user.go [bugfix] Don't copy ptr fields in caches (#2386) 2023-11-27 15:39:44 +00:00