jhipster / generator-jhipster

JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
https://www.jhipster.tech
Apache License 2.0
21.5k stars 4.02k forks source link

Feature Request: Add database support for MemSql Database #1553

Closed aman7000 closed 9 years ago

aman7000 commented 9 years ago

MemSql is a NewSql Database much better than MySql, it is in-memory Database with support for Analytics with column store feature. Can be scaled to multiple servers for free. It has a free community edition which will be free forever. link http://www.memsql.com/ Even MySQL has an enterprise edition. The speed of this database is very high and as on today this database is faster than Oracle and scalable to multiple servers all in the community edition. We should not deprive the jhipster users of this database. Could you please add support for MemSql database.

jdubois commented 9 years ago

Is this some kind of spam?? @aman7000 was created today, as never done anything, and is now doing this "feature request"?? This is like the 3rd time I get this from MemSQL, so now I'm fed up with them -> MemSQL will not be supported

aman7000 commented 9 years ago

This is not spam. I am a real user. As per me the requested feature is important. If you don't intend to make it it's fine. I'll find a way to get it done myself. There is no need to shout.

Regards, Aman S Bains

On Mon, Jun 1, 2015 at 1:40 PM, Julien Dubois notifications@github.com wrote:

Closed #1553 https://github.com/jhipster/generator-jhipster/issues/1553.

— Reply to this email directly or view it on GitHub https://github.com/jhipster/generator-jhipster/issues/1553#event-318512170 .

jdubois commented 9 years ago

Dear Aman, I'm sorry but your account was created yesterday just to post this "feature request", and you talk like a marketing guy. It's also the 3rd time I get this kind of stuff for MemSQL. I've looked at "Aman S Bains" on the Internet and I couldn't find anything. Who are you and what do you want to do with JHipster and MemSQL? Julien.

aman7000 commented 9 years ago

Dear Julien,

I am a developer currently working with Jaguar Software India http://jaguarsoftwareindia.com/. My twitter handle is @aman_bains7 https://twitter.com/aman_bains7. On twitter also I requested for Integrating MemSQL.

In my Company we are developing a Product using JHipster. MySQL performance is very poor and our Product is not able to meet Client expectations.

So we were looking for a solution to increase the speed of the software. We found that MemSQL is very fast and has a community edition with multiple Server deployment. It is many times faster than MySQL (at least 30x faster).

If you could help with it all the SQL Developers will also benefit from this integration.

MemSQL uses the same port as MySQL. I installed MemSQL Docker on my Mac ( http://docs.memsql.com/latest/setup/docker/) and was able to connect to it with existing MySQL Driver. I got stuck when:-

  1. There is no primary key in table. As MemSQL requires a Primary key or a SHARD key for each table. I was able to overcome this by
    • creating the Liquibase table (DATABASECHANGELOG) myself and then running JHipster project.
    • adding primary key attribute to multiple columns where <addPrimaryKey was used to add multi column composite primary keys.
  2. There is a Foreign Key. As MemSQL requires "FOREIGN SHARD KEY" instead of "FOREIGN KEY".
    • I am still stuck on this one. Maybe Liquibase SDK will be required to add "SHARD" word to this command.

If you could help out it would be great.

Regards, Aman S Bains

On Tue, Jun 2, 2015 at 1:42 PM, Julien Dubois notifications@github.com wrote:

Dear Aman, I'm sorry but your account was created yesterday just to post this "feature request", and you talk like a marketing guy. It's also the 3rd time I get this kind of stuff for MemSQL. I've looked at "Aman S Bains" on the Internet and I couldn't find anything. Who are you and what do you want to do with JHipster and MemSQL? Julien.

— Reply to this email directly or view it on GitHub https://github.com/jhipster/generator-jhipster/issues/1553#issuecomment-107853771 .

gzsombor commented 9 years ago

I've never used MemSQL, so I got all the informations from looking from their site. For me it seems, that the performance improvements are coming from having all of the data in memory. Which is not a great thing, as it's not clear what kind of persistence do they guarantee. (I fear, it's same as mongodb, where there isnt any guarantee at all). If I were you, I would put my database on SSD, or create materialized views for the most used queries, or configure ehcache/infinispan cache/or any 2nd level cache properly.

aman7000 commented 9 years ago

As per my knowledge MemSQL constantly backs up the RAM data to disk in the form of log files and time to time snapshots. At any given time if the system crashes, the recovery can be done automatically from the latest snapshot and the logs. There cannot be any data loss if you configure the Database.

Please read the FAQ on the link http://docs.memsql.com/latest/faq/#what-is-the-durability-guaranteed-by-memsql

Regards, Aman S Bains

On Wed, Jun 3, 2015 at 4:55 PM, Zsombor notifications@github.com wrote:

I've never used MemSQL, so I got all the informations from looking from their site. For me it seems, that the performance improvements are coming from having all of the data in memory. Which is not a great thing, as it's not clear what kind of persistence do they guarantee. (I fear, it's same as mongodb, where there isnt any guarantee at all). If I were you, I would put my database on SSD, or create materialized views for the most used queries, or configure ehcache/infinispan cache/or any 2nd level cache properly.

— Reply to this email directly or view it on GitHub https://github.com/jhipster/generator-jhipster/issues/1553#issuecomment-108312636 .

jdubois commented 9 years ago

You shouldn't have any performance issue with MySQL, at least I wouldn't go with another database only for this reason. As @gzsombor said, do you use your 2nd level cache correctly? Did you have a DBA audit your schema?

From what you say, MemSQL looks a lot like Cassandra, which is much more widely used, and is truly Open Source (and not just "free"). We already have support for Cassandra, did you have a look at it?

aman7000 commented 9 years ago

I have some complex calculations to be performed and stored each end of day and that service is failing because on MySQL the calculations and storing it is taking too long and is not finishing. We are unable to complete that operation. Because of this the software has totally failed.

We need Joins and full sql which is not available in Cassandra. So we cannot use it.

As I see it MemSQL is a silver bullet which will solve all problems for many users like me. Why shy away from using it?

Regards, Aman S Bains

On Wed, Jun 3, 2015 at 8:41 PM, Julien Dubois notifications@github.com wrote:

You shouldn't have any performance issue with MySQL, at least I wouldn't go with another database only for this reason. As @gzsombor https://github.com/gzsombor said, do you use your 2nd level cache correctly? Did you have a DBA audit your schema?

From what you say, MemSQL looks a lot like Cassandra, which is much more widely used, and is truly Open Source (and not just "free"). We already have support for Cassandra, did you have a look at it?

— Reply to this email directly or view it on GitHub https://github.com/jhipster/generator-jhipster/issues/1553#issuecomment-108477720 .

gmarziou commented 9 years ago

From what their doc says and what you reported, they use MySQL jdbc driver but with some incompatibilities that would require work in Spring JPA/Hibernate layer in JHipster and also as you said may not work with Liquibase. This seems to be a non trivial task, maybe the JHipster team has higher priorities on their todo list but you could volunteer to do it and propose a PR.

Igorock commented 6 years ago

I don't understand why do you discuss MemSQL cons and pros here, but I want to know: does Liquibase support MemSQL already?

gmarziou commented 6 years ago

@Igorock please don't comment on an issue closed 2 years ago. gitter is a better place for discussions than a bug tracker. And if you want information about Liquibase go to their project.