Есть компонент process. Этот компонент использует shm. Кусок этой памяти представляет собой массив. Каждая ячейка в этом массиве называется slot.

Процесс бывает двух типов master и worker. При каждом рестарте или релоаде мастер “увольняет” старые слоты, старые воркеры завершаются, а новые воркеры “захватывают” свободные слоты.

Первое:

Компонент process занимается и вопросами shm и вопросами мастера и вопросами воркера.

Решение: пилим его на три компонента: shm, master и worker. А slot остается как есть и относится к shm. Ок, делаем.

Второе:

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

Третье:

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

Помогите найти синоним к слову “slot” или иные названия для этих видов “слотов” подходящие по контексту.

З.Ы.: Анон, жги!

    • deep-purpleOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      “cached_slot”

      Но тогда вернее “shm_slot” и “worker_slot”, но не все так просто, выглядеть в итоге оно будет вот так: “xxx_process_shm_slot_t” и “xxx_process_worker_slot_t” и вот такие макароны я совсем не желаю размазывать по коду – чем короче, тем лучше. Поэтому и прошу одно НЕ составное слово.

      • ashot
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Pork? Извини, не удержался.

        hole
        place
        space +1 spot

          • ashot
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            section, не плохо, я так думаю.

              • ashot
                link
                fedilink
                arrow-up
                0
                ·
                3 years ago

                Блин, да pork уже выбирай. Лаконично и современно.

                • ashot
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 years ago

                  чем короче, тем лучше

                  4 букв. Выбери, что понравилось, остальные отбрось.

                • deep-purpleOP
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 years ago

                  Свинина процесса – оригинально!

  • rezedent12
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Помогите найти синоним к слову «slot» или иные названия для этих видов «слотов» подходящие по контексту.

    Если у тебя в коде есть master, то где то в нём же должен быть slave.

    • deep-purpleOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Воркеры и есть слейвы. Ты мне еще названий для слотов лучше предложи.

      • rezedent12
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Что представляет собой слот, я так и не понял. Это флаг? Указатель? Индекс? Данные для обработки?

        • deep-purpleOP
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

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

          А кешированые слоты (второй вид) отличаются отсутствием пида, наличием указателя next и в поле индекса хранится порядковый индекс кешированого слота, а не индекс слота из разделяемой памяти.

          • rezedent12
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            Опять не понял?

            Да подожди ты! Я только сел возле компьютера.

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

            Task

            А кешированые слоты (второй вид) отличаются отсутствием пида, наличием указателя next и в поле индекса хранится порядковый индекс кешированого слота, а не индекс слота из разделяемой памяти.

            Не уверен что понял.

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

            • deep-purpleOP
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              занимается созданием множества копий одних и тех же данных в оперативной памяти

              Как частный случай – да. Воркеры (это отдельные процессы) обмениваются кучей данных через пайпы/сокетные пары. Инициатор какой-то части уникальных данных только один из воркеров, но остальные воркеры всегда получают от инициатора копию этих данных.

              Однако, эта функциональность уже никак не относится к моему вопросу. И не понятно, как это поможет тебе придумать названия.

              • rezedent12
                link
                fedilink
                arrow-up
                0
                ·
                3 years ago

                Я сам столкнулся с такой проблемой и принял решение копировать данные, для того что бы избежать ошибок. Но в моём случае, это просто сообщения в telegram и ответы на них. Если бы это было бы чем то побольше, то заморочился бы передавать исключительно по указателю.

                Task

                Уже присутствует. Да и врядли можно назвать тасками что-то не динамическое, доступное разным процессам и хранящее тупо флаги.

                Задание, exercise.

                • deep-purpleOP
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  3 years ago

                  Это не задания. Слоты перезанимаются только между перезапусками приложения. И только хранять пару-троку флагов для удобства доступа “по ключу”.

                  • rezedent12
                    link
                    fedilink
                    arrow-up
                    0
                    ·
                    3 years ago

                    Я запутался пытаясь понять логику твоей программы.

            • deep-purpleOP
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              Task

              Уже присутствует. Да и врядли можно назвать тасками что-то не динамическое, доступное разным процессам и хранящее тупо флаги.

  • serg002
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    class ManagerProcess. Имена методов ты как-нибудь сам

  • Anonymous
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    А почему бы не использовать слова element и slot1?

    • deep-purpleOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Элемент чего и почему слот 1, а не, например, 1001?

      Названия ведь должны отражать сучность ими обозначаемую.

      • Anonymous
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        element — просто ещё один синоним к slot.