Tomasz Grabiec
4ff204c028
Merge 'cache: make all removals of cache items explicit' from Michał Chojnowski
...
This series is a step towards non-LRU cache algorithms.
Our cache items are able to unlink themselves from the LRU list. (In other words, they can be unlinked solely via a pointer to the item, without access to the containing list head). Some places in the code make use of that, e.g. by relying on auto-unlink of items in their destructor.
However, to implement algorithms smarter than LRU, we might want to update some cache-wide metadata on item removal. But any cache-wide structures are unreachable through an item pointer, since items only have access to themselves and their immediate neighbours. Therefore, we don't want items to unlink themselves — we want `cache.remove(item)`, rather than `item.remove_self()`, because the former can update the metadata in `cache`.
This series inserts explicit item unlink calls in places that were previously relying on destructors, gets rid of other self-unlinks, and adds an assert which ensures that every item is explicitly unlinked before destruction.
Closes #11716
* github.com:scylladb/scylladb:
utils: lru: assert that evictables are unlinked before destruction
utils: lru: remove unlink_from_lru()
cache: make all cache unlinks explicit
2022-10-17 12:47:02 +02:00
..
2022-07-04 19:27:06 +02:00
2018-10-02 18:48:23 +01:00
2022-06-21 11:58:13 +03:00
2022-04-12 16:37:11 +03:00
2022-02-24 19:44:50 +03:00
2022-08-05 20:34:07 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-08-08 08:02:27 +03:00
2022-05-13 07:11:58 +02:00
2022-09-20 06:18:51 +03:00
2022-05-13 07:11:58 +02:00
2022-05-13 07:11:58 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-06-02 11:21:05 +03:00
2021-06-06 19:18:49 +03:00
2022-10-17 12:07:27 +02:00
2022-06-23 10:33:35 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-10-02 13:41:40 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-09-09 18:05:46 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-02-24 19:44:29 +03:00
2022-09-16 08:21:02 +03:00
2022-01-18 12:15:18 +01:00
2017-04-17 23:03:15 +03:00
2022-02-28 12:36:03 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-07-27 13:32:36 +03:00
2022-07-27 13:32:36 +03:00
2022-03-25 16:19:26 +02:00
2022-07-11 09:17:30 +02:00
2022-01-18 12:15:18 +01:00
2022-04-26 14:46:42 +03:00
2022-07-26 15:59:33 +03:00
2022-02-22 16:08:52 +01:00
2022-07-05 16:41:09 +02:00
2022-10-03 18:50:06 +03:00
2022-01-18 12:15:18 +01:00
2022-07-27 13:17:27 +03:00
2022-05-13 07:11:58 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-07 13:04:16 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-07-27 16:58:52 +03:00
2022-07-27 16:58:52 +03:00
2022-07-27 16:58:25 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-05-13 07:11:58 +02:00
2022-03-25 16:19:26 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-02-28 12:59:08 +02:00
2022-02-28 12:52:47 +02:00
2022-06-28 19:58:06 -03:00
2022-03-09 16:13:07 +02:00
2022-07-27 13:43:17 +03:00
2022-10-02 13:41:40 +03:00
2022-09-16 13:02:40 +03:00
2022-10-17 12:07:27 +02:00
2022-01-18 12:15:18 +01:00
2022-07-12 00:23:29 +03:00
2022-02-24 19:44:50 +03:00
2022-02-24 19:44:50 +03:00
2022-01-18 12:15:18 +01:00
2022-07-14 11:56:20 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-07-06 08:17:08 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-02-22 16:25:21 +01:00
2022-04-18 12:27:18 +03:00
2022-03-15 11:42:42 +02:00
2022-03-16 12:28:47 +03:00
2022-01-18 12:15:18 +01:00
2022-03-02 19:10:58 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-08-08 17:31:00 +03:00
2022-01-18 12:15:18 +01:00
2022-07-06 08:17:08 +03:00
2022-02-24 19:44:50 +03:00
2022-01-18 12:15:18 +01:00
2022-05-13 07:11:58 +02:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-10-05 10:52:49 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00
2022-08-08 08:02:27 +03:00
2022-08-08 08:13:28 +03:00
2022-01-18 12:15:18 +01:00
2022-01-18 12:15:18 +01:00