We are very excited to announce Siaqodb 5.0 Beta which brings as main feature/change a new storage engine. Siaqodb 5.0 uses LMDB as storage engine which has a lot of benefits and it will be available for all major platforms that Siaqodb already supports: .NET, WindowsStore, WindowsPhone, Xamarin and Unity.
Why we changed the storage engine and why was that important to Siaqodb? First of all LMDB is an extraordinary storage engine and besides OpenLDAP is used already in many other projects, so is extensively tested by many vendors which has huge advantage over our own storage engine. Secondly, we started CryptonorDB project and there we target multiple platforms (not only .NET) and we want to offer interoperability between Siaqodb and CryptonorDB so, since Siaqodb is available only for .NET, it make sense to use a widely used storage engine on both projects, so they will easily interoperate. Third is performance; customers use Siaqodb because is fast, much much faster than SQLite and other embedded database engine, so we needed a storage engine that could keep outstanding performance. With LMDB as storage engine Siaqodb 5.0 is even faster than Siaqodb 4.X in many scenarios and safer than ever.
We updated all sample projects, but the API is 99% the same, so you can start really quick to use the new version. Bellow you can find some things to be considered before using the new version.
Siaqodb 5.0 BETA considerations:
- Even the storage engine is changed, the API is 99% the same as Siaqodb 4.X API.
- Fully transactional – all operations are transactional (including metadata and indexes).
- Siaqodb 5.0 uses only one database file called “data.mdb” where is kept everything: data, indexes, metadata.
- Siaqodb 4.0 database files are not seen by Siaqodb 5.0 Beta. The final release will have an automatic data migration.
- LMDB storage engine requires to allocate db size in front; Siaqodb sets default size to 50 MB; to increase/decrease this size, use the Open method like this:
Sqo.Siaqodb.Open(path,30*1024*1024 ,200);//db size has now 30MB.
- Sqo.Siaqodb class implements now IDisposable since it’s using native binaries, so Siaqodb must always be closed/disposed to release the allocated resources.
It would be great to get feedback from you, so go and grab latest bits and send any remark to support at siaqodb dot com.