Одним из способов работы с дубликатами является использование алгоритма:
GroupBy в SQL> Найти дубликаты> зацикливать дубликаты
from django.db.models import Max, Count
# Getting duplicate files based on case_no and hearing_date
files = File.objects.values('case_no', 'hearing_date') \
.annotate(records=Count('case_no')) \
.filter(records__gt=1)
# Check the generated group by query
print files.query
# Then do operations on duplicates
for file in files:
File.objects.filter(
case_no=file['case_no'],
hearing_date=file['hearing_date']
)[1:].update(duplicate=True)
В данный момент Терракотовые инструменты предприятия обеспечивают только несколько функций вне версии с открытым исходным кодом вокруг вещей как визуализация и управление (как способность вышибить клиент из кластера). Это продолжит отличаться, и инструменты предприятия, вероятно, будут иметь больше функциональности уровня оператора вокруг вещей как управление и контроль, но можно, конечно, управлять и настроить приложение даже с инструментами с открытым исходным кодом.
Корпоративная лицензия также дает Вам вещи как поддержка, компенсация, и т.д. который может или не может быть так же важен для Вас как инструменты.
Я убедил бы Вас попробовать его за себя. Если требуется видеть пример реального приложения с помощью Терракоты, необходимо проверить это ссылочное веб-приложение, которое было просто выпущено:
Я нахожусь в процессе интеграции Терракоты с моим проектом (средство моделирования сети узла датчика). Приблизительно три недели назад я узнал о Терракоте от одного из моих коллег. И теперь мое приложение использует в своих интересах грид-вычисления с помощью Терракоты. Ниже я суммировал некоторые существенные моменты своего опыта с Терракотой.
Надежда, которая помогает.
Можно хотеть смотреть на JBossCache/PojoCache, который является решением для распределенного кэширования в оперативной памяти. Различие, оно использует простой API для распространения объектов через 'кластер' кэшей, где, поскольку Терракота работает на classloading/jvm уровне.
(У них на самом деле нет своей собственной JVM, но они изменяют классы, поскольку они загружаются, чтобы позволить им быть 'clusterable'),
Наша компания имела большую удачу с JBossCache, я рекомендую проверить его.
Обновление
То, что я вижу в сообщении OP, "хорошо, я действительно не знаю то, в чем мы нуждаемся (таким образом отсутствие подробных требований), но можем быть некоторым enterprizey инструментом, волшебно решит все наши проблемы, известные и непредвиденные? Это было бы потрясающим!"
С архитектурным подходом как это это не собирается лететь. Никакие истории успеха от Teracotta не изменили бы это.
OSS выгодно, когда сообщество вокруг этого может заменить коммерческую поддержку. Предположим, что у парня есть проблема в производстве. Сообщество не может помочь - это является слишком маленьким для неясного продукта как это. Серверы снижаются, бизнес в опасности. Вы видите? Вам нужна коммерческая лицензия заранее. Никакие деньги? Ну, затем Вы не бизнес, и вероятно не собирающийся становиться одним (если ничье согласное для инвестирования в него).
Извините за прерывание Вашего мечтания.
ПО МОЕМУ СКРОМНОМУ МНЕНИЮ:
Терракота является решением по кластеризации. Кластеризация требуется для больших приложений корпоративного класса. Крупные приложения означают большие бюджеты. Большие бюджеты означают, что можно предоставить коммерческую лицензию от Терракоты.
Помещать его в другом отношении: если у Вас нет бюджета для покупки его, это, вероятно, не выгодно для проекта.