MapDB 4 announcementI started work on MapDB 4; this blog post describes some details. The last major version, 3.0, was released a long time ago. I decided to wrap up my work on ...
MapDB storage and design changeThis article outlines recent changes in MapDB 4 development. I decided to refactor Serializer interface and merge it into Store.
MapDB in February 2021I resumed work on MapDB a few weeks ago. Public repo and alpha version should surface at the end of February. Here are some notes about MapDB development for...
Log Store format and compactionDesigning reliable append-only stores is hard. This blog post outlines design for new append-only store for MapDB4. It has following features:
JetBrains Xodus - code overviewI started exploring alternative DB engines. I want to find interesting algorithms, new ideas and perhaps some new code for MapDB.
New record typesStoreDirect in MapDB 3 is very simple key-value store. It takes an object (record), serializes it into binary form, and stores it in file. (it is bit more co...
MapDB 4 and near futureI decided to start new major MapDB version. Master branch was already refactored and tagged as MapDB 4.
Scala, boxing and concurrent collectionsI am working on concurrent Scala code. Native Scala collections do not have that many features, so I have to use native Java collections together with some ...
Lessons from MapDB developmentMapDB is great project, but for many reasons it is falling behind other projects which raised around the same time (Hazelcast, Redis…). In this post I will...
Memory mapped files, allocation and JVM crashI have some experience when it comes to memory map (mmap) files and database storage/ Long time ago I added mmap storage to H2 SQL database. MapDB was first ...
Kotlin vs Java - Lambdas and LocksA few months ago ago I wrote post named Scala has weakly typed syntax. I should expand it a bit: Scala is excellent language, but Kotlin is far better. Whe...
LSM Store and ShardsIn last post. I explained how Updates are chained in linked-list and organized into log files. Today we will discus shards and better compaction.
LSM Store and UpdatesThis is the first part of a small series of blog posts about the upcoming StoreLSM and its design. My take on append-only log files, their compaction, snapsh...
Scala has weakly typed syntaxI recently gave a talk named “Scala vs Kotlin vs Java8” at Geecon conference. It compared three languages for the purposes of practical, daily programming. ...
MapDB 3 Release Candidate and near futureMapDB 3.0 Release Candidate 1 is out. In about two weeks it will become stable release. Right now the priority is to fix bugs and improve documentation. Now ...
MapDB enters beta, storage format and API freezeAfter almost 6 months of development, 3.0 branch enters beta stage. API and storage are now frozen and no breaking change should happend, unless its required...
Memory mapped file and JVM crashMemory mapped (mmap) file reatly improves performance over traditional RandomAccessFile or FileChannel. However it has quirks and could cause JVM crash. MapD...
Migrating to MapDB 3.0MapDB 3 is now usable, so lets talk about differences from older releases and howto migrate into new release.
Milestone 2 is out and 3.0 roadmapMapDB 3.0 milestone 2 was released today. M2 adds BTreeMap, Data Pump and new faster SortedTableMap.
Unit testing multi-threaded code with Thread WeaverMapDB uses Thread Weaver for verifying multi-threaded code. It was written by Google developers and has pretty impressive features. Thread Weaver executes co...
MapDB 3.0I will start with the bad news. Current 2.0 branch needs major redesign. It has bugs, concurrency issues and is slow. I decided to start work on new 3.0 bran...
Better primitive collectionsThere are many primitive collections libraries for Java. Uf you are not familiar with them, read this overview I like them for reduced memory usage and impro...