All Projects → 3kuai → hanbo-db

3kuai / hanbo-db

Licence: Apache-2.0 license
hanboDB is a high available,low latency memory database system

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to hanbo-db

Message Bus
Go simple async message bus
Stars: ✭ 166 (+472.41%)
Mutual labels:  pubsub, message-queue
Nats Operator
NATS Operator
Stars: ✭ 471 (+1524.14%)
Mutual labels:  pubsub, message-queue
Kubemq
KubeMQ is Enterprise-grade message broker native for Docker and Kubernetes
Stars: ✭ 58 (+100%)
Mutual labels:  pubsub, message-queue
Liftbridge
Lightweight, fault-tolerant message streams.
Stars: ✭ 2,175 (+7400%)
Mutual labels:  pubsub, message-queue
Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+8962.07%)
Mutual labels:  pubsub, message-queue
aop
AMQP on Pulsar protocol handler
Stars: ✭ 93 (+220.69%)
Mutual labels:  pubsub, message-queue
core
Simple JSON-based messaging queue for inter service communication
Stars: ✭ 28 (-3.45%)
Mutual labels:  redis-server, message-queue
tips
TiKV based Pub/Sub server
Stars: ✭ 31 (+6.9%)
Mutual labels:  pubsub, message-queue
kane
Google Pub/Sub client for Elixir
Stars: ✭ 92 (+217.24%)
Mutual labels:  pubsub
Pubbie
A high performance pubsub client/server implementation for .NET Core
Stars: ✭ 122 (+320.69%)
Mutual labels:  pubsub
energy-management-sys communication-sub-sys
基于DLT645-2007/DLT645-1997协议的智能电表数据采集系统。借助于高性能的网络编程框架Netty开发,系统可以和智能电表交互并把设备传上来的数据实时写进数据库(目前只支持MySQL)。
Stars: ✭ 27 (-6.9%)
Mutual labels:  netty4
metamorphosis
Easy and flexible Kafka Library for Laravel and PHP 7
Stars: ✭ 39 (+34.48%)
Mutual labels:  pubsub
simple redis
Simple and resilient redis client for rust.
Stars: ✭ 21 (-27.59%)
Mutual labels:  pubsub
iris3
An upgraded and improved version of the Iris automatic GCP-labeling project
Stars: ✭ 38 (+31.03%)
Mutual labels:  pubsub
netty-thrift
Thrift on Netty
Stars: ✭ 23 (-20.69%)
Mutual labels:  netty4
kubemq-Java
Java client library for KubeMQ server
Stars: ✭ 25 (-13.79%)
Mutual labels:  message-queue
console-chat
Chat on your terminal with other users through a gRPC service
Stars: ✭ 21 (-27.59%)
Mutual labels:  pubsub
Rebus.SqlServer
🚌 Microsoft SQL Server transport and persistence for Rebus
Stars: ✭ 35 (+20.69%)
Mutual labels:  message-queue
CRDT-Redis
CRDTs implemented in Redis
Stars: ✭ 35 (+20.69%)
Mutual labels:  redis-server
itstack-naive-chat-server
💞 《服务端》| 服务端同样使用Netty4.x作为socket的通信框架,同时在服务端使用Layui作为管理后台的页面,并且我们的服务端采用偏向于DDD领域驱动设计的方式与Netty集合,以此来达到我们的框架结构整洁干净易于扩展。同时我们的通信协议也是在服务端进行定义的,并对外提供可引入的Jar包,这样来保证客户端与服务端共同协议下进行通信。
Stars: ✭ 21 (-27.59%)
Mutual labels:  netty4

中文 english

HanboDB

hanboDB is a high available,low latency memory database system.

features

  1. support dynamic resize

  2. support all of redis proto,e.g:

     1.set get
     2.lpush rpush lrange blpop brpop llen
     3.hset hget hgetall hscan
     4.pub sub
     5.select keys scan expire del
     6.multi exec discard
     7.incr incrby
     8.slaveof
     ....  
    

architecture

use fastUtil library(Object2List,Object2Map) as keyMap in JVM,it has a powerful read/write ability.

storage design

buffer-structure

replication

linear storage

1.fixed unit size ,head 4 byte write in last item position,
and then each item write in 4 byte with it bytes length and actually bytes(TLV).
2.key and value are seperated in storage
3.if buffer remaining not enough to write,then auto resize

build server

cd jredis && mvn clean install -Dmaven.test.skip=true

run server

java -jar transport-1.0-SNAPSHOT.jar

ha conf

support one master multi slave,but not support auto selective master,now need to manual promotion. i will plan to implement sentinel mechanism

master

auto discovery slave node

replication.mode=master

slave

auto register slave node

replication.mode=slave
slaver.of=127.0.0.1:16379
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].