Bob versions changelog
- Blob performes fsync if buffered bytes are larger than max_dirty_bytes_before_sync config param (#748)
- Use cargo workspace to declare dependencies to avoid their duplication (#821)
- Record timestamp is now passed to Pearl level and used to find newest record in get and exist functions (#708)
- Save gRPC error when parsing status (#842)
- Increased number and max delay of retries for Bob state checking in integration tests (#856)
- Update writing logic for aliens integration tests to capture lost records problem (#851)
- Remove allocation on alien exist (#861)
- Fix missing alien records due to multiple groups (#806)
- Fix warnings for imports (#858)
- Update crates versions: tokio, bytes, uuid, infer, base64, bitflags, regex, async-lock (#769)
- Pearl updated to v0.20.0 (#848)
- Pearl updated to v0.21.0 (#855)
- Fix log level for operations (#837)
- Bobd test mode (#550)
- Added optional get & exist optimization that skips old partitions by its timestamp (#702)
- Added mimalloc allocator for musl target (#688)
- Added jemalloc-profile for memory profiling (#797)
- Proper support for GetSource::ALL requests (#723)
- BobClient clone overhead reduced (#774)
- Node struct internals placed inside Arc to reduce clone overhead (#724)
- NodeName and DiskName types introduced to reduce clone overhead (#775)
- Avoid Pearl Storage clone (#791)
- Make iouring optional (#567)
- Add different logs for different branches in error on vdisk search (#808)
- Ensure correct working when node contains multiple replicas of single vdisk (#654)
- Fix memory leak due to prometheus lib (#788)
- Fix for grinder delete metrics not being initialized (#824)
- Fix chrono deprecated function warning (#832)
- Fix lsof zombie spawn (#830)
- Pearl updated to v0.19.0 (#798)
- Quorum argument for manual workflow dispatch for integration tests (#749)
- Reconnect to a node when Ping is received from it (#625)
- Fast ping at the start (#657)
- Client metrics are initialized at the start (#761)
- Exist test on doubled range of keys for integration tests (#764)
- Used swap and bob virtual memory metrics added to hardware metrics (#771)
- Added validate_data_checksum_in_index_regen field to pearl config (#607)
- Lookup existence in aliens (#576)
- Separate local and remote lookup (#585)
- Exist test for alien integration tests (#726)
- Make local put parallel to remote (#573)
- Prefer online nodes for aliens, while maintaining uniform distribution (#571)
- Build release binaries and docker images with
release-lto
profile (#714) - Use read lock instead of write on hierarchical filters update to improve performance (#596)
- Abort on panic in any of the threads (#782)
- Fix incorrect exist result due to variables sharing between keys (#762)
- Fix unit of measurement of memory in hardware metrics (#772)
- Fix rust deprecation warning (#779)
- Fix subtraction overflow in cleaner (#781)
- Logger to logstash updated to qoollo-log4rs-logstash v0.2 (#681)
- Pearl updated to v0.18.0 (#778)
- Added exist key metrics to grinder and exist metrics to pearl (#709)
- Removed
open_blobs_soft_limit
andopen_blobs_hard_limit
from node config example (#703) - Add condition to background_put (#589)
- Fix incorrect timestamp used in
Group::delete()
(#741) - Fixed incorrect execution of aliens integration tests (#736)
- Fixed unsafe timestamp comparison condition in
Group::get
andGroup::exist
(#750)
- Pearl updated to v0.17.0 (#752)
- Added grpc delete testing feature to bobp (#663)
- Corrupted blobs count metric (#464)
- 'Exists' method through HEAD request in REST API (#691)
- Support for 'exists' method in bobt (#691)
- Round robin algorithm for alien nodes selection (#570)
- 'release-lto' and 'integration-test' build profiles added (#704)
- Crossplatform terminal signal handling (#725)
- Integration tests (#518)
- Added integration tests for aliens (#642)
- Added integration tests for bobt (#648)
- Added authentification support for integration tests (#672)
- Add support for
delete
operation tobobc
(#664) - Support for authorization to
bobc
(#679)
- Use bytes to pass data to pearl (#597)
- Log message about the lack of connection to graphite became more understandable (#684)
- Hostname resolving in background tasks (#529)
- Removed broken logic of holder creation from group::run function (#701)
- Remove 'termion' crate from dependencies (#718)
- Make delete operation recoverable (#533)
- Binaries sizes reduced for 'integration-test' profile (#727)
- Configurable build profiles in Dockerfiles (#717)
- Data access operations will be protected during remount to prevent data loss (#683)
- PID unsafe type conversion fixed (#719)
- Holders returned by read_vdisk_directory() are now ordered by start_timestamp (#700)
- Pearl updated to v0.16.0 (#706)
- Include bobt into the zip archive attached to the release infrastructure (#669)
- Include bobc into release builds (#569)
- Added blob-info and index-info features to brt (#356)
- Support for files, file name patterns, key ranges and a 'exists' subcommand to 'bobc' (#539)
- Using interval logger in metric exporter to reduce error log density (#592)
- Using standard Authorization header for basic auth (#616)
- Change locks to sync where possible (#472)
- Clear bloom-filter memory on remount (#636)
- Pearl updated to v0.15.0 (#668)
- Updated versions of dependencies (#551)
- Add clusterwide delete operation (#364)
- TLS support, TLS for grpc or rest can be enabled via cluster & node config (#303)
- Final summary and return code to
bobt
(#649)
- Update rust edition to 2021 (#484)
- Remove unnecessary data clone (#506)
- Compare vdiskid first (#594)
- Optimize finding actual holders (#595)
- Logger output directed to stdout instead of stderr in bobt (#651)
- Replaced deprecated chrono functions (#660)
- Print full error text received from Pearl in exist function (#581)
- Fix alien indexes offloading (#560)
- Internode auth works properly with nodes on same ip (#548)
- Fix response in delete request (#558)
- Fixed panic in brt because of duplicate long arg name (#563)
- Make username and password args of
bobt
optional (#555) - Replaced deleted Pipers crate (#646)
- Pearl updated to v0.14.0 (#659)
- Add occupied disk space to api and metrics (#501)
- If no credentials provided and default user specified in config, then request will have default user permissions (#437)
- SHA512 hash of password with salt 'bob' can be specified instead of password (#304)
- User's permissions can be set via role and/or claims (#408)
- Check correctness tool, bobt (#542)
- Move files for linux packages into separate directory (#534)
- Defer index offload on deletion (#363)
- Fixed internode authorization error (#530)
- "CredentialsNotProvided", "UserNotFound", "UnauthorizedRequest" now have "Unauthenticated" code (#528)
- Added conversion of "unauthorized" status into internal error (#540)
- Pearl updated to v0.13.0
- Memory limit for indexes (#466)
- Add support for logstash (#243)
- Access management (#217)
- Nodes authentication (#318)
- Authorization parameters in bobp (#425)
- Http API authentication (#217)
- Rocket replaced with axum (#217)
- Add special cmp for keys with sizes aligned with word (#496)
- Publish available ram metric instead of calculated free ram, used ram is now calculated (#508)
- Log about disk availability would be written once (#499)
- Number of vdisks per disk in ccg can be specified via -p arg (#459)
- Dockerfile arguments propagation (#483)
- Number of vdisks in ccg now is defined by -p or -d arg only, -exact arg removed (#459)
- RAM metrics (bob ram, total ram, used ram, free ram) are published in bytes now (#463)
- CPU iowait & disks iowait, iops are now collected via procfs (#461)
- Move brt utils to pearl (#415)
- Fix docker image build parametrization (#494)
- Update rocket to v0.5.0-rc.2 (#486)
- Update Pearl to v0.12.0
- Added grpc exist testing feature to bobp (#419)
- Add support for hierarchical range filters (#439)
- Deleted dcr utility (#370)
- Put error logs now agregate in one line every 5 sec (in case of disk disconnection) (#420)
- Fix ping and timeout leading to sending too much requests (#438)
- Get & Put speed calculation in bobp (#419)
- Update Pearl to v0.11.0
- Add iops & iowait disk metrics (collected via iostat) & cpu_iowait metric (#342)
- Add refkey to support pearl #141
- API method for occupied space info (#404)
- Added -init_folders flag that creates bob and alien folders (#180)
- If bob and alien folders doesn't exist bobd will panic (#398)
- root_dir_name to node configuration api (#440)
- All hardware metrics are now placed in 'hardware' group (#452)
- brt: Version in BlobHeader now changes during migration (#447)
- brt: Default target version is now 1 instead of 2 (#448)
- Update pearl to v0.10.0
- Bloom filters memory metric (#400)
- Add bob ram usage metric (#393)
- Add REST API method for data deletion (#221)
- File descriptors metric now tries to use lsof | wc first (#359)
- Used disk space metric calculation fix (#376)
- Fix partitions removal response code (#405)
- No more use of MockBobClient in production (#389)
- Ubuntu docker image build error (#412)
- Fix panic on nodes request (#429)
- Configs now support human readable formats (in max_blob_size & bloom_filter_memory_limit) (#388)
- Upgrade pearl to v0.9.2
- Hierarchical filters (#333)
- Disk space metrics calculation fix (#376)
- Upgrade pearl to v0.9.0
- Add bloom_filter_memory_limit to example config (#378)
- Add traits to support pearl #123
- Upgrade pearl to v0.8.1
- Fix allocated size computation in BloomFilterMemoryLimitHooks (#372)
- Bloom filter offloading (#301)
- Add brt mode to reverse byte order (#286)
- Add alien blobs sync API (#334)
- Disable AIO by default (#335)
- Hardware metrics names for RAM and disk space (#358)
- Upgrade pearl to v0.8.0
- Add hardware metrics (#242)
- Add REST API metrics (#255)
- Include brt into release builds (rpm, deb and zip) (#344)
- Cleaner closes blobs instead of update (#285)
- Only stable releases to latest tag on Docker Hub (#339)
- Make Bob compile on stable toolchain.
- Add blob and index verification to blob recovery tool (#230)
- Remove prometheus metrics expiration.
- Upgrade pearl to v0.7.1
- Add random mode in get in bobp (#215)
- upgrade pearl to v0.7.0.
- Add the ability to choose prometheus exporter address (#311)
- Add rest api port to config (#269)
- Prometheus exporter bug which occured after migration to global exporter scheme (#322)
- Minor build issues (#327)
- Fix actual holder creation condition(#283)
- Libs: tonic, tonic-build, tower, tokio.
- Add Bob key size to help and version commands output
- Updated --version output format
- Add the ability to disable metrics (#241)
- Use default config in dockerfiles (#290)
- Add log file rotation to logger.yaml in examples (#297)
- Build docker images with build workflow (#308)
- Build Bob versions with 8-byte and 16-byte keys (#307)
- once aio is failed, it's disabled in config (#257)
- Prometheus metrics exporter (#240)
- Rate metrics (#242)
- Global exporter is used, different exporters may be load conditionally
- Run tests with GitHub Actions (#279)
- Add brt to dockerfiles (#296)
- Bug with panic on load operation in rate processor (#302)
- Add api method to start disk (#182)
- Rest api for data (#187)
- Add bloom filter buffer size to config (#218)
- Setup build with GitHub actions (#266)
- Add Amazon S3 GetObject and PutObject api (#193)
- Add tool for blob recovery (brt) (#205)
- Add racks support to CCG (#186)
- Add bind ip address to config (#270)
- Add variable key size (#133)
- Support for different key sizes in REST API (#228)
- rename bob-tools, remove redundant versions of workspace deps (#220)
- add DiskEventsLogger error (#230)
- add methods for data to REST API specification (#234)
- Update Rocket to 0.5 (#233)
- Extend bob version (#247)
- Fix backend storage trait object safety issue (#197)
- Fix dockerfiles (#203)
- Fix connectivity issues in Docker Swarm (use 0.0.0.0 in some cases) (#270)
- Fix metrics gaps in graphite (#274)
- upgrade pearl to v0.5.14
- Reorganisation (#175)
- split crate into separate subcrates bob, bob-backend, bob-tools
- move configs, metrics, data, node mods to bob-common
- tmp remove mock bob client import
- remove unused deps
- ignore generated grpc file
- move pearl metrics to bob-common
- move config examples
- Disk removal control and recovery (#174)
- Fix: forget to change state in run method
- Fix review issues
- Fix semaphore logic
- Add run semaphore to limit simultaneously initializing DiskControllers
- Fix test in dcr
- parallel index dumping
- new alien directory configuration
- new api endpoint: cluster distribution function
- Build issue after merging request with updated alien directory configuration
- Fix panic in some cases in push_metrics
- fixed metrics prefix
- minor fix for dump semaphores
- Update pearl to 0.5.8
- Complete code review and deep refactoring
- Stability and performance improvements
- Search logic of get rewrited. Which leads to improvement of the get performance: up to 50% in normal case, up to 80% in case with reading from aliens
- reworked put algorithm to increase amount of work to be completed in background
- logs improved
- close open blobs by timeout to reduce memory footprint.
- allow partial completion of PUT (#104)
- optional AIO
- retrieve records count via http api method, in partition info
- API method to retrieve local dir structure of vdisk replicas. #109
- ssh to docker cluster runner. #106
- for test utility bobp: add all remaining record tasks to last batch. #108
- error descriptionsi for dcr
- dcr instructions to README.md
- nodes to API
- new metrics drain and counters initialization
- piling all alien records into one vdisk
- loss of records after restart of the cluster
- problems with reading from alien dirs in some cases
- use unreleased version of rio to fix build on musl
- pearl issues with index files
- outdated usage of the partitions old ID. #107
- indexing in bobp with flag -f
- aliens distribution in some cases
- update pearl
- stable tokio runtime
- API add partition delete
- bobp errors detalization
- pearl updated, improved check existence performance
- misc minor fixes
- Config cluster generator
- bob test utility
- bobd cli version
- tonic up to 0.1.0
- Initial version