DBreeze Database. Release Notes.
Professional, open-source, NoSql (embedded Key/Value storage), transactional, ACID-compliant, multi-threaded, multi-paradigm database management system for .NET 3.5> / Xamarin MONO / .NET Core / .NET Portable / .NET Standard. Written in C#. |
Copyright © 2012 dbreeze.tiesky.com
Oleksiy Solovyov <[email protected]>
Ivars Sudmalis <[email protected]>
It's free software for those who believe it should be free.
Please, notify us about our software usage, so we can evaluate and visualize its efficiency.
1.120.2025.0507 Restored DbMJSON for .NET6> projects (currently .NETStandard, .NETCore are not touched) that uses System.Text.Json.JsonSerializer under the hood instead of JavaScriptSerializer of .NetFramework. Setup: JsonSerializerOptions.PropertyNameCaseInsensitive = true (Compatibility with System.Web.Script.Serialization.JavaScriptSerializer). No-release, no-signing for this concrete version, only NUGET package.
01.119.20250403
- DBreeze.Vectors - vector database layer integrated in DBreeze, based on HNSW, moved to PROD. Re-read documentation, because there are breaking changes with the previous beta-version, storage is incompatible.
01.118.20241016
- Fixing minor issues
01.117.20240627
- Optimized performance and storage logic (no breaking changes) in Vector layer, added vector layer configuration for the mobile device.
01.116.20240527
- Fixed initialization of DBEngine.Resources object in .NET6 project (second step).
01.115.20231103
- Completely rewritten DBreeze Vector Layer with Similarity Search and Clustering. Now it is based on KMeans++ Centroid Propagated Graph. Fast speed of inserts and search. This functionality is available in DBreeze for .NET Framework 4.72>, .NET6> .NetCoreApp3.1> .NetStandard2.1>
Vector layer is in intensive beta testing.
01.109-114.20231016
Special THANX to Yu. A. Malkov, D. A. Yashunin and Curiosity-AI and Theolivenbaum for their love of mathematics and computer algorithms.
01.108.20230723
- Fixed availability of DBEngine.Resources object in .NET6 project
01.107.20211222
- Must have. TextSearchEngine.EXCLUDE fix for the documents not containing excluded text.
01.106.20211213
- Multi_SelectForwardFromTo && Multi_SelectBackwardFromTo. Reading of the same structured keys from different tables simultaneously and in sorted way.
01.105.20211208
- Overloads for SelectBackwardFromTo and SelectForwardFromTo
01.104.20211118
- .NET6 support
01.103.20211104
- Fix of MultiKeyDictionary when ClonedByExpressionTree due to the fact that CloneByExpressionTree doesn’t clone events and delegates.
01.102.20211018
- On the early stage helps the programmers to put modifying tables into the transaction.SynchronizeTables statement.
Can be switched off by:
DBreezeEngine dbe = new DBreezeEngine(new DBreezeConfiguration {
DBreezeDataFolderName = ...,
NotifyAhead_WhenWriteTablePossibleDeadlock = false //default is true
} );
01.101.20211005
- .NET5 support
01.100.20210904
- Generic versions of MultiKeyDictionary
01.099.20210810
- TextSearchSubsystem. Multi-parameter plus range search fix.
01.098.20210212
- Added DBreeze.Utils.MultiKeyDictionary and DBreeze.Utils.MultiKeySortedDictionary.
01.096-097.20201218
- Fixed when multiple tran.ObjectInsert / tran.ObjectRemove of the same primary key and different secondary indexes in one transaction.
01.095.20190812
- Fixed BiserDecoder when added new properties into deserializing class.
01.094.20190609
- Increased speed of the text-search subsystem 2x.
01.093.20190215
- Must have all users of .NetCore/.NetStandard/UWP/Portable versions. Enhanced file-system abstraction in the way implied and tested in the .NET Framework version.
- Biser.NET has BiserObjectify automatic encoder/decoder generator
Special THANX to Dan Gershony (https://github.com/stratisproject) for his keen eyes and understanding of the processes.
Special THANX to Nicolas Dorier (https://github.com/MetacoSA/NBitcoin) for riding DBreeze.
01.092.20181029
- Fixed possible synchronization issue when ObjectGetNewIdentity is used without tran.SynchronizeTables.
- Fixed DBReeze.Utils.StringProcessing.ReplaceMultiple
Special THANX to Mārtiņš Šneiders for his attention to details
01.091.20180823
- Integrated Biser.NET of v1.7.
01.091.20180822
- Integrated Biser.NET of v1.6 that contains also JSON serializer
01.091.20180525
- DBreezeObjectInsertResult contains pointer to the inserted entity github#46
01.089-090.20180220
- Integrated binary serializer Biser.NET that increased final DLL on 8KB and now DBreeze size is 370KB.
- Nuget gets compiled version for .NET Framework 4.7
01.088.20170621
- TextSearch with ignoring FullMatch and Contains search block by parameter ignoreOnEmptyParameters = true [20170621]
01.087.20170609
- Must have. Set of fixes and optimizations of the Text-Search-Engine and transaction parallel reads.
01.086.20170522
- Parallel reads inside of one transaction to get benefits of .NET TPL [20170522]
- Nuget contains .NET Framework 4.6.2 assembly.
01.085.20170515
- Set of optimizations in Text-Search-Engine and recompilation under VS2017 pure .NET Standard 1.6 project.
01.084.20170321
- DBreeze as an object database. Objects and Entities. Read docu from [20170321]
- InsertDataBlockWithFixedAddress. Read docu from [20170306]
- RandomKeySorter. Read docu from [20170319]
01.083.20170302
- Set of fixes concerning ThreadAbortException.
- Set of fixes concerning Text-Search-Engine XOR/OR searches.
Special THANX to Evita Lanka for her preliminary tests
01.082.20170204
- Enhancing functionality of DBreezeEngine.Resources. Read docu from [20170202]
01.081.20170201
- Mixing multi-parameter and a range search. Read docu from [20161214].
- Storing synchronized entities (resources) between memory and disk.Read docu from [20170201].
01.080.20161201
- Must have for those who use integrated Text-Search-Engine. Breaking changes in Text-Search-API (data structures on the disk remains the same).
- Integrated fast multi-parameter search concept with powerful query possibilities. Read docu from [20161201].
01.079.20161007
- Must have for those who use integrated Text-Search-Engine. Optimizing engine.
01.078.20160921
- Must have for those who use integrated Text-Search-Engine.
- Added external notifier of background tasks processing DBreezeEngine.BackgroundTasksExternalNotifier
01.076-077.20160829
- Must have. Fixes in text-search subsystem. Removing check of supplied search patterns - they must be checked from outside.
01.075.20160628
- Integrated document text-search subsystem (full-text/partial). (from DBreezeBased project). Read docu from [20160628]
01.074.20160329
- Added new DataStructure type: DBreeze.DataStructures.DataAsTree. Described in documentation from [20160329]
01.073-2.20160314
- Nuget package is enhanced with version for Universal Windows Platform (UWP)
01.073.20160108
- Must have. Fixed parallel reads possible exceptions in case of intensive updates.
- Added 2 more extensions ToByteArrayFromHex and ToHexFromByteArray in DBreeze.Utils.BytesProcessing
Special THANX to Christian Merat, who keeps the DBreeze development team engaged and creates comprehensive test cases, preventing boredom..
01.072.20150827
- New data types for values: Guid and Enum
- DBreeze.DataTypes.Row.Value remembers its state after first value read out
- Lists data types from public APIs are converted into IList
01.071.20150306
- Must have. Fixed issue with table names cache in multi DBreeze engine instances environment.
Special THANX to GWBasic for his test-based approach.
01.070.20150306
- DBreeze.dll is signed and has strong name.
01.069.20150219
- Must have. Fixed issue with possible data loss in case of usage Select (with write visibility scope) and Insert of the same entity, multiple times in one transaction.
Special THANX to Christian von Thun for his hackers luck.
01.068.20141205
- Optimization of NestedTable.Select with ReadVisibilityScope = true. RANDOM SELECT gained speed is around 23000 reads per second, direct from HDD, with a high dispersion of keys.
01.067.20141112
- Must have. Fix of backup restoration procedure.
Special THANX to Nikolajs Valters for his agility.
01.065.20141104
- Must have. Fix of possible speed degradation while ForwardFromTo and BackwardFromTo iterations.
Special THANX to Tino Zanner for his vigilance.
01.064.20140803
- Optimized process of retrieving path to the physical files representing user tables
01.063.20140603
- Added native support of byte[] serialized/deserialized object as values.
tran.Insert<int,MyObjet>(“t1”,1,new MyObject(){ p1 =1});
var p1 = tran.Select<int,MyObject>(“t1”,1).Value.p1;
Read documentation to see usage examples with Protobuf.NET.
01.062.20140425
- Fixed, adding in one transaction the same key many times with different value sizes.
Special THANX to Uldis Vilsons for his inquisitive mind.
01.061.20131120
- RestoreTableFromTheOtherTable now can restore table without remote .rhp and .rol files.
- Must have. In case if DBIsNotOperable, now Commit() throws correspondent exception.
Special THANX to Arvis Liegenieks for his innovativeness.
01.060.20130813
- Important, hot fix of version 01.059.20130812
01.058-059.20130812
- Added for Master and Nested tables overload Insert<TKey, TValue>(string tableName, TKey key, TValue value, out byte[] refToInsertedValue, out bool WasUpdated, bool dontUpdateIfExists) (read docu).
- Added property transaction ValuesLazyLoadingIsOn (read docu for explanation).
-Docu is included.
01.057.20130811
- Added another Master and Nested tables .RemoveKey overload (RemoveKey<TKey>(string tableName, TKey key, out bool WasRemoved, out byte[] deletedValue)). It can return deleted value and notify if value existed in one round with key removal.
01.056.20130728
- Added control of the “Transaction Journal File” growth. Now it's automatically re-created,when reaches 10MB size.
01.055.20130719
- Fixed non-critical issue in SelectDirect read.
01.054.20130628
- Optimization in RAM usage of LianaTrie IO layer (FSR).
Special THANX to don dedragao for his resourcefulness.
01.053.20130613
- Added new type of transaction, with full lock for tables (read docu).
- New docu is included.
01.052.20130608
- Recommended update for all.
- Fixed behaviour of parallel threads, while table remove with file recreation command.
- Added new method in transaction RestoreTableFromTheOtherFile. (Read docu)
- Set of optimizations of the new IO layer.
01.051.20130607
- Fixed, parallel read could fail with new IO layer.
01.050.20130529
- Needed recompilation of the projects who use DBreeze (taken away "Industrial” and “Light” mode settings. From now only “INDUSTRIAL” by default).
- Remastered disk and memory IO layers.
- Overwriting updates speed increased.
- Technical_SetTable_OverwriteIsNotAllowed usage speed is increased and size is decreased.
01.049.20130525
- Fixed InsertPart in Technical_SetTable_OverwriteIsNotAllowed mode.
- Optimized nested tables commit speed.
- Fixed UnregisterTransaction non-critical rare issue.
01.048.20130414
- Recommended update for all.
- Fixed non-critical issue in "Light mode"
- New methods for handling batch modifications in "Industrial Mode" (read documentation).
01.047.20130402
- Recommended update for all.
- Fixed critical issue (very rare, but possible, in saving of root node rollback)
- “Industrial DBreeze” pack (read documentation).
01.046.20130304
- Recommended update for all. Fix of the prev fix.
- DBreeze.Utils ByteArrays processing is enhanced with IndexOfByteArray method.
01.045.20130304
- Recommended update for all. Fixed issue in Rollback, while DBreeze Engine Dispose.
Special THANX to krome for his in-time support.
01.044.20121207
- Recommended update for all. Fixed issue in bulk-insert storage buffer.
Special THANX to Steven Fraleigh for his circumstantiality.
01.043.20121111
- Now it’s possible to reside different tables in different physical locations and in memory. Read documentation.
- New documentation is included.
01.042.20121101
- Added new iterators for transaction master and nested tables (read documentation):
SelectForwardStartsWithClosestToPrefix and SelectBackwardStartsWithClosestToPrefix
- New documentation is included.
01.041.20121023
- DBreeze now can work in-memory also - read documentation.
- "Out-of-the-box" bulk insert speed increased by 4 times - read documentation.
- New documentation is included.
01.040.20121015
- Secondary index help. Modification commands overloads - read documentation.
- New documentation is included.
01.039.20121012
- Enhanced iterators behaviour inside of writing transactions, read documentation.
- Set of optimizations.
- New documentation is included.
01.038.20120922
- Recommended recompilation of your project after attaching new DBreeze version, if you have errors concerning manual DateTime conversion functions, please refer to documentation.
- Support of the null-able data types of fixed length inside the value virtual columns.
- Support of the fixed length text size inside the virtual columns (like nvarchar(75) NULL or varchar(20) from well-known RDBMS)
- New documentation is included.
01.037.20120913
- Recommended update for all.
- Fixed non-synchronized range selects, while active inserting thread.
- Fixed and optimized SelectForwardStartsWith/SelectBackwardStartsWith
Special THANX for the issues detection to codeplex member sfraleigh
01.036.20120910
- Changed license model to New BSD. This software is free now.
01.035.20120906
- Fixed atomicity issue (PART 2 ) inside of incremental backup (if you have already started to work with incremental backups, please, do it again from scratch).
01.034.20120905
- Fixed atomicity issue inside of incremental backup (if you have already started to work with incremental backups, please, do it again from scratch).
- Added second DBreeze constructor with the only parameter DBreezeConfiguration (namespace DBreeze), there you can specify DbreezeDataFolder and instantiate, by necessity, an incremental backup.
01.033.20120905
- Increased chunk length, inside of backup restoration routine.
- Included new documentation.
01.032.20120904
- Integrated DBreeze incremental backup/restore abilities.
- Included new documentation.
01.031.20120829
- Fixed simultaneous insert into the row partial value and nested tables issue.
01.030.20120822
- DBreeze.DataTypes.Row.LinkToValue - returns physical pointer to key/value, which can be used later in SelectDirect statement, now always returns pointer of fixed 8 bytes length.
01.029.20120802
- Added tran.SelectDataBlock and nestedTable.SelectDataBlock (alternative way to get dynamic length data block from the table)
01.028.20120802
-ChangeKey, Insert and InsertPart overloads which return physical pointer to the Key/Value (for SelectDirect usage) now return this pointer of fixed 8 bytes length. SelectDirect recognizes reference length of different sizes and automatically converts them into the trie-corresponded pointer size.
01.027.20120703
- Optimizations in rollback file behaviour.
01.026.20120629
- Important update. ReaderWriterSpinLock showed problems in huge threads load environment and was wrapped with functions of ReaderWriterLockSlim, which is little bit slower in initialization, but quite reliable.
01.025.20120628
- Important update. Fixed rollback write method of the root node.
- Row has now property LinkToValue, which represents link for SelectDirect
- Scheme has now method GetFileNameFromTableName
01.024.20120627
- Important update. Fixed memory leak, when committing changes in more then 1 table.
01.023.20120625
- fixed issues in InsertPart (necessary update for all who uses InsertPart - virtual column update)
01.022.20120625
- Transaction journal optimizations (created db’s will go on to work)
01.021.20120620
- Fixed parallel access issue to Transaction Journal
01.020.20120620
- Fixed Engine.Close and recreation (correction in disposing of the Scheme and TranJrnl)
01.019.20120613
- Fixed Scheme.IfUserTableExists parallel access
01.018.20120608
-Added DBreeze.Utils extension. Byte array to DateTime and back.
01.017.20120601
- Added tran.InsertDataBlock / Row.GetDataBlock - ability to store in the row virtual column of dynamic data length.
- Added 2 collision-safe hash-functions of common usage (64bit and 128bit) based on MurMurHash3, for storing hashes of byte array (used for fast string search)
- New Docu included
01.016.20120529
- Nested tables memory management. Nested Table Close(), controlling memory consumption.
- Secondary Index. Direct key select.
- New docu included
01.015.20120526
- New Documentation is included
- Added new InsertDictionary/SelectDictionary InsertHashSet/SelectHashSet for the same table level.
01.014.20120525
- New Documentation is included
- Random keys select optimization (works about 5 seconds in the worst keys scenario for 100K requests)
- Added new InsertDictionary/SelectDictionary InsertHashSet/SelectHashSet - methods
01.013.20120524
- Row.GetTable(uint tableIndex) will return reference to the table stored in this row
- Fixed some visibility scope issues after adding fractal structure.
01.012.20120524
- Fixed RemoveAllKeys with "false" param then SelectForward iterator exception
01.011.20120523
- Added dataTypes char and char?
- Started testing with direct value access (instead of secondary index)
01.010.20120523
- Fixed SelectFromTo if includeStartKey = false
- Fixed RemoveAllKeys with file re-creation = true
- an optimization set
01.009.20120522
- included documentation for multi-dimensional tables
- fixed RemoveAll keys issue
01.008.20120521
- first fractal tables structure release. Docu in preparation
- fixed update value reservation slot (uint-int) issue - could damage db consistency -
test databases must be recreated.
- fixed visibility scope issue after update.
01.007.20120518
- Fixed INSERT-SELECT-COMMIT-CLOSE-SELECT issue.
- Fixed rollback issue, after its virtualizing.
01.006.20120515
- Fixed Select Backward specific keys issue.
01.005.20120514
- Fixed Select Forward-Backward StartsWith issue.
- Fixed Add-Remove-Add key issue.
- Set of optimizations
01.004.20120509
- Fixed synchro-read visibility issue.
01.003.20120509
- Enhanced memory management while working with big amount of tables.
01.002.20120507
- Benchmarking started optimizing places while tests.
01.001.20120503
- Base version released.
Copyright © 2012 dbreeze.tiesky.com / Oleksiy Solovyov / Ivars Sudmalis