All Projects → yildizdb → yildiz

yildizdb / yildiz

Licence: MIT license
🦄🌟 Graph Database layer on top of Google Bigtable

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to yildiz

Grakn
TypeDB: a strongly-typed database
Stars: ✭ 2,947 (+12179.17%)
Mutual labels:  graph-database, hyper-relational
typedb
TypeDB: a strongly-typed database
Stars: ✭ 3,152 (+13033.33%)
Mutual labels:  graph-database, hyper-relational
Janusgraph
JanusGraph: an open-source, distributed graph database
Stars: ✭ 4,277 (+17720.83%)
Mutual labels:  graph-database, bigtable
hdelk
Web-based HDL diagramming tool
Stars: ✭ 51 (+112.5%)
Mutual labels:  edges, nodes
nebula
A distributed, fast open-source graph database featuring horizontal scalability and high availability
Stars: ✭ 8,196 (+34050%)
Mutual labels:  big-data, graph-database
Gaffer
A large-scale entity and relation database supporting aggregation of properties
Stars: ✭ 1,642 (+6741.67%)
Mutual labels:  big-data, graph-database
bigtable
TypeScript Bigtable Client with 🔋🔋 included.
Stars: ✭ 13 (-45.83%)
Mutual labels:  big-data, bigtable
Helicalinsight
Helical Insight software is world’s first Open Source Business Intelligence framework which helps you to make sense out of your data and make well informed decisions.
Stars: ✭ 214 (+791.67%)
Mutual labels:  big-data, graph-database
awesome-coder-resources
编程路上加油站!------【持续更新中...欢迎star,欢迎常回来看看......】【内容:编程/学习/阅读资源,开源项目,面试题,网站,书,博客,教程等等】
Stars: ✭ 54 (+125%)
Mutual labels:  big-data
CyFHIR
A Neo4j Plugin for Handling HL7 FHIR Data
Stars: ✭ 39 (+62.5%)
Mutual labels:  graph-database
grafito
Portable, Serverless & Lightweight SQLite-based Graph Database in Arturo
Stars: ✭ 95 (+295.83%)
Mutual labels:  graph-database
dislib
The Distributed Computing library for python implemented using PyCOMPSs programming model for HPC.
Stars: ✭ 39 (+62.5%)
Mutual labels:  big-data
lidbox
End-to-end spoken language identification out of the box.
Stars: ✭ 39 (+62.5%)
Mutual labels:  big-data
phoenix-queryserver
Apache Phoenix Query Server
Stars: ✭ 33 (+37.5%)
Mutual labels:  big-data
pyspark-algorithms
PySpark Algorithms Book: https://www.amazon.com/dp/B07X4B2218/ref=sr_1_2
Stars: ✭ 72 (+200%)
Mutual labels:  big-data
couchdb-pkg
Apache CouchDB Packaging support files
Stars: ✭ 24 (+0%)
Mutual labels:  big-data
angular-neo4j
Neo4j Bolt driver wrapper for Angular
Stars: ✭ 18 (-25%)
Mutual labels:  graph-database
data-viz-utils
Functions for easily making publication-quality figures with matplotlib.
Stars: ✭ 16 (-33.33%)
Mutual labels:  big-data
GraphOfDocs
GraphOfDocs: Representing multiple documents as a single graph
Stars: ✭ 13 (-45.83%)
Mutual labels:  graph-database
awesome-tools
curated list of awesome tools and libraries for specific domains
Stars: ✭ 31 (+29.17%)
Mutual labels:  big-data

Yildiz Graph Database

yildiz

Thin graph database layer on top of Google Bigtable.

Build Status Version MIT License node Swagger Mentioned in Awesome Bigtable

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