Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connecting via Apache Phoenix #2

Open
alfredbaudisch opened this issue Jan 4, 2016 · 5 comments
Open

Connecting via Apache Phoenix #2

alfredbaudisch opened this issue Jan 4, 2016 · 5 comments

Comments

@alfredbaudisch
Copy link

I wonder if diver or at least its base code can be used to connect to Apache Phoenix?

Phoenix is basically a JDBC driver, but JDBC support for Erlang/Elixir seems lacking.

@novabyte
Copy link
Owner

novabyte commented Jan 4, 2016

The current design of the client is heavily tied to the Asynchbase HBase driver but the principles are essentially the same:

  1. Start a JVM instance over an Erlang port.
  2. Link and monitor it.
  3. The JVM instance started should communicate with the BEAM VM over a registered process.
  4. The registered process is used to send commands to the Java code.
  5. These commands could be anything but in this case it's commands to a Java-based driver.

Feel free to canablise the code as much as you need to put something together. I'd love to work on a driver for Apache Phoenix. It's actually something which could be essential to us at Heroic Labs but I can't promise any kind of timeframe.

@alfredbaudisch
Copy link
Author

I'll look into that, thank you!
Btw, Heroic Labs game backend solution uses HBase + diver?

@novabyte
Copy link
Owner

novabyte commented Jan 4, 2016

We don't use the current public version of the driver. We do use a lot of the communication code with other Java code which we needed to bridge between Erlang and Java. In fact I should probably see if I can refactor the bridge code into something more generic so it can be shared between projects.

@alfredbaudisch
Copy link
Author

Awesome. I'm also working on a low latency application with Elixir and I'm still deciding between Cassandra and HBase, where what is holding me on the final decision are the Erlang/Elixir connectors. The Cassandra one seems to have performance issues, so I'll probably go with HBase + diver, or I'll try to implement an Apache Phoenix connector with the tips you provided above.

@novabyte
Copy link
Owner

novabyte commented Jan 9, 2016

@alfredbaudisch What sort of performance issues have you seen in the Cassandra driver? What sort of latency guarantees do you need with your application? Do you have hard realtime requirements?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants