github.com/etecs-ru/ristretto@v0.9.1/CHANGELOG.md (about) 1 # Changelog 2 All notable changes to this project will be documented in this file. 3 4 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) 5 and this project will adhere to [Semantic Versioning](http://semver.org/spec/v2.0.0.html) starting v1.0.0. 6 7 ## Unreleased 8 9 ## [0.2.0] - 2022-02-03 10 This release is adopted fork of the https://github.com/dgraph-io/ristretto. Only added is CI actions, code formatting, field alignment fix on structures. 11 12 ### Changed 13 - Removed glog dependency 14 - Removed pkg/errors dependency 15 16 ### Added 17 - GitHub Actions for build, lint, release, CodeQL 18 - Code coverage calculating and uploading 19 - Matrix tests for Linux, MacOS, Windows 20 21 ### Fixed 22 - Field alignment on structs, potentially lowering memory consumption for Ristretto (needs benchmarking) 23 24 ## [0.1.0] - 2021-06-03 25 26 [0.1.0]: https://github.com/dgraph-io/ristretto/compare/v0.1.0..v0.0.3 27 This release contains bug fixes and improvements to Ristretto. It also contains 28 major updates to the z package. The z package contains types such as Tree (B+ 29 tree), Buffer, Mmap file, etc. All these types are used in Badger and Dgraph to 30 improve performance and reduce memory requirements. 31 32 ### Changed 33 - Make item public. Add a new onReject call for rejected items. (#180) 34 35 ### Added 36 - Use z.Buffer backing for B+ tree (#268) 37 - expose GetTTL function (#270) 38 - docs(README): Ristretto is production-ready. (#267) 39 - Add IterateKV (#265) 40 - feat(super-flags): Add GetPath method in superflags (#258) 41 - add GetDuration to SuperFlag (#248) 42 - add Has, GetFloat64, and GetInt64 to SuperFlag (#247) 43 - move SuperFlag to Ristretto (#246) 44 - add SuperFlagHelp tool to generate flag help text (#251) 45 - allow empty defaults in SuperFlag (#254) 46 - add mmaped b+ tree (#207) 47 - Add API to allow the MaxCost of an existing cache to be updated. (#200) 48 - Add OnExit handler which can be used for manual memory management (#183) 49 - Add life expectancy histogram (#182) 50 - Add mechanism to wait for items to be processed. (#184) 51 52 ### Fixed 53 - change expiration type from int64 to time.Time (#277) 54 - fix(buffer): make buffer capacity atleast defaultCapacity (#273) 55 - Fixes for z.PersistentTree (#272) 56 - Initialize persistent tree correctly (#271) 57 - use xxhash v2 (#266) 58 - update comments to correctly reflect counter space usage (#189) 59 - enable riscv64 builds (#264) 60 - Switch from log to glog (#263) 61 - Use Fibonacci for latency numbers 62 - cache: fix race when clearning a cache (#261) 63 - Check for keys without values in superflags (#259) 64 - chore(perf): using tags instead of runtime callers to improve the performance of leak detection (#255) 65 - fix(Flags): panic on user errors (#256) 66 - fix SuperFlagHelp newline (#252) 67 - fix(arm): Fix crashing under ARMv6 due to memory mis-alignment (#239) 68 - Fix incorrect unit test coverage depiction (#245) 69 - chore(histogram): adding percentile in histogram (#241) 70 - fix(windows): use filepath instead of path (#244) 71 - fix(MmapFile): Close the fd before deleting the file (#242) 72 - Fixes CGO_ENABLED=0 compilation error (#240) 73 - fix(build): fix build on non-amd64 architectures (#238) 74 - fix(b+tree): Do not double the size of btree (#237) 75 - fix(jemalloc): Fix the stats of jemalloc (#236) 76 - Don't print stuff, only return strings. 77 - Bring memclrNoHeapPointers to z (#235) 78 - increase number of buffers from 32 to 64 in allocator (#234) 79 - Set minSize to 1MB. 80 - Opt(btree): Use Go memory instead of mmap files 81 - Opt(btree): Lightweight stats calculation 82 - Put padding internally to z.Buffer 83 - Chore(z): Add SetTmpDir API to set the temp directory (#233) 84 - Add a BufferFrom 85 - Bring z.Allocator and z.AllocatorPool back 86 - Fix(z.Allocator): Make Allocator use Go memory 87 - Updated ZeroOut to use a simple for loop. (#231) 88 - Add concurrency back 89 - Add a test to check concurrency of Allocator. 90 - Fix(buffer): Expose padding by z.Buffer's APIs and fix test (#222) 91 - AllocateSlice should Truncate if the file is not big enough (#226) 92 - Zero out allocations for structs now that we're reusing Allocators. 93 - Fix the ristretto substring 94 - Deal with nil z.AllocatorPool 95 - Create an AllocatorPool class. 96 - chore(btree): clean NewTree API (#225) 97 - fix(MmapFile): Don't error out if fileSize > sz (#224) 98 - feat(btree): allow option to reset btree and mmaping it to specified file. (#223) 99 - Use mremap on Linux instead of munmap+mmap (#221) 100 - Reuse pages in B+ tree (#220) 101 - fix(allocator): make nil allocator return go byte slice (#217) 102 - fix(buffer): Make padding internal to z.buffer (#216) 103 - chore(buffer): add a parent directory field in z.Buffer (#215) 104 - Make Allocator concurrent 105 - Fix infinite loop in allocator (#214) 106 - Add trim func 107 - Use allocator pool. Turn off freelist. 108 - Add freelists to Allocator to reuse. 109 - make DeleteBelow delete values that are less than lo (#211) 110 - Avoid an unnecessary Load procedure in IncrementOffset. 111 - Add Stats method in Btree. 112 - chore(script): fix local test script (#210) 113 - fix(btree): Increase buffer size if needed. (#209) 114 - chore(btree): add occupancy ratio, search benchmark and compact bug fix (#208) 115 - Add licenses, remove prints, and fix a bug in compact 116 - Add IncrementOffset API for z.buffers (#206) 117 - Show count when printing histogram (#201) 118 - Zbuffer: Add LenNoPadding and make padding 8 bytes (#204) 119 - Allocate Go memory in case allocator is nil. 120 - Add leak detection via leak build flag and fix a leak during cache.Close. 121 - Add some APIs for allocator and buffer 122 - Sync before truncation or close. 123 - Handle nil MmapFile for Sync. 124 - Public methods must not panic after Close() (#202) 125 - Check for RD_ONLY correctly. 126 - Modify MmapFile APIs 127 - Add a bunch of APIs around MmapFile 128 - Move APIs for mmapfile creation over to z package. 129 - Add ZeroOut func 130 - Add SliceOffsets 131 - z: Add TotalSize method on bloom filter (#197) 132 - Add Msync func 133 - Buffer: Use 256 GB mmap size instead of MaxInt64 (#198) 134 - Add a simple test to check next2Pow 135 - Improve memory performance (#195) 136 - Have a way to automatically mmap a growing buffer (#196) 137 - Introduce Mmapped buffers and Merge Sort (#194) 138 - Add a way to access an allocator via reference. 139 - Use jemalloc.a to ensure compilation with the Go binary 140 - Fix up a build issue with ReadMemStats 141 - Add ReadMemStats function (#193) 142 - Allocator helps allocate memory to be used by unsafe structs (#192) 143 - Improve histogram output 144 - Move Closer from y to z (#191) 145 - Add histogram.Mean() method (#188) 146 - Introduce Calloc: Manual Memory Management via jemalloc (#186) 147 148 ## [0.0.3] - 2020-07-06 149 150 [0.0.3]: https://github.com/dgraph-io/ristretto/compare/v0.0.2..v0.0.3 151 152 ### Changed 153 154 ### Added 155 156 ### Fixed 157 158 - z: use MemHashString and xxhash.Sum64String ([#153][]) 159 - Check conflict key before updating expiration map. ([#154][]) 160 - Fix race condition in Cache.Clear ([#133][]) 161 - Improve handling of updated items ([#168][]) 162 - Fix droppedSets count while updating the item ([#171][]) 163 164 ## [0.0.2] - 2020-02-24 165 166 [0.0.2]: https://github.com/dgraph-io/ristretto/compare/v0.0.1..v0.0.2 167 168 ### Added 169 170 - Sets with TTL. ([#122][]) 171 172 ### Fixed 173 174 - Fix the way metrics are handled for deletions. ([#111][]) 175 - Support nil `*Cache` values in `Clear` and `Close`. ([#119][]) 176 - Delete item immediately. ([#113][]) 177 - Remove key from policy after TTL eviction. ([#130][]) 178 179 [#111]: https://github.com/dgraph-io/ristretto/issues/111 180 [#113]: https://github.com/dgraph-io/ristretto/issues/113 181 [#119]: https://github.com/dgraph-io/ristretto/issues/119 182 [#122]: https://github.com/dgraph-io/ristretto/issues/122 183 [#130]: https://github.com/dgraph-io/ristretto/issues/130 184 185 ## 0.0.1 186 187 First release. Basic cache functionality based on a LFU policy.