Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DRAFT DO NOT REVIEW] Wip limit max threads to server #7865

Draft
wants to merge 4 commits into
base: develop
Choose a base branch
from

Commits on Sep 26, 2022

  1. Prototype to limit the number of threads to destinations

    Works for puts, gets and transactions and
    them also within functions.
    
    This solution allows to limit the number of threads
    handling client requests in a server waiting for
    a response from a given server.
    
    For example, if we configure the system to allow
    at max 1/2 of the available threads to handle client requests
    busy towards a given server, supposing we have a
    4 servers system with MAX_THREADS=8, if at a given point
    in time server1 has 4 threads busy waiting to get a
    response from server2 and another request comes to server1
    that would require to communicate with server2,
    the request will be rejected.
    
    This feature could be used in situations when a server is not responding
    or is responding slowly in order to limit the number of server
    threads (in the rest of servers) to handle client requests that are
    busy waiting for an answer from the problematic server.
    This way, even if a server is not responding or is being very
    slow, there will always be some threads available to handle
    client requests in the healthy servers.
    As a result, a non-responding server would not eventually
    provoke a 100% traffic loss.
    
    In order to implement this feature, a new observer type
    has been created (SendReceiveMessageObserver).
    Calls to this observer have been added before
    a put, get or transaction needs to go to another server
    (before any change has been made locally) and
    after the response has been received.
    
    With a particular implementation of this observer
    (see GenericDunitTest.MySendReceiveMessageObserver)
    that keeps track of the number of threads waiting for
    an answer to each servers, operations may be rejected
    if the limit has been surpassed.
    
    In GenericDUnitTest that observer is set in the
    servers and the functionality can be tested
    manually by looking at the logs.
    
    Some refactorings and renamings
    albertogpz committed Sep 26, 2022
    Configuration menu
    Copy the full SHA
    e9f5118 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2022

  1. Configuration menu
    Copy the full SHA
    bfdc7c9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6322def View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2022

  1. Add exceptions for new methods in japicmp and fix javadoc warnings an…

    …d add function to sanctioned data serializables
    albertogpz committed Sep 29, 2022
    Configuration menu
    Copy the full SHA
    a1ee7c3 View commit details
    Browse the repository at this point in the history