9.1.0 • Published 5 years ago

yildiz v9.1.0

Weekly downloads
7
License
MIT
Repository
github
Last release
5 years ago

Build Status Version MIT License node Swagger

Intro

YildizDB acts as a highly scaleable HTTP layer in front of Google Bigtable. It helps you store billions of relations between nodes in edges and resolve them in milliseconds. A small access layer helps you manage multiple namespaces with ease. YildizDB scales to hundrets of Terabytes. YildizDB excells in $N:N$ non nested relationships.

Features

  • simple namespacing (table separation) with prefixes
  • simple access management through tokens
  • multi-tenancy through table prefixes (with access management)
  • high read and write performance
  • fast read access under heavy write load
  • able to handle billions of edges and nodes
  • scales beyond Terabytes
  • lightweight deployments (small Node.js footprint)
  • ttl feature for all resources
  • HTTP Open API
  • Kubernetes HELM charts

Build for high throughput $N:N$

  • Highly async API based on fastify
  • Thin layer on top of Google's GRPC Bigtable API
  • Hashing and translating all string identifiers into integer representations via murmurhash3 automatically

Fast random access to a node's edge data $1:N$

  • Multiple complex caching layers
  • Custom Bigtable cache table speed up by Google Memorystore (Redis)
  • All Memorystore hits also speed up by In-Memory store
  • Fetch job that keeps active nodes refreshed in cache

Available clients

  • Node.js Client
  • Any Http Client can be used to access the HTTP-Interface

Usage

  • You will need a Google Cloud Project with a running Bigtable cluster
  • Additionally YildizDB requires a Memorystore (or Redis) instance
  • Configure ./config/bigtable.json accordingly
  • Install and start: npm install -g yildiz and yildizdb -p 3058 -l ./config/bigtable.json
  • A word on configuration can be found here
  • Use right alongside your code
  • Spawn server via http interface

Deployment

  • YildizDB is designed to be deployed as simple platform service
  • it requires Node.js > 9.x.x and Redis > 3.x
  • It simply requires its npm module as well as a config file that describes the connections to Bigtable and Memorystore (Redis)
  • It scales best with an HTTP load balancer in front of it e.g. NGINX
  • We run and scale it very successfully in Google's Kubernetes Engine
  • We also offer HELM charts
  • Read some more about the config file here

Metrics & Monitoring

  • Yildiz exposes Prometheus Metrics @ /admin/metrics
  • Read more about it here

Developing YildizDB

Developing YildizDB with Google Bigtable backend

  • Configure ./config/bigtable.json accordingly
  • Run tests via yarn test
  • Start via yarn http

Documentation

Disclaimer

  • This project is not affiliated with Google
  • License is MIT see
9.1.0

5 years ago

9.0.27

5 years ago

9.0.26

5 years ago

9.0.25

5 years ago

9.0.24

5 years ago

9.0.23

5 years ago

9.0.22

5 years ago

9.0.21

5 years ago

9.0.20

5 years ago

9.0.19

6 years ago

9.0.18

6 years ago

9.0.17

6 years ago

9.0.16

6 years ago

9.0.15

6 years ago

9.0.14

6 years ago

9.0.13

6 years ago

9.0.12

6 years ago

9.0.11

6 years ago

9.0.10

6 years ago

9.0.9

6 years ago

9.0.8

6 years ago

9.0.7

6 years ago

9.0.6

6 years ago

9.0.5

6 years ago

9.0.4

6 years ago

9.0.3

6 years ago

9.0.2

6 years ago

9.0.1

6 years ago

9.0.0

6 years ago

8.2.3

6 years ago

8.2.2

6 years ago

8.2.1

6 years ago

8.2.0

6 years ago

8.1.0

6 years ago

8.0.0

6 years ago

7.0.1

6 years ago

7.0.0

6 years ago

6.28.0

6 years ago

6.27.0

6 years ago

6.26.0

6 years ago

6.25.0

6 years ago

6.24.0

6 years ago

6.23.0

6 years ago

6.22.0

6 years ago

6.21.0

6 years ago

6.20.0

6 years ago

6.19.0

6 years ago

6.18.0

6 years ago

6.17.0

6 years ago

6.16.0

6 years ago

6.15.0

6 years ago

6.14.0

6 years ago

6.13.0

6 years ago

6.12.1

6 years ago

6.12.0

6 years ago

6.11.0

6 years ago

6.10.0

6 years ago

6.9.0

6 years ago

6.8.0

6 years ago

5.7.0

6 years ago

5.6.0

6 years ago

5.5.0

6 years ago

5.4.0

6 years ago

5.3.0

6 years ago

5.2.0

6 years ago

5.1.0

6 years ago

5.0.1

6 years ago

5.0.0

6 years ago

4.0.0

6 years ago

3.1.0

6 years ago

3.0.0

6 years ago

2.1.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.31.0

6 years ago

1.30.0

6 years ago

1.29.0

6 years ago

1.28.1

6 years ago

1.28.0

6 years ago

1.27.0

6 years ago

1.26.0

6 years ago

1.25.0

6 years ago

1.24.0

6 years ago

1.23.0

6 years ago

1.22.0

6 years ago

1.21.0

6 years ago

1.20.0

6 years ago

1.19.1

6 years ago

1.19.0

6 years ago