Как провести рефакторинг и сохранить наш сервис профилей, который тратит много времени на вычисления - PullRequest
0 голосов
/ 01 июля 2019

В настоящее время моя команда работает с сервисом cherrypy. Служба будет отвечать клиентам, когда они запрашивают профиль или несколько профилей.

Эти исходные данные хранятся в XML-файлах и находятся в многоуровневых каталогах. XML-файлы в подкаталогах могут быть дочерними по отношению к XML-файлу в родительских каталогах и будут обрабатываться вместе для создания дочерних профилей. Например:

http://a/

<profile><project>Project A</project></profile>

http://a/b

<profile>
<milestone>Milestone A</milestone>
<milestone>Milestone B</milestone>
</profile>

В этом случае будут созданы два профиля:

(1) ProjectA, MilestoneA

(2) ProjectA, MilestoneB

Таким образом, в нашем случае, если корневой профиль был изменен, тогда все дочерние профили должны быть пересчитаны (всего около 150+ k), в настоящее время мы делаем это в памяти. Мы рассматриваем возможность передачи в базу данных.

Наши данные полуструктурированы. Интересно, какая-нибудь конкретная база данных рекомендуется? Кроме того, если корневой профиль будет снова изменен и все дочерние профили будут пересчитаны, потребуется ли много времени для обновления всех данных в схеме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...