doccano / doccano

Open source annotation tool for machine learning practitioners.
MIT License
9.37k stars 1.71k forks source link

Have you thought of enabling WAL mode for SQLite? #1968

Open dylanjcastillo opened 2 years ago

dylanjcastillo commented 2 years ago

Have you thought of enabling SQLite's Write-Ahead Logging?

This allows simultaneous writes and reading, which would improve the performance when using SQLite with no real downside.

I've done this in other Django projects using the connection_created signal (see example below). I'd be happy to make this change and open a pull request, if you'd like.

@receiver(connection_created)
def setup_sqlite(connection, **kwargs):
    if connection.vendor != "sqlite":
        return

    with connection.cursor() as cursor:
        cursor.execute("pragma journal_mode = WAL;")
        cursor.execute("pragma synchronous = normal;")
        cursor.execute("pragma temp_store = memory;")
        cursor.execute("pragma mmap_size = 256000000;")
Hironsan commented 2 years ago

nice idea, thanks!