Code Monkey home page Code Monkey logo

redpulsar's People

Contributors

himadieievsv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

redpulsar's Issues

ListenerLock implementation

Summary
It nice to have ListenerLock in oppose to polling locks.
Basic requirements:

  1. Utilizing Pub/Sub mechanism
  2. Still should try to lock with by sending lock call to backend first and then listen for unlock event.

Motivation
Reduce calls to backend attempting to lock resource

Load script prior to commands execution on Redis

Summary
Load LUA script prior to commands execution on Redis.
Initialization can be done when object created once per application.

Motivation
All Redis backends are sending LUA scripts as is. Those calls ending up with slitty bigger size.
Reduce that redundancy with using script hash to call it.

Caveats

  • Tracking what Redis instances already has scripts might be challenging if cluster topology changes or individual instance get restarted/replaced.

It nice to have FairLock

Summary
It nice to have FairLock.
Basic requirements:

  1. Polling mechanism to obtain lock
  2. First client who tried to lock resource should be able to lock resource after its unlock

Motivation
FairLock is attempt to have fairness in lock obtaining racing, if client first requested lock it should be able obtain lock as soon as lock is available.

Provide Leader election algorithm

Summary
It nice to have Leader election algorithm too.
Basic requirements:
TBD

Motivation
Currently it is possible to have only one node in luster to perform workload using locks, but it have many drawbacks for using that approach in cluster with different types of nodes (computing power, network bandwidth, memory capacity, etc ). Ideally nodes should vote on the best candidate.

Workaround
Use locks

issue in multiInstanceExecute

multiInstanceExecute can get result properly with strategy waitForMajority.
There are multiple unit tests failures due to that

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.