Идея, необходимая для повышения производительности моей логики

#c# #performance #business-logic

#c# #Производительность #бизнес-логика

Вопрос:

В моем приложении я создаю карту для каждого идентификатора пользователя, которая содержит идентификаторы файлов, к которым у него есть доступ.

Пример:

Идентификатор пользователя — 101 Данные — 100100101

Итак, для каждого пользователя я создаю эту файловую карту. Когда бит равен 1, у него есть доступ к этому файлу; в противном случае он этого не делает. Но моя проблема в том, что у меня 40 000 000 файлов.

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

Как я могу создать высокопроизводительную реализацию для этой системы?

Комментарии:

1. Создайте несколько уровней и владельца и просто прикрепите эти биты данных к файлам. Затем проверьте, может ли пользователь запускать / читать / записывать / ect это. Если вы не ищете что-то еще?

2. Не могли бы вы сгруппировать пользователей, у которых есть доступ к одному и тому же набору файлов? Затем создайте один файл карты для каждой группы, вместо одного на пользователя.

3. Очень запутанный вопрос. Пожалуйста, покажите какой-нибудь существующий код / пример. Это UNIX? И — я не смею спрашивать — зачем вы это делаете?

4. я создаю этот файл, затем загружу в память .. это я делаю .. мне нужно знать, есть ли у него доступ или нет…

5. только для этой цели я создаю file.. я не могу использовать группы, это невозможно…

Ответ №1:

Я думаю, вам следует использовать общее решение, это: Пользователи, группы пользователей и роли для пользователей и групп. Если вы разделите свою логику на эти 3 части, это будет более понятно.

Ответ №2:

Возможно, вы не говорите по-немецки. Но просто прокрутите до конца следующей статьи:http://www.activevb.de/tutorials/tut_sortalgo/sortalgo.html и проверьте проект (старый VB classic).

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

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

С уважением