Giter Site home page Giter Site logo

rndgen's Introduction

rndGen

This application implemented on top of Redis. Server settings situated in the /resources/application_config.properties

  Ваша задача ­ написать приложение, реализующее переданный во вложении интерфейс
Метод destroy()гарантированно вызывается перед завершением приложения.
Требования к системе:
  1. Запросы к вашей реализации интерфейса будут идти в 100 потоков, и класс
  должен безошибочно обрабатывать как можно больше запросов в секунду.
  2. Информация о зарегистрированных клиентах и остатках их квот должна быть
  персистентной, то есть сохраняться в базе данных между запусками программы.
  При некорректном завершении программы допускается частичная потеря данных,
  однако не более чем за последние 3 секунды. При корректном завершении
  программы ошибки должны быть исключены.
  3. Программа должна быть многопоточной и распределённой (то есть допускать
      возможность запуска нескольких экземпляров программы на разных машинах,
      работающих с единой базой данных).
  4. Допустимо отставание программы не более чем на 3 секунды (то есть возможна
      отдача случайных чисел вместо исключений в течение 3 секунд после того, как
      была израсходована вся квота, а также отдача исключений вместо случайных
      чисел в течение 3 секунд после регистрации клиента или увеличения его квоты).
      Статистика, выдаваемая методом getQuota(), также может отставать на интервал до 3 секунд.
  5. В базе может быть зарегистрировано до миллиона клиентов. Специфика запросов
  такова, что 80% запросов будут совершаться от лица одного (самого крупного)
  клиента, ещё 19% запросов будут совершаться от лица 100 клиентов “поменьше”, и
  1% запросов будет совершаться от лица остальных клиентов. Интенсивность
  запросов одного конкретного клиента может меняться в ходе работы сервиса.
  6. Помимо интерфейса, вам передаётся приложение, совершающее запросы к вашей
  реализации интерфейса в 100 потоков и выводящее в консоль производительность
  системы за последнюю секунду.

rndgen's People

Contributors

pilgrimkst avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.