У меня есть кортежи объектов, например (object, blob)
.
Я не могу получить уникальный ключ из объекта, потому что это набор конфигураций от пользователей, и есть много вариантов конфигурации. При отправке конфигураций я должен вернуть уникальный двоичный объект размером, скажем, 10-20 МБ, который может быть сгенерирован серверной частью.
Однако я хочу разместить хранилище значений ключей перед генерацией больших двоичных объектов, чтобы как ускорить работу моего сервиса. Вроде как кеш, но без необходимости истечения срока действия, выселения и т. Д. c.
На этом этапе я могу выбрать хранилище. Я использую GCP, так что капли, скорее всего, будут go в ... барабанную дробь ... хранилище BLOB-объектов. Тем не менее, полностью открыто об остальном.
Я думал о том, чтобы взять таблицу ha sh и выщипнуть слой key
, чтобы получить что-то вроде этого:
object1 -> hash1 -> [(object1, blobURL1)]
object2 -> hash2 -> [(object2, blobURL2), (object3, blobURL3)]
object3 -> hash2 -> points to the same slot as object2
Меня не волнует поисковая оптимизация внутри linkedlist
(нарисованного как array
), я не ожидаю большого количества коллизий. Просто если они возникнут, у меня должен быть надежный способ спуститься вправо blobUrl
. Сравнение пары объектов не представляет большого труда. Кроме того, нет никакого способа поместить его в древовидную структуру, подобную java 8-стилевую оптимизированную HashMap .
Имеет ли смысл мое решение или это полная гиббери sh ? Есть ли способ лучше?