Задать вопрос
AshBlade
@AshBlade
Просто хочу быть счастливым

Как реализуются лицензии по ядрам?

Некоторые ПО продаются с лицензией на определенное кол-во ядер (1С, EventStore и др).

Меня интересует вопрос о том, как это реализуется в коде. Пока мое предположение такое: на старте определяется лицензия -> макс кол-во ядер и на основании этого создается пул потоков заданного размера (или меньше, если есть обязательные). Т.к. планировщик распределит потоки на эти ядра.

Но это только догадка. Возможно есть и другие способы реализации этого или же я ошибаюсь.
  • Вопрос задан
  • 55 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
но зачем усложнять, если можно просто систему спросить?
Ответ написан
Комментировать
@rPman
Задача делится на две
1. определение конфигурации
2. защита от мошенничества

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

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

В конце концов взламывается все, вопрос только в цене
Ответ написан
Комментировать
Vamp
@Vamp
определяется лицензия -> макс кол-во ядер и на основании этого создается пул потоков заданного размера
Так оно и есть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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