Git Product home page Git Product logo

deepstream.io-cluster's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

deepstream.io-cluster's Issues

Ran into issues. Would love a quick primer on the arch, so that I can attempt to solve it.

Hi John,

First off, A big thank you for attempting this clustering plugin. It's obviously not foolproof yet, but should serve as a great starting point for any future work.

I'm currently working on this http://www.st8flo.com. Attempted to use deepstream behind the scenes as a signalling server, and tried using your plugin to cluster 2 nodes, but ran into a bunch of issues that I'd like to try solving.

Would love it if you can give me a primer on the architecture of deepstream & the clustering mechanism that you've used

If I manage to solve anything, will be happy to contribute that code back to your module.


The issues i ran into

1> auto discovery using node-discover seems to be broken.
The error i get is - "Cannot read property clusterNode of undefined".

So instead, I clustered the 2 nodes manually - both set as peers of each other :

2> There's a possible multiplication of state / messaging.

For a distributed indexing / db built on top of st8flo - A query that should've resulted in a 100 items, results in 400,

but only when this clustering plugin is used.

Without clustering it works as expected.

Networking Architecture for cluster test-
2 Deepstream signalling nodes clustered using this plugin (one on Mac, another on linux)

  • 1 independent worker machine attached to each signalling node. Worker machines do the actual indexing and storage. Deepstream only acts as an RPC co-ordinator.

Networking architecture normally -
Single deepstream node that acts as signal / RPC server

  • Multiple worker machines that connect to it and do the actual indexing / storage.

3> If accidentally disconnected, a signalling node can't reconnect or re-sync state.

Environment -
Deepstream - 3.1.1
Deepstream cluster - 0.6.2
Nodejs - 9.10.1
OS - Mac El Capitan & Linux Ubuntu 14.04

Unfortunately, I can't reproduce this for you to test, since st8flo isn't published yet.
But I can try to figure it out myself, if you help me understand how it works under the hood.

Any pointers / primers ?
Thanks in advance.

Adding to deepstream core connectors

Hello!

I was wondering if you would like to have this under the deepstream umbrella with other connectors so that it can be bundled into the binary.

Thanks again for your work on this!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.