Mappedbus Versions Save

Mappedbus is a low latency message bus for Java microservices utilizing shared memory. http://mappedbus.io

v0.5.1

5 years ago

The format of the memory mapped file has changed so make sure to delete old files if you have previously used an earlier version.

Changes:

  • Removed the "append" parameter in the constructor of MappedBusWriter which indicated whether to append data to the file if it already exists. The default behavior is now always to append if the file exists.
  • The two separate commit and rollback fields have been merged into a single "status flag" field which can take three possible values: not set, committed, rolled back. The status flag is updated using compare-and-swap.
  • The write() method now returns a boolean to indicate if the write succeeded. The scenario for a write to fail is when a writer did not update the status flag to commit in time, and a reader which has timed out already set it to indicate a rollback. A simple way to handle a failed write is to simply try write again. The next attempt will be done in a new record.

v0.5

8 years ago

The format of the memory mapped file has changed so make sure to delete old files if you have previously used an earlier version.

Changes:

  • Changed from CAS to fetch-and-add for updating the limit field.
  • Changed the commit and rollback fields from integers (4 bytes) to single byte. The overhead per record is now 6 bytes (commit + rollback + metadata) compared to 12 bytes previously.
  • Removed the size() method from the MappedBusMessage interface since it wasn't used.

v0.4

8 years ago

Changes:

  • Simplified package naming: io.mappedbus.

v0.3

8 years ago

Changes:

  • Simplified the reader interface: there's now only a next() method which steps forward to the next record. The hasNext method has been removed.

v0.2

9 years ago

Changes:

  • Added a new field "rollback" to indicate whether a record has been abandoned. The reason it's needed is that a writer might crash after it has updated the limit field but before it has updated the commit field. To avoid this problem a new field next to the commit field called the rollback field has been added. The reader has a timeout for how long it will wait for the commit field to be set. When that time is reached the reader will set the rollback field and continue with the next record. The rollback field has precedence over the commit field, when the rollback field is set the record is always ignored by the readers.

v0.1

9 years ago

This is the first release of Mappedbus