Scalable, low overhead, high-performance Java persistence infrastructure

I am looking to create a website / application. The class model is about 100 objects and is not particularly complex.

A website should be designed to handle about 30,000 concurrent users, but it should potentially be able to handle more.

I would like to use a ready-made save structure, rather than writing my own jdbc to access the database.

I have no choice but to use a relational database.

I would prefer it to have some form of caching, and it would also prefer to tune sql, as it is often necessary to tune performance.

Any suggestions on which conservation infrastructure I should use?

UPDATE:Thanks to everyone. I think the ability to pass sql code is a trump card in this case. You can do some concurrency settings if you have access to it. Although I agree, you have access to it in hibernate / jpa, but this is an exception, not a rule. myBatis is also a lighter weight, less "magical" kind of rationalization. Also, for performance and scaling reasons, I don’t think it is wise to use too many foreign keys where collections are managed by the persistence framework, so I probably won’t use this feature in sleep mode. This would allow me to outline db if necessary. I also think that myBatis is probably a simpler persistence system to handle the first thing. AFAIK, it does not have transparent durability, for example. Your answers have confirmedthat there is no other conservation platform that is more suited to these requirements.

+3
6

SQL - , , myBatis ( iBatis). JDBC , , SQL, .

, , - (.. ). , JPA, EclipseLink Hibernate, . SQL, , myBatis.

- , .

+3

, .

, . , , .

+2

, , , . Qwerky, ( ORM ) . RDBMS , - DBA, . , .

jOOQ , SQL, JDBC, - , API. jOOQ - Java-, SQL.

http://www.jooq.org

+2
0

, rdbms , , - concurrency , Collections? Oracle (sleepycat) Berkeley DB , show-stopper concurrency.

0

Hibernate ( 140 ), , Hibernate , Java:

  • (hi/lo, pooled, pooled-lo)
  • highly consistent entity-level concurrency strategies
  • optimistic lock without version (e.g. OptimisticLockType.ALL, OptimisticLockType.DIRTY)
  • multitenance support
0
source

Source: https://habr.com/ru/post/1784062/


All Articles