pelikan for Mac
Production-ready cache services
pelikan — overview
Pelikan is Twitter's framework for developing cache services. It is:
Fast: Pelikan provides high-throughput and low-latency caching solutions.
Reliable: Pelikan is designed for large-scale deployment and the implementation is informed by our operational experiences.
Modular: Pelikan is a framework for rapidly developing new caching solutions by focusing on the inherent architectural similarity between caching services and providing reusable low-level components.
Website | Chat
Content Overview Products Features Build Usage Community Stay in touch Contributing Documentation License
Overview After years of using and working on various cache services, we built a common framework that reveals the inherent architectural similarity among them.
By creating well-defined modules, most of the low-level functionalities are reused as we create different binaries. The implementation learns from our operational experiences to improve performance and reliability, and leads to software designed for large-scale deployment.
The framework approach allows us to develop new features and protocols quickly.
Products Pelikan contains the following products: pelikan_segcache_rs: a Memcached-like server with extremely high memory efficiency and excellent core scalability. See our [NSDI'21 paper] for design and evaluation details. pelikan_pingserver_rs: an over-engineered, production-ready ping server useful as a tutorial and for measuring baseline RPC performance momento_proxy: a proxy which allows existing applications to use Momento instead of a Memcache-compatible cache backend.
Legacy Pelikan legacy codebase can be found within the legacy folder of this project. It is composed of the original C codebase and backend implementations. It remains as a reference, but is not recommended for production deployments.
Features runtime separation of control and data plane predictably low latencies via lockless data structures, worker never blocks per-module config options and metrics that can be composed easily multiple storage and protocol implementations, easy to further extend low-overhead command logger for hotkey and other important data analysis
Building Pelikan
Requirement Rust stable toolchain C toolchain: llvm/clang (>= 7.0) Build tools: cmake (>= 3.2)
Build
Tests
Usage Using pelikan_segcache_rs as an example, other executables are highly similar.
To get info of the service, including usage format and options, run:
To launch the service with default settings, simply run:
To launch the service with the sample config file, run:
You should be able to try out the server using an existing memcached client, or simply with telnet.
Attention: use admin port for all non-data commands.
Configuration
Pelikan is file-first when it comes to configurations, and currently is config-file only. You can create a new config file following the examples included under the config directory.
Community
Stay in touch Join our project chat on
Details
可用于生产的缓存服务
How to install pelikan
- Open Terminal (press ⌘ + Space and type “Terminal”).
- If Homebrew is not installed yet, run the command below first.
- Run this command:
Latest 10 releases
Last updated 2016-05-05; current version 0.1.2, with the latest 3 releases listed.
| Version | Released | Type | Size | macOS | Windows | Linux |
|---|---|---|---|---|---|---|
| 0.1.2 | 2016-05-05 | Stable | — | — | — | — |
| 0.1.1 | 2016-05-03 | Stable | — | — | — | — |
| 0.1.0 | 2016-04-05 | Stable | — | — | — | — |
Data from GitHub Releases; stable releases first, each group sorted newest first.
Compared with similar apps
Only public metadata is compared, with no subjective recommendation; see the compare pages for field-by-field comparisons.
| App | Version | License | Architecture | 30-day installs |
|---|---|---|---|---|
| pelikan | 0.1.2 | Apache-2.0 | CLI | 0 |
| librest | 0.10.2 | LGPL-2.1-or-later AND LGPL-3.0-or-later | CLI | 0 |
| shepherd | 1.0.9 | GPL-3.0-or-later | CLI | 1 |
| mon | 1.2.3 | MIT | CLI | 1 |
Similar apps: Command-line Tools
librest
librest is a development library for accessing RESTful web services, aimed primarily at…shepherd
Shepherd is a command-line tool for managing a group of system services, with the core task of…mon
Super-simple monitoring program.thors-anvil
A set of modern C++20 libraries for writing interactive Web-Services.wgetpaste
Automate pasting to a number of pastebin servicesopenssl@4
Cryptography and SSL/TLS ToolkitCategories: Command-line Tools