What is Cachalot DB?

An in-memory database for dotnet applications

All data is available in memory and distributed on multiple nodes, allowing for blazing-fast queries. Like Redis but with some significant differences:

  • Persistence is transactional; all update operations are written into a persistent transaction log before being applied to memory.
  • It has a full query model available through SQL and LINQ. It supports all usual operators like projections, distinct, order by, and, of course, a complete where clause. Everything is done server-side.
  • It supports both dictionary and ordered indexes. A highly optimized query processor chooses the best index, combining multiple indexes for one query.
  • It can compute pivot tables server-side even on a cluster of many nodes
  • A high-speed full-text search. You can do either full-text search, traditional queries, or combine the two.
  • Very fast, fully ACID, two-stage transactions on multiple nodes
  • Consistent read context allows executing a sequence of queries in a context that guarantees that data is not modified meanwhile.
  • Bulk inserts: when feeding with large quantities of data, ordered indexes are sorted only once at the end to ensure optimum performance.
  • When used as a distributed cache (persistence disabled), an inventive mechanism allows the description of the cached data, thus enabling complex queries to be served from cache only if all the concerned data is available.