معرفی شرکت ها


cf-LRU-cache-0.0.2


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

LRU Cache Distributed
ویژگی مقدار
سیستم عامل -
نام فایل cf-LRU-cache-0.0.2
نام cf-LRU-cache
نسخه کتابخانه 0.0.2
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Carlos Ferras
ایمیل نویسنده c4rlos.ferra5@gmail.com
آدرس صفحه اصلی https://github.com/carlos-ferras/code-challenge/cache
آدرس اینترنتی https://pypi.org/project/cf-LRU-cache/
مجوز MIT
## Ormuco Code Challenge This project has been created only for demonstration purpose. > > ### The challenge > > At Ormuco, we want to optimize every bits of software we write. Your goal is to write a new library that can be integrated to the Ormuco stack. Dealing with network issues everyday, latency is our biggest problem. Thus, your challenge is to write a new Geo Distributed LRU (Least Recently Used) cache with time expiration. This library will be used extensively by many of our services so it needs to meet the following criteria: > 1. Simplicity. Integration needs to be dead simple. > 2. Resilient to network failures or crashes. > 3. Near real time replication of data across Geolocation. Writes need to be in real time. > 4. Data consistency across regions > 5. Locality of reference, data should almost always be available from the closest region > 6. Flexible Schema > 7. Cache can expire  > ### The Answer source directory: `./cache` > > This feature is not finished yet, but the idea to implement is: > 1. In each remote server create a local cache > 2. Each independent cache will have other 2 optional roles at the same time; as server cache and as client cache > 3. As server cache it will have the responsibility to synchronize all its client caches > 4. As client cache it will have the responsibility to notify its server cache each time a change occurs > 5. All this communication will be through sockets in independent threads each one > 6. If the connection gets broken in any point the caches networks remaining will continue working as independent networks > 7. If a server gets disconnected from the caches network, its cache will work locally without any problem > 8. The developer in charge to deploy the system will have the responsibility to decide which server is a cache server or client or both > usage: - Run `pip3 install cf_LRU_cache` usage for a local cache only: ``` from lru_cache.lru_cache import LRUCache def load_callback(key): """This function has the responsibility to load the content to store into the cache """ return key local_cache = LRUCache( load_callback=load_callback, maximum_capacity=5555, expiration_time=5555 ) # get data from the cache; it will call `load_callback` if the # value is not available data_from_cache = local_cache.get('test_key') # set data manually into the cache data_from_cache = local_cache.set('test_key', 'test_value') # More options are only documented into the source code ``` usage for a distributed cache: ``` from lru_cache.lru_cache_distributed import LRUCacheDistributed def load_callback(key): """This function has the responsibility to load the content to store into the cache """ return key local_cache = LRUCacheDistributed( load_callback=load_callback, maximum_capacity=5555, expiration_time=5555, connection_timeout=5555, remote_address=('192.168.1.1', '5555'), # to be a client local_address=('', '5555') # to be a server ) # get data from the cache; it will call `load_callback` if the # value is not available data_from_cache = local_cache.get('test_key') # set data manually into the cache data_from_cache = local_cache.set('test_key', 'test_value') # More options are only documented into the source code ```


نحوه نصب


نصب پکیج whl cf-LRU-cache-0.0.2:

    pip install cf-LRU-cache-0.0.2.whl


نصب پکیج tar.gz cf-LRU-cache-0.0.2:

    pip install cf-LRU-cache-0.0.2.tar.gz