LruClockCache
Olric
LruClockCache | Olric | |
---|---|---|
8 | 28 | |
59 | 3,008 | |
- | - | |
5.3 | 5.7 | |
4 months ago | 16 days ago | |
C++ | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
LruClockCache
- Is 180 million lookups per second performance ok for an asynchronous cache written in C++ running on FX8150? (has cache-coherence and runs only 1 consumer thread as back-end)
-
Is Python Interpreter optimized enough for low-latency caching algorithm?
Is it feasible to write a fast caching library for Python in pure Python codes or does its function calling overhead limit the performance of cache access? What about linking a C++ caching function to Python environment to be called? Does it cause worse latency or better latency than the pure-Python version? (I'm considering converting my C++ caching tool to Python: https://github.com/tugrul512bit/LruClockCache which has performance between 50M - 2B lookups per second depending on use-cases)
- 2D Direct Mapped Cache Is Much Better Than Normal Direct Mapped Cache In 2D Access Patterns
- What is the absolute fastest way of using mmap for read-only random-access pattern?
-
Does C++ have a feature like optionally producing same pointer value from allocation with help of an integer key?
Hi, I implemented a multi-level LRU+direct mapped cache (https://github.com/tugrul512bit/LruClockCache/wiki/How-To-Do-Multithreading-With-a-Read-Only-Multi-Level-Cache) and it works as a single threaded read-write cache or multi-threaded read-only cache. Now I'm going to add cache-coherence to it (so it will be read-write multithreaded) but by using smart pointers as "value" cells. So, a get method will return shared_ptr and I can change its data by dereferencing and it instantly visible on other L1 caches in other threads. But there are some problems.
- Multi-Level Cache (Direct Mapped L1 + LRU approx L2 + guard_locked LRU LLC) does up to 400 million lookups per second in Gaussian Blur operation on FX8150 CPU.
-
Is 20 million lookups per second performance ok for a single threaded LRU cache written in C++? (CPU is fx8150 3.6GHz)
Implementation: https://github.com/tugrul512bit/LruClockCache/blob/main/LruClockCache.h
Olric
- Olric: Distributed, embeddable in-memory data structures in Go
-
Iām Now a Full-Time Professional Open Source Maintainer
It's Olric: https://github.com/buraksezer/olric. Publicly speaking about the companies may not be a good idea but you can dig into the issues, pull requests, and Discord channel if you are curious.
- Olric v0.5.0 is out! A distributed, in-memory key/value store and cache. It's designed to be distributed from the ground up and can be used both as an embedded Go library and a language-independent service.
-
SQLGateway - Access SQL databases over HTTP - Written in Go š
A fun addition could be to remove the need for Redis in clustered mode by using something like this: https://github.com/buraksezer/olric
-
Hacker News top posts: Nov 27, 2022
Olric: Distributed, embeddable data structures in Go\ (7 comments)
- Olric: Distributed, embeddable data structures in Go
- Redcon - Redis compatible server framework for Rust
- Survey: Who is using Olric?
What are some alternatives?
fmtlog - fmtlog is a performant fmtlib-style logging library with latency in nanoseconds.
redis-lock - Simplified distributed locking implementation using Redis
srs - SRS is a simple, high-efficiency, real-time video server supporting RTMP, WebRTC, HLS, HTTP-FLV, SRT, MPEG-DASH, and GB28181.
ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications
srt - Secure, Reliable, Transport
resgate - A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.
leaf - Lightweight Error Augmentation Framework
raft - Golang implementation of the Raft consensus protocol
quill - Asynchronous Low Latency C++ Logging Library
hprose - Hprose is a cross-language RPC. This project is Hprose for Golang.
cppdataloader - cppdataloader is a batching and caching library for C++17
tendermint - ā Tendermint Core (BFT Consensus) in Go