Skip to content

Latest commit

 

History

History
460 lines (300 loc) · 8.19 KB

CHANGELOG.md

File metadata and controls

460 lines (300 loc) · 8.19 KB

2024-04-28

crate version
foyer 0.8.9
foyer-common 0.6.4
foyer-memory 0.3.6
foyer-storage 0.7.6
foyer-storage-bench 0.7.5

Changes

  • feat: Add config to control the recover mode.
  • feat: Add config to enable/disable direct i/o. (Enabled by default for large entries optimization.)

2024-04-28

crate version
foyer 0.8.8
foyer-memory 0.3.5
foyer-storage 0.7.5
foyer-storage-bench 0.7.4

Changes

  • feat: Impl Debug for HybirdCache.
  • feat: Impl serde, Default for eviction configs.
  • refactor: Add internal trait EvictionConfig to bound eviction algorithm configs.

2024-04-27

crate version
foyer 0.8.7

Changes

  • Make HybridCache clonable.

2024-04-27

crate version
foyer-memory 0.3.4

Changes

  • Fix S3FIFO ghost queue.

2024-04-26

crate version
foyer-storage 0.7.4

Changes

  • Fix FsDeviceBuilder on a non-exist directory without cacpacity given.

2024-04-26

crate version
foyer 0.8.6
foyer-common 0.6.3
foyer-intrusive 0.5.3
foyer-memory 0.3.3
foyer-storage 0.7.3
foyer-storage-bench 0.7.3

Changes

  • Remove unused dependencies.
  • Remove hakari workspace hack.

2024-04-26

crate version
foyer 0.8.5

Changes

  • Expose EntryState, HybridEntry.
  • Expose StorageWriter, Metrics, get_metrics_registry, set_metrics_registry.
  • Expose RangeBoundsExt, BufExt, BufMutExt.
  • Re-export ahash::RandomState.
  • Loose entry() args trait bounds.

2024-04-25

crate version
foyer 0.8.4

Changes

  • Expose HybridCacheEntry.

2024-04-25

crate version
foyer 0.8.3

Changes

  • Expose Key, Value, StorageKey, StorageValue traits.

2024-04-24

crate version
foyer 0.8.2
foyer-common 0.6.2
foyer-intrusive 0.5.2
foyer-memory 0.3.2
foyer-storage 0.7.2
foyer-storage-bench 0.7.2
foyer-workspace-hack 0.5.2

Changes

  • Add nightly feature to make it compatible with night toolchain.

2024-04-24

crate version
foyer 0.8.1
foyer-common 0.6.1
foyer-intrusive 0.5.1
foyer-memory 0.3.1
foyer-storage 0.7.1
foyer-storage-bench 0.7.1
foyer-workspace-hack 0.5.1

Changes

  • Add with_flush to enable flush for each io.
  • Loose MSRV to 1.76 .
  • Flush the device on store close.

2024-04-23

crate version
foyer 0.8.0
foyer-common 0.6.0
foyer-intrusive 0.5.0
foyer-memory 0.3.0
foyer-storage 0.7.0
foyer-storage-bench 0.7.0
foyer-workspace-hack 0.5.0

Changes

  • Combine in-memory cache and disk cache into HybridCache.
  • Refine APIs, make them more user-friendly.
  • Refine Key, Value, StorageKey, StorageValue traits.
  • Support serde for storage key and value serialization and deserialization.
  • Loose trait bounds for key and value.
  • Add configurable ghost queue for S3FIFO.
  • Fix S3FIFO eviction bugs.
  • Add more examples.

2024-04-11

crate version
foyer 0.7.0
foyer-common 0.5.0
foyer-intrusive 0.4.0
foyer-memory 0.2.0
foyer-storage 0.6.0
foyer-storage-bench 0.6.0
foyer-workspace-hack 0.4.0

Changes

  • Make foyer compatible with rust stable toolchain (MSRV = 1.77.2). 🎉

2024-04-09

crate version
foyer-storage 0.5.1
foyer-memory 0.1.4

Changes

  • fix: Fix panics on state() for s3fifo entry.
  • fix: Enable offset_of feature for foyer-storage.

2024-04-08

crate version
foyer-intrusive 0.3.1
foyer-memory 0.1.3

Changes

  • feat: Introduce s3fifo to foyer-memory.
  • fix: Fix doctest for foyer-intrusive.

2024-03-21

crate version
foyer-memory 0.1.2

Changes

  • fix: foyer-memory export DefaultCacheEventListener.

2024-03-14

crate version
foyer-memory 0.1.1

Changes

  • Make eviction config clonable.

2024-03-13

crate version
foyer-storage-bench 0.5.1

Changes

  • Fix foyer-storage-bench build with trace feature.

2024-03-12

crate version
foyer 0.6.0
foyer-common 0.4.0
foyer-intrusive 0.3.0
foyer-memory 0.1.0
foyer-storage 0.5.0
foyer-storage-bench 0.5.0
foyer-workspace-hack 0.3.0

Changes

  • Release foyer in-memory cache as crate foyer-memory.
  • Bump other components with changes.

2023-12-28

crate version
foyer 0.5.0
foyer-common 0.3.0
foyer-intrusive 0.2.0
foyer-storage 0.4.0
foyer-storage-bench 0.4.0
foyer-workspace-hack 0.2.0

Changes

  • Bump rust-toolchain to "nightly-2023-12-26".
  • Introduce time-series distribution args to bench tool. #253

Fixes

  • Fix duplicated insert drop metrics.

2023-12-22

crate version
foyer 0.4.0
foyer-storage 0.3.0
foyer-storage-bench 0.3.0
foyer-workspace-hack 0.1.1

Changes

  • Remove config flusher_buffer_capacity.

Fixes

  • Fix benchmark tool cache miss ratio.

2023-12-20

crate version
foyer-storage 0.2.2
  • Fix metrics for writer dropping.
  • Add interface insert_async_with_callback and insert_if_not_exists_async_with_callback for callers to get the insert result.

2023-12-18

crate version
foyer-storage 0.2.1
  • Introduce the entry size histogram, update metrics.

2023-12-18

crate version
foyer 0.3.0
foyer-common 0.2.0
foyer-storage 0.2.0
foyer-storage-bench 0.2.0
  • Introduce the associated type Cursor for trait Key and Value to reduce unnecessary buffer copy if possible.
  • Remove the ring buffer and continuum tracker for they are no longer needed.
  • Update the configuration of the storage engine and the benchmark tool.

2023-11-29

crate version
foyer 0.2.0
foyer-common 0.1.0
foyer-intrusive 0.1.0
foyer-storage 0.1.0
foyer-storage-bench 0.1.0
foyer-workspace-hack 0.1.0

The first version that can be used as file cache.

The write model and the design of storage engine has been switched from CacheLib navy version to the ring buffer version (which was highly inspired by MySQL 8.0 link_buf).

Introduces Store, RuntimeStore, LazyStore to simplify usage. In most cases, RuntimeStore is preferred to use a dedicated tokio runtime to serve foyer to avoid the influence to the user's runtime. If lazy-load is needed, use RuntimeLazyStore instead.

The implementation of foyer is separated into multiple crates. But importing foyer is enough for it re-exports the crates that foyer's user needs.

Brief description about the subcrates:

  • foyer-common: Provide basic data structures and algorithms.
  • foyer-intrusive: Provide intrusive containers for implementing eviction lists and collections. Intrisive data structures provide the ability to implement low-cost multi-index data structures, which will be used for the memory cache in future.
  • foyer-storage: Provide the file cache storage engine and wrappers to simplify the code.
  • foyer-storage-bench: Runnable benchmark tool for the file cache storage engine.
  • foyer-workspace-hack: Generated by hakari to prevent building each crate from triggering building from scratch.

2023-05-12

crate version
foyer 0.1.0

Initial version with just bacis interfaces.