Valentina Database KeyValues
[NEW in 7.0]
In Valentina DB v7 we have implemented KeyValue as multi-level and multi-purpose feature.
Valentina Database allows you to create one or more named KeyValue stores.
You can consider a KeyValue object similar to Table object in the scope of Database. Valentina Database object knows how many KeyValues it has and can return you a KeyValue by its name or index.
Each KeyValue uses few internal logical files to keep own data. Since these are permanent data, like Table's Records, these files are stored on the .dat volume of Valentina DB.
VDB KeyValue Features
- KeyValue Store is journaled, like Tables in VDB.
- KeyValue can be created as Temporary Database Object. In this case, its files go to .tmp volume of Valentina DB, and this object is not saved into Database Schema.
- Key Comparator is used automatically depending on kind of KeyValue and its Key Structure.
- Values are stored sorted by key.
- Value saves its original type.
- Value type can be different - from bool to huge BLOBs.
- Big Values that are not pictures, can be compressed, if you specify COMPRESSED on KeyValue creation.
- The basic operations are: Insert(k,v), Update(k,v), Upsert(k,v), Delete(k), Get(k).
- API and SQL access
Valentina DB provides few kinds of KeyValues:
- Valentina DB can have a lot of KeyValue objects if needed.
- Key size of Default KeyValue is limited to 256 bytes for now. In the future, it will be increased to about 4KB (the page size).
- Key size for KeyValue_WithKey and its child-classes is limited by the page size.