All Projects → zalopay-oss → zpd

zalopay-oss / zpd

Licence: Apache-2.0 License
A simple SQL-like database built on top of Key-Value storages

Programming Languages

go
31211 projects - #10 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
Smarty
1635 projects

Labels

Projects that are alternatives of or similar to zpd

grpc-go-kit-example
go-kit and gRPC
Stars: ✭ 30 (+87.5%)
Mutual labels:  grpc
grpc-angular
gRPC to Angular service compatible with grpc-gateway
Stars: ✭ 12 (-25%)
Mutual labels:  grpc
gruf-demo
A demonstration Rails application utilizing gruf, a gRPC Rails framework.
Stars: ✭ 42 (+162.5%)
Mutual labels:  grpc
grpc-fullstack-demo
GRPC full stack application demo ( Backend/ Cli / Android / iOS / Web )
Stars: ✭ 23 (+43.75%)
Mutual labels:  grpc
xrgrpc
gRPC library for Cisco IOS XR
Stars: ✭ 40 (+150%)
Mutual labels:  grpc
grpc-spring-security-demo
Spring Boot-based gRPC server with gRPC endpoints secured by Spring Security
Stars: ✭ 50 (+212.5%)
Mutual labels:  grpc
jaeger-clickhouse
Jaeger ClickHouse storage plugin implementation
Stars: ✭ 103 (+543.75%)
Mutual labels:  grpc
poc-micronaut-kotlin-grpc
Prova de conceito - Micronaut, Kotlin e GRPC
Stars: ✭ 14 (-12.5%)
Mutual labels:  grpc
dalal-street-client
Frontend client for Dalal Street
Stars: ✭ 13 (-18.75%)
Mutual labels:  grpc
openmgmt
Documentation and examples for using open network management tools such as OpenConfig
Stars: ✭ 23 (+43.75%)
Mutual labels:  grpc
grpcman
A grpc testing tool based on Electron & Vue.js & Element-UI
Stars: ✭ 22 (+37.5%)
Mutual labels:  grpc
api
Temporal gRPC API and proto files
Stars: ✭ 25 (+56.25%)
Mutual labels:  grpc
ContosoLending
An ASP.NET Core 3.1 app showcasing gRPC, server-side Blazor, SignalR, and C# 8.
Stars: ✭ 15 (-6.25%)
Mutual labels:  grpc
kubernetes-go-grpc
Microservices using Go, gRPC and Kubernates
Stars: ✭ 35 (+118.75%)
Mutual labels:  grpc
url-frontier
API definition, resources and reference implementation of URL Frontiers
Stars: ✭ 16 (+0%)
Mutual labels:  grpc
pool
Connection pool for Go's grpc client with supports connection reuse.
Stars: ✭ 105 (+556.25%)
Mutual labels:  grpc
docker-protobuf
An all-inclusive protoc Docker image
Stars: ✭ 105 (+556.25%)
Mutual labels:  grpc
grpc bench
Various gRPC benchmarks
Stars: ✭ 480 (+2900%)
Mutual labels:  grpc
caddy-esi
Middleware for Caddy Server integrating ESI (edge side includes) tags with parallel loading. Able to connect to HTTP/S/2, Memcache, Redis, shell scripts, gRPC and SQL backends 🐜🐜🐜
Stars: ✭ 28 (+75%)
Mutual labels:  grpc
gogrpcgin
golang grpc gin
Stars: ✭ 33 (+106.25%)
Mutual labels:  grpc

ZPD

Build Status Coverage Status version version version

Overview

ZPD (or ZaloPay Database) is a probationary challenge performed at ZaloPay. It's an experiment to gain deep knowledge about handling simple SQL queries and how to glue them with a key-value storage.

ZPD is implemented using Golang as a gRPC service and built on top of following frameworks:

  • Consul for leader elections.

  • TiKV as the main key-value storage

Architecture

The architecture of the ZPD:

Including layers:

  • Connection layer
  • Parser layer
  • Core layer:
    • Executor
    • Consul Agent
    • Bridge API
  • Data access layer
  • Storage:
    • TiKV client layer

See the architecture of ZPD here.

Requirement

  • Golang version >= 1.12
  • gRPC
  • Docker version >= 17.06 and Docker Compose
  • Locust

Install

Build

Clone this project:

# Clone
$ git clone https://gitlab.zalopay.vn/zpx-core-team/tidb-internals.git

Run

ZPD, PD, TiKV, Consul are all built with Docker compose. Just go to the docker-compose folder and run docker-compose up.

# go to the folder docker-compose
$ cd ./tidb-layer/source/docker-compose

# Run docker-compose
$ docker-compose up

Test

Must run ZPD as the section above, then run tests of the APIs:

# go to cmd/client
$ cd ./tidb-layer/source/cmd/client

# run tests
$ go test -run TestClientExecuteCreateDB 
  • You can write more tests into client_test.go like the available format.

Document

Read more document about ZPD:

Read blogs:

Contribution

This project was built by AJPham and Alex Nguyen under the guidance from Anh Le (Andy).

Acknowledgments

License

See the LICENSE file for license rights and limitations.

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].