{"repo":"aneshas/gocask","free":true,"listed":false,"github":"https://github.com/aneshas/gocask","clone":"git clone https://github.com/aneshas/gocask.git","description":"Go implementation of Bitcask - A Log-Structured Hash Table for Fast Key / Value Data","language":"Go","stars":38,"topics":["database","embedded","golang","key-value"],"license":"MIT","category":"databases-storage","readme_excerpt":"GoCask Go implementation of Bitcask - A Log-Structured Hash Table for Fast Key / Value Data as defined per this paper and with help from this repo. A learning venture into database development. Special thanks go to the amazing Ben Johnson for pointing me in the right direction and being as helpful as he was. Features - Low latency per item read or written - High throughput, especially when writing an incoming stream of random items - Ability to handle datasets much larger than RAM w/o degradation - Crash friendliness, both in terms of fast recovery and not losing data - Ease of backup and restore - A relatively simple, understandable (and thus supportable) code structure and data format - Predictable behavior under heavy access load or large volume - Data files are rotated based on the user defined data file size (2GB default) - A license that allowed for easy use - Data corruption crc check Important notes - GoCask does not implement any buffer cache in-memory. Instead, it depends on the filesystem’s cache. Adjusting the caching characteristics of your filesystem can impact performance. - GoCask stores all keys in memory which means that your system needs to have enough RAM to store all of your keyspace How to Use/Run There are two ways to use gocask Using gocask as a library (embedded db) in your own app GoCask can be used similarly to bolt or badger as an embedded db. go get github.com/aneshas/gocask/cmd/gocask and use the api. See the docs Running as a standalone process ","default_branch":null,"files":null,"tree":[],"storefront":"/r/aneshas","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/aneshas/gocask/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}