Birdie
Key-value storage designed mainly for the BulkStore operation, when data is stored in large batches.
The project has benchmarks, you can use make bench
to run it:
cpu: Intel(R) Core(TM) i5-5350U CPU @ 1.80GHz
BenchmarkHash-4 3344268 357.7 ns/op 39 B/op 2 allocs/op
BenchmarkStore-4 1000000 1425 ns/op 253 B/op 7 allocs/op
BenchmarkLoad-4 1779650 777.4 ns/op 39 B/op 2 allocs/op
BenchmarkBulkStore/count_1000-4 2365 849593 ns/op 120534 B/op 1029 allocs/op
BenchmarkBulkStore/count_10000-4 241 5123830 ns/op 240012 B/op 10384 allocs/op
BenchmarkBulkStore/count_100000-4 22 235653234 ns/op 23109100 B/op 102137 allocs/op
BenchmarkBulkStore_Parallel/count_1000-4 6307 480595 ns/op 16000 B/op 1000 allocs/op
BenchmarkBulkStore_Parallel/count_10000-4 600 4034845 ns/op 160002 B/op 10000 allocs/op
BenchmarkBulkStore_Parallel/count_100000-4 60 26912932 ns/op 1600023 B/op 100000 allocs/op
A pack of 100K records is stored in storage in an average of 30ms.
Here you should pay attention to the results of parallel benchmarks, because they imitate the real work of clients in conditions of parallel connections.
Environment Variables
LISTEN_NETWROK
- the network type of listener. May be tcp
or unix
. Default tcp
.
LISTEN_ADDR
- the socket address on which the server will run. Default 0.0.0.0:50051
LOG_LEVEL
- logging level. Default info
.
Deploy
Examples
.proto
For implement your client use actual birdie.proto from server version.