In-Memory Query executions

Daobab provides extremely fast buffered cache, worked as DAO decorator, in-memory DataSource or entity collection.
Daobab is able to execute the same queries both on database or in-memory buffers.
Any Query list result, automatically becomes an new EntityBuffer, and can be used instantly as a target for further queries.

EntityBuffer

Basically EntityBuffer is a simple entities collection having Daobab Target functionalities.
However, Daobab functionality is able to execute SQL Queries in extraordinary speed.
The cache can be fulfilled:

  • by database - by reading all entities from table
  • as a result of any entity list Select
  • as a collection into code

Benefits

  • no load on the database engine
  • datasource pool not used
  • no network load
  • thread is not consumed for waiting
  • lowered memory usage

When to use?

  • for static indexed data, used elsewhere (dictionaries etc)
  • for transition tables
  • when the most important is speed

When not to use?

  • when table has more than milion rows
  • when table has many LOB cells and too much memory could be consumed for it
  • for tables where data changes very oft
  • for occasionally readed data

BufferedTarget

Daobab allows to fulfill BufferedTarget with certain sorf of data from real database.
You may put here part of the tables (dictionaries for example) or fulfill it with part of the data (related to particular customer)