GithubHelp home page GithubHelp logo

Support for Phoenix about haeinsa HOT 12 OPEN

jtaylor-sfdc avatar jtaylor-sfdc commented on August 16, 2024
Support for Phoenix

from haeinsa.

Comments (12)

eincs avatar eincs commented on August 16, 2024 1

@jtaylor-sfdc @preillyme Here is my thought on this issue.

Transaction algorithm of Haeinsa relies on checkAndPut and checkAndDelete of HBase client. Those operations are carefully managed by several classes in Haeinsa, such as HaeinsaTable. Note that Haeinsa do not uses any coprocessor and never modifies Region Server.

In my opinion, to use Haeinsa in Pheonix for transaction, Phoenix and Haeinsa should both modified. Since Haeinsa relies on client-side algorithm, Pheonix should use Haeinsa client internally. This means codes of Pheonix should be modified quite a lot. And also there is some functions which Haeinsa doesn't support (which are supported on Hbase client) These should be fixed in Haeinsa-side.

For example, I see Pheonix use batch(Rows) operation on MutationState class. And Pheonix creates Scan operation in ScanUtils. Following can be problem in Haeinsa:

  • Haeinsa don't support batch(Rows)
  • Haeinsa operations, such as HaeinsaPut, HaeinsaDelete, do not have setAttribute method: since pheonix uses attribute for coprocessors, this is neccessary.
  • Haeinsa don't support filter in HaeinsaScan.

I'm totally agree with setAttribite should be implemented on Haeinsa. And I also think it is reasonable that implementing filter in HaeinsaScan operation. But I don't sure about implementing batch(Rows) because Haeinsa executes all operation in the transaction batch in commit phase. We can discuss about other problems.

And note that Haeinsa is designed to have good performance in small number of row in single transaction. Haeinsa works best on scheme which is similar to facebook messaging system, which all the data for user are stored in single row. You can see blog post1 from facebook engineering team. This means performance of Haeinsa can be not so good according to schema of the table.

P.S.
I studied Pheonix last weekend, but there can be some misunderstand, so please let me know if there is error.

from haeinsa.

yllierop avatar yllierop commented on August 16, 2024

👍

from haeinsa.

yllierop avatar yllierop commented on August 16, 2024

I'd love to see Salesforce Phoenix support Haeinsa.

from haeinsa.

rrmckinley avatar rrmckinley commented on August 16, 2024

👍

from haeinsa.

jmlvanre avatar jmlvanre commented on August 16, 2024

This support would be very useful.

from haeinsa.

eincs avatar eincs commented on August 16, 2024

Hi everyone! Sorry for late reply. Thanks for good suggestion.
I would be very excited and pleased, if Haeinsa helps Phoenix to support transaction.
I'm now studying Phoenix for few days and I'll deeply see how Phoenix implemented and finding good way to Phoenix and Haeinsa works together. If anyone who have the good suggestion about this issues (like implementation ideas), Please let me know.
Thanks!

from haeinsa.

yllierop avatar yllierop commented on August 16, 2024

Thanks @eincs.

from haeinsa.

jtaylor-sfdc avatar jtaylor-sfdc commented on August 16, 2024

Thanks, @eincs. I'm happy to answer any questions you have about Phoenix.

from haeinsa.

yllierop avatar yllierop commented on August 16, 2024

@eincs What do you think of Phoenix so far?

from haeinsa.

eincs avatar eincs commented on August 16, 2024

@preillyme I'll study Phoenix this weekend.
Do you have any opinion, such as how to integrate Pheonix and Haeinsa?

from haeinsa.

eincs avatar eincs commented on August 16, 2024

I added related issues. See #10 and #11.

from haeinsa.

yllierop avatar yllierop commented on August 16, 2024

@eincs thanks for adding those other issues that will aid in Phoenix support.

from haeinsa.

Related Issues (20)

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.