deveel/deveeldb

Extract Server-Related Operations to a Specific Library

Opened this issue · 0 comments

The Kernel library defines a whole Protocol to interface the ADO.NET client to the database system, emulating a remote connection that instead goes through In-Memory objects (not even local network communication).

This architecture is elegant, but useless in an embedded context and results a complicated overhead in the CPU cycles and memory usage. Also, the whole set of objects needed to support this makes the library slightly heavier (not much, but still ...).

The best approach is to provide the ADO.NET with a direct access to ISession, IQuery and ITable objects, to be translated into ADO.NET compatible objects (eg. DeveelDbDataReader, DeveelDbCommand, etc.). At the same time, extract the features for protocol communications into a dedicated library (eg. deveeldb.remote ?) that will be used by other components (eg. a network server) to provide communications between a remote location and a database system.