Идеи об этой альтернативе ORM + RDBMS? [закрытый]

Я считаю, что использование цикла foreach может быть самым простым:

foreach {a b} $listC {
    lappend listA $a
    lappend listB $b
}

7
задан Community 23 May 2017 в 12:01
поделиться

6 ответов

Поскольку Neo4j упоминается в вопросе, я соглашаюсь с несколькими мыслями об использовании базы данных графика в этом случае. (Я - часть команды Neo4j),

  • получение детей тривиально в дб графика
  • существует реализация Map для neo4j
  • поскольку графики являются собственными к дб графика, который Вы могли рассмотреть, чтобы не сгладить граф объектов, но сохранить данные в узлах и краях/отношениях (это дает Вам больше гибкости в обработке данных),
  • neo4j является полностью транзакционным

С новыми технологиями DB, появляющимися сегодня, нет действительно никакой потребности остаться с RDBMS, если Ваши данные не являются подходящим вариантом для реляционной парадигмы.

2
ответ дан 7 December 2019 в 07:51
поделиться

Интересный.

У меня есть представление, что все мы разрабатываем зоопарк, который включает все уровни абстракции, которые мы обычно используем в наших проектах. И каждый уровень абстракции является совершенно другим животным.

Моя цель состоит в том, чтобы минимизировать количество времени, потраченное на просто уход и питание животных каждый раз, когда это отклоняет меня от решения проблемы под рукой - это является служебным - потраченные впустую ресурсы. Так, чем меньше, более простые уровни абстракции нам может сойти с рук, тем более продуктивны мы.

Я могу обычно делать очень хорошо с двумя beasties - ООП и RDBMS, связанный через хороший, простой, минимальный, DAL ручной работы. Для меня ORM является главным образом служебным - одна абстракция слишком многие и довольно голодный.

Не обесценивайте опцию обработки хранимых процедур как инструмент абстракции, также. Если Вы настоящие довольный SQL, это может быть полезный ресурс для реализации легкого фасада BL, который означает не должным быть думать о проблеме ORM.

И это сообщение предлагает появление альтернатив RDBMS для некоторых требований, так или иначе.

1
ответ дан 7 December 2019 в 07:51
поделиться

Кажется мне, Терракота является идеальным пригодным для Ваших требований:

  • кластеризируйте карту для получения детей через ключи (например, кластеризируемая Карта)
  • карта карт - без проблем
  • никакой явный журнал мусорного ведра - но Терракота уже не сохраняет все к диску, таким образом, полный кластерный перезапуск уже поддерживается
  • интегрированный уже для Затеи Будьте в спящем режиме Поиск и Lucene для поиска
  • Транзакции? Слишком медленный. Используйте кэш в качестве хранилища данных. С персистентностью Вы не будете терять запись данных (кластеризованной) памяти и сочиться назад к DB.

Кроме того, Терракота делает "отражательную" вещь, которую Вы просите - хотя она не использует отражение, поскольку это слишком медленно. Это использует млрд кубометров. Только изменения распространены в сети.

Hazelcast btw требует сериализации, таким образом, это будет медленно и не преуспеет вообще с картой структуры данных карт (каждый помещенный приведет к полной глубокой копии клона по сети), и это не имеет никакого вида персистентности встроенным.

2
ответ дан 7 December 2019 в 07:51
поделиться

Определенно дайте Терракоте попытку. Это свободно (если Вы не идете Предприятие, которое имеет SLA и поддержку). Это - кластер уровня JVM, если можно так выразиться, таким образом, Вам не связали проблемы с сессиями на нескольких полях позади разрозненных рабочих JK (предполагающий использование этого для приложения J2EE).

Я просто околачиваюсь, поэтому взгляните здесь: http://en.wikipedia.org/wiki/Terracotta_Cluster

ОБНОВИТЕ многочисленные биты информации о Терракоте в сети также, например, http://blog.terracottatech.com/2007/12/fud_of_the_week_terracotta_doe.html

Бит UPDATE2 фона на моих представлениях: Я работаю на компанию с довольно многочисленной аудиторией. У нас есть MySQL предприятия, работающий с ведущим устройством и приблизительно 5 ведомыми устройствами (времена 2 рассмотрения, что у нас есть 2 канала с 4 серверами приложений на канал), с помощью драйвера Репликации MySQL JDBC (для которого мы уже отправили различные патчи). Мы используем Spring2.5/Hibernate3 использование декларативного управления транзакциями JTA Spring, таким образом чтение-onlies переходит к ведомым устройствам. С появлением многочисленных улучшений Ajax на будущей версии нашего сайта повысилась загрузка наших серверов БД - мы создаем сводки оценки для тысяч продуктов для всех стран, принимая во внимание обязанности/налоговые правила для всех этих стран (плюс продвижения и аукционы в реальном времени, работающие все время), затем сервисы Ajax имеют последние цены моментально. Терракота берет загрузку от серверов БД и серверов приложений путем предоставления доступа к этим ценам доступными для всех серверов приложений на слое JVM со всем JVMs через поля связанный. Так, сервер A может обновить цены каждые несколько минут, и если сервер хитов Ajax B, цены сразу доступны. Я знаю, что существуют люди/компании там с подобными компаниями, у которых, вероятно, есть лучшие идеи и реализации, таким образом, я всегда открыт для обсуждения, но это - мои два цента.

Я получаю вдохновение от парней в Facebook также, например, этой очень информативной статье: http://www.facebook.com/note.php?note_id=23844338919

Они говорят о memcached, который необходимо также определенно проверить.

2
ответ дан 7 December 2019 в 07:51
поделиться

Попробуйте GigaSpaces. Я думаю, что они имеют точно, чего Вы требуете, и если я не ошибаюсь существует бесплатная версия для стартапов.

Некоторые понятия:

  • "Пространство" является некоторым местом, где можно сохранить и получить объекты
  • Пространство может быть поддержано любым JDBC-совместимым DB, автоматически (никакой код, только конфигурация)
  • Пространство может быть запущено в Вашем процессе Java, таким образом, все доступы на скорости RAM
  • Пространство может кластеризироваться/делиться всегда, Вы хотите (полное зеркало, неравнодушное, сетка).
  • Поддержки пространства распределенные или локальные транзакции

Проверьте их Wiki, (но только "руководство программиста" - все остальное продает БАКАЛАВРА НАУК).

0
ответ дан 7 December 2019 в 07:51
поделиться

Спасибо за Ваши ответы.

На самом деле Вы говорите о DBS, который является чем-то, что я хочу полностью вынуть из изображения.

Вариант использования, для которого я нацелен, является маленьким/среднего размера кластеризованным веб-приложением запуска (поля в LAN, или в облаке). Это должно получить объекты на уровнях ~RAM-скорости и масштабе довольно легко. Как побочный эффект, не нужно было бы думать об установках сервера БД, несоответствии импеданса, JDBC, кэшах, загрязняя модели предметной области аннотациями, и т.д.

Снова, то, что я хочу выполнить, является чем-то, любят описанный здесь, и я хотел бы иметь еще некоторую обратную связь на идеях относительно фактической реализации (почему Терракота использования вместо Hazelcast, используйте сериализацию или глубоко клонирующийся через отражение или безотносительно, и также главные недостатки подхода как это - например, почему не был бы Вы изменять его для своей текущей установки ORM/DB).

Должно быть супер просто интегрироваться так, это покажет действительно аккуратный Java API, улучшая удобочитаемость кода. Никакое другое программное обеспечение (DB, memcached будет требоваться).

0
ответ дан 7 December 2019 в 07:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: