Skip to content

Instantly share code, notes, and snippets.

@klehmann
Last active July 11, 2024 10:44
Show Gist options
  • Save klehmann/49694a765388bc6ae6e60e904bd9d0aa to your computer and use it in GitHub Desktop.
Save klehmann/49694a765388bc6ae6e60e904bd9d0aa to your computer and use it in GitHub Desktop.
Domino JNA Virtual Views - Feature list

Domino JNA Virtual Views - Feature List

  • multi-DB views
  • view structure similar to Domino (multi level categorization, sorted columns)
  • support for sums / average values
  • compute column values via formula or Java code
  • incremental view updates, so no rebuilt required
  • full control when the view is updated, optional read locks to have exclusive access
  • view is populated by the server, shared across users
  • for each user we check which view entries the user is allowed to see (checks DB ACL level and compares user names list for each DB with computed list of document readers list)
  • for category entries we accumulate the readers of all descendant docs to quickly skip categories that would be empty for a user
  • these collected readers stats can be used for analysis purposes
  • several data sources can be combined to produce view data
  • datasource 1: run NSF search with a formula (incrementally), can search data and design documents, optional post processing with FT search
  • datasource 2: profile documents
  • datasource 3: read note ids from a folder (incrementally)
  • datasource 4: compute column values from any list of note ids
  • custom datasources can be implemented and added to the virtual view
  • VirtualViewNavigator to read the view entries that a user is allowed to see, either all entries/category descendants, just docs/category, support for expanded/selected entries, upwards/downwards/paging like NIFReadEntries, keyword and range lookups
  • fast (e.g. processes 40.000 fakename docs and builds the view in 2-3 seconds)
  • VirtualView currently stored in Java heap (each VirtualViewEntry with a ConcurrentSkipListMap for the sorted children), might add support for serialization to disk later on
  • not a Domino specific implementation, would work for other kinds of data as well
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment