Skip to content

Latest commit

 

History

History
227 lines (152 loc) · 7.98 KB

CHANGELOG.md

File metadata and controls

227 lines (152 loc) · 7.98 KB

Change Log

Released on 2017.05.25

Added

  • CocoaPods integration

    • Spec & Scripts by @rob-keepsafe in #9
  • RocksDB isClosed method to check if the database instance is still open.

    • Added by @rob-keepsafe in #11

Updated

  • Project settings to Xcode9
  • Tests to Swift4 syntax

Released on 2017.07.13

Updated

  • Updated Column Family options:
    • uint32_t memtablePrefixBloomProbes ~> double memtablePrefixBloomSizeRatio
    • size_t memtablePrefixBloomHugePageTlbSize ~> size_t memtableHugePageTlbSize
  • Updated Statistics tickers and histograms

Removed

  • Removed obsolete DB options:
    • BOOL disableDataSync
  • Removed obsolete Column Family options:
    • int expandedCompactionFactor
    • int sourceCompactionFactor
    • int maxGrandparentOverlapFactor
    • BOOL verifyChecksumsInCompaction
    • BOOL filterDeletes
    • uint32_t memtablePrefixBloomBits
    • uint32_t minPartialMergeOperands

Released on 2017.02.19

Added

  • Missing nullability annotations and light-weight generics throughout code base
  • New playground content

Updated

  • Project for Xcode 8
  • Swift tests for Swift 3
  • Playground contents and syntax for Swift 3
  • Travis config for iOS 10.2, macOS 10.12
  • Deployment targets to macOS 10.10, iOS 9.0

Removed

  • Removed the deprecated timeoutHint option
  • Removed the deprecated maxMemCompactionLevel option

Breaking Changes

The built-in encoding/decoding of keys and values via the encoding options is completelty removed from this release. The API is completely NSData-based now.

  • Removed built-it Key/Value Encoders and Decoders
    • The conversions of custom types to/from NSData is the responsibility of the caller
  • Removed EncodingOptions
  • Removed all methods depending on EncodingOptions and the built-in key/value encoding and all of the their variants:
    • setObject:forKey:
    • deleteObjectForKey:
    • objectForKey:
    • mergeObject:forKey:
    • mergeOperation:forKey:
  • Refactored all Iterator, Key Comparator and Merge Operator methods accordingly
  • Removed NSNumber Key-Comparators
  • Rename method for setting up default read & write options from setDefaultReadOptions:andWriteOptions: to setDefaultReadOptions:writeOptions:
    • The custom Swift equivalent is setDefault(readOptions:writeOptions:)

Released on 2016.06.12

Hotfix

  • Removed Cocoapods badges from README

Released on 2016.06.12

Added

  • Support for opening the database in read-only mode
  • Support for Write Batch with Index and Write Batch Iterator
  • Support for Range Compaction operations
  • Nullability annotations
    • Better compatibility with Swift
  • New statistics and counters
  • Cocoapods Podspec
  • Travis integration

Breaking Changes

  • RocksDB initializers were changed to class instead of instance methods
  • Removed RocksDB methods without error parameter
    • Better compatibility with Swift's error-handling model
  • Refactored all RocksDB methods so that the error parameter is the last
    • Better compatibility with Swift's error-handling model
  • Removed Column Family Metadata from iOS target
  • RocksDBIteratorKeyRange is refactored to RocksDBKeyRange
    • Key ranges are used not only for iterations but also for compaction jobs
    • Empty-range constant is refactored to open-range, since it represents a range containing all the keys
  • ObjectiveRocks builds frameworks now instead of static libraries

Released on 2016.07.30

Added

  • Source code documentation

Removed

  • Removed + (instancetype)LRUCacheWithCapacity:numShardsBits:removeScanCountLimit: RocksDB Cache initializer

Released on 2015.01.17

All headers are refactored in this release to provide a pure Objective-C interface for Swift compatibility.

Added

  • Basic support for RocksDB Env for configuring priority thread pools
  • Support for querying the Threads Status
  • Options for Background Compactions and Background Flushes
  • Iterator methods for key-value iteration
  • Support for Column Family Metadata
  • Swift tests

Fixed

  • Typo in method name in Filter Policy class
  • Typo in method name to retrieve column families in RocksDB class

Changed

Released on 2015.01.05

This is the first public release of ObjectiveRocks.

Added

  • Database backup and backup-info support
  • Database Checkpoints
  • Support for collecting database statistics, histograms and properties
  • Column Family options
  • Support for Column Family memtable rep factories
  • Support for Block-based, Plain-Table and Cuckoo-Table factories
  • Support for RocksDB Cache
  • Support for RocksDB Filter Policy

Released on 2015.02.01

Added

  • Column Families implementation
  • Implementation for Generic Merge Operators
  • Built-In comparator types for NSString, NSNumber, and RocksDB's own native byte-wise comparator
  • Built-In Key-Value encoders and decoders for NSString and NSJSONSerializable types
  • Write Batch methods for merge operations
  • Prefix-based seek iterations
  • Tests

Released on 2015.12.23

First release of ObjectiveRocks featuring basic RocksDB functionality:

  • Opening and closing RocksDB instances
  • Basic DB options
  • Put, Get and Delete operations
  • Read and Write options that are specific to single operations
  • Atomic updates via Write Batches
  • Key-Value encoders and decoders for converting arbitrary objects to and from NSData
  • Database iteration support
  • Database Snapshots - Read-only view over the entire DB
  • Key Comparators support - For custom key-ordering in the DB
  • Associative Merge Operators support - Atomic read-modify-write operations