/ / Java / SQLite - Comment compiler pour -DTHREADSAFE = 1? - java, sql, multithreading, sqlite

Java / SQLite - Comment compiler pour -DTHREADSAFE = 1? - java, sql, multithreading, sqlite

J'ai fait un pooler MySQL (je peux donc effectuer SQL dansAsync) - mais a rapidement décidé d’ajouter d’autres options de base de données (Sqlite). Malheureusement, Sqlite ne semble pas totalement "supporter" de multiples connexions rendant le pooler complètement inutile. J'ai continué à lire sur Sqlite et j'ai remarqué qu'il contenait en fait quelques options de thread, dont l'une était multithread.

Ma question est, comment pourrais-je compiler SQLite sous -DTHREADSAFE = 1? Ou est-ce simplement supposé être exécuté avec cela dans les arguments java? J'utilise Maven

De plus, je suis très ouvert aux différentes options de base de données. Par exemple, h2 prend-t-il en charge la fonction async?

Réponses:

2 pour la réponse № 1

SQLIte fournit uniquement la sécurité des threads, pas de performances supplémentaires lors de l'utilisation de plusieurs threads. Vous ne pouvez pas avoir plusieurs threads accéder à la même base de données en même temps, voir http://www.sqlite.org/threadsafe.html:

Multi-thread. Dans ce mode, SQLite peut être utilisé en toute sécurité par plusieurs threads, à condition qu'aucune connexion à une base de données ne soit utilisée simultanément dans plusieurs threads.

Les performances seront encore pires car il faut utiliser des mutex pour protéger les structures de données, voir http://www.sqlite.org/faq.html#q6:

Cependant, le travail d’acquisition et de libération de ces mutex ralentira légèrement SQLite.