Nano Hash - криптовалюты, майнинг, программирование

Как лучше всего создать работающий целочисленный идентификатор в хранилище данных AppEngine?

По разным причинам мне нужен уникальный текущий целочисленный идентификатор для моих сущностей, хранящихся в Google AppEngine. Автоматически сгенерированный тип ключа имеет такое поведение, но он не начинается с 1 (или 0) и не гарантирует, что сгенерированная целая часть будет исходить из непрерывной последовательности.

Как лучше всего реализовать это в AppEngine? Есть ли поддержка со стороны СХД? Чтобы добавить сложности, мне может понадобиться сделать это для сущностей из разных групп сущностей, а это означает, что я не могу просто получить самый высокий идентификатор прямо сейчас и сохранить сущность со следующим идентификатором в транзакции. Может быть, memcache — это то, что нужно?

Изменить:

Я еще не реализовал это, но чтобы прояснить идею memcache. Я знаю, что memcache ненадежен, но на практике он, вероятно, не будет терять данные «слишком часто», чтобы снизить производительность. По сути, у меня была бы запись memcache для последнего использованного идентификатора, обновляющая ее (каким-то образом атомарно) всякий раз, когда я создаю новый объект и использую этот идентификатор. В случае, если memcache не имеет значения для этой записи, я бы получил самый высокий идентификатор, выполнив запрос к моим объектам, отсортированным по идентификатору, и обновил memcache (если только это еще не сделал кто-то другой). Единственная проблема, которую я вижу с этим прямо сейчас, была бы атомарностью операции в целом, если бы сохранение моего нового объекта также было частью транзакции. Мысли..?


  • Это будет нелегко. Memcache ненадежен. Почему вы хотите, чтобы этот идентификатор автоматически увеличивался? Вероятно, есть лучшее решение. 15.04.2010
  • Я согласен с тем, что сказал @Jason - сообщите нам свои ограничения, и мы предложим решение. 15.04.2010
  • Возможно, есть лучший способ, но у меня есть причина, по которой мне нужны целые идентификаторы, упорядоченные по времени создания объекта и упакованные близко друг к другу, в идеале без каких-либо пробелов. Не вдаваясь в подробности, я хочу выполнить определенную операцию над подмножествами данных, идентифицированными одним или несколькими диапазонами в этом идентификаторе, где в идеале вы могли бы подсчитать количество сущностей, на которые подмножество фактически ссылается только из самих диапазонов. 16.04.2010

Ответы:


1

Если вы можете жить без целочисленной части, попробуйте модуль uuid (из стандартной библиотеки): http://docs.python.org/library/uuid.html

Обычно это дает вам строку из 36 символов, хотя, возможно, это далеко не то, что вам нужно. Но это уникально.

15.04.2010
  • Это не непрерывно и даже не монотонно. 15.04.2010
  • @Jacob, если все, что вам нужно, уникально, проще позволить хранилищу данных заполнить идентификатор для вас. Фрид запрашивает непрерывные числа. 15.04.2010
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..