Хранение и поиск объект-объект / значение-значение - PullRequest
0 голосов
/ 27 мая 2020

У меня есть кортежи объектов, например (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 ? Есть ли способ лучше?

...