Remote Storage

Using a shared PostgreSQL database

...

Handling large shared databases

Synchronization times may get long when working with a large database containing several thousand entries. Therefore, synchronization only happens if several conditions are fulfilled:

  • Edit to another field.
  • Major changes have been made (pasting or deleting more than one character).

Class org.jabref.logic.util.CoarseChangeFilter.java checks both conditions.

Remaining changes that has not been synchronized yet are saved at closing the database rendering additional closing time. Saving is realized in org.jabref.logic.shared.DBMSSynchronizer.java. Following methods account for synchronization modes:

  • pullChanges synchronizes the database unconditionally.
  • pullLastEntryChanges synchronizes only if there are remaining entry changes. It is invoked when closing the shared database (closeSharedDatabase).