Skip to content

Releases: NVIDIA/aistore

3.12

13 Nov 19:47
Compare
Choose a tag to compare

Table of Contents

  • Remote AIS clusters
  • List objects
  • List and summarize buckets
  • S3 API
  • CLI
  • Documentation
  • Tests
  • Python SDK & ETL
  • Core
  • Refactoring & fixes
  • Tools
  • Build & CI

See also:

Remote AIS clusters

  • list remote ais buckets; fix remote namespace containment !5567, !5621
  • aliasing and bucket namespaces (major revision) !5622, !5623
  • ais gateways to cache remote ais clusters (information) !5630
  • extend remote ais errors - add cluster UUID !5631
  • remote ais aliasing !5632
  • [API change]: remote ais clusters (major) !5633, !5634
  • [API change] add HealthUptime; use it to show remote clusters !5636
  • remove support for multi-aliasing !5637
  • alias vs bucket metadata !5638

List objects

  • CLI to show CACHED (column) only when it's informative (and not when user asks ais ls ... --cached) !5554, !5555
  • rename list-objects structures; regenerate message pack !5542, !5543
  • amend and re-enforce single target rule for remote buckets !5556
  • introduce location property, phase-out target URL (property) !5557, !5559
  • add custom metadata, regenerate message pack; refactor !5564, !5565
  • list-objects version 2 (major): !5583, !5584, !5586, !5589, !5590, !5591, !5601, !5602, !5605, !5607
  • [backend API change] mem-pool 'list-objects' pages !5604
  • list-objects flow with a single target listing remote props (name, size, version) !5608
  • list remote pages v2: flow controls; ais gateways will now select single target to execute remote call !5609, !5610
  • list-objects to include (in listing result) custom object properties !5614
  • consistency in custom props across: get, put, head object, and list-objects !5615, !5616

List & summarize buckets

  • easy URL to support listing buckets via /gs, /az, and /ais endpoints !5486
  • list-buckets and get-bucket-info API; CLI summary table !5521, !5522
  • list-buckets version 2 (major update) !5524
  • unify 'list-buckets' and 'bucket-summary' !5530, !5531
  • shorter and faster list-buckets version: w/ presence but wo/ summary !5535, !5536- [API change] add presence filter; eliminate bucket-info control structure (is redundant); refactor !5540
  • list-buckets and bucket-summary cont-d !5541
  • bucket sizing: always compute two sizes: on-disk and sum objs !5544
  • bucket-summary on-disk (apparent) vs sum-all-objects, remote vs cached !5545
  • bucket-summary and list-buckets cont-d unification !5546, !5547
  • list-buckets by target: remote ais; hdfs and http; cloud; other !5567
  • rename/move bucket summary; align control structures !5568
  • list remote ais buckets; fix remote namespace containment !5621
  • [API change] list-buckets correctness for named bucket queries !5626

S3 API

  • multipart upload !5458, !5460, !5467, !5468
  • extend s3 API to support remote buckets (major) !5462
  • persistent multipart state (major) !5466
  • multipart GET !5472
  • multipart list active uploads and upload parts (major) !5474
  • return xml-formatted errors (compliance) !5480
  • multipart: refine and simplify !5482
  • revise list-buckets to include all providers !5485
  • always set header Server when redirecting !5495
  • amend s3 compatibility readme; add multipart example !5496
  • multipart: sha256 fix; md5 not checked but computed; aws s3api example !5500
  • xml-format errors (parts two and three) !5501
  • revise HEAD object implementation; multipart ETag; miscellaneous fixes !5504
  • compatibility: configurable root '/' access to AIS cluster !5572, !5573, !5574
  • compatibility: assorted error codes !5620

CLI

  • 'ais etl' to replace extension in transformed objects !5418
  • standardize error and warning coloring !5493
  • don't log and don't show backend secret !5506
  • improve unknown-command messaging, provide hints !5512
  • add ais object ls command; add present flags !5514
  • support updated HEAD(bucket) API; 'ais ls' and permutations to show obj props !5517
  • static linkage with cgo disabled !5526
  • rename aws, et al. backend provider constants !5528, !5529
  • option to display sizes either in bytes or KiB, MiB etc. units !5532
  • rename sub-packages; show-unmatched & hide-header !5534
  • bucket display-name helper (and consistent usage) !5539
  • flip bucket listing default to 'present' (was 'all accessible') !5550
  • option --all to list both buckets and objects (in remote buckets) !5551
  • multi-feature completions; action-warn and action-done !5575
  • show config subsections in JSON; multi-feature completions !5576
  • amend config JSON printout !5577
  • extend and amplify: (config | section | json) !5578
  • is-time-not-set, is-object-not-cached (for consistency) !5611
  • atime & ctime !5612
  • throughput must be averaged over an interval of time since the previous request !5643

Documentation

Tests

  • python ETL !5410, !5461, !5476
  • python IO communicator !5415
  • tests: skipping short (minor) !5416
  • pyhton/sdk: ETL stress test !5420
  • add s3 multipart test !5482
  • add ETL test for streaming with python runtime !5513
  • re-enable and amend object-properties tests across all providers !5515
  • amend list-buckets: add cases; up CLI !5569, !5570
  • reinforce multi-object tests, fix bucket-exists helper !5606
  • amend and fix multi-object range/list copy test !5619
  • amend list-buckets test that checks expected result !5631

Python SDK & ETL

  • ETL API part 1 !5370
  • sdk version !5374
  • code (re)formatting and misc !5381
  • reorg Makefile dependencies !5390
  • ETL APIs part 2 !5394
  • bucket ETL transform API !5405
  • bump sdk version to 1.0.3 !5408
  • fix IO communicator fixes !5413
  • fix transform bucket !5421, !5428
  • add examples !5441
  • add streaming runtime w/ refactoring and cleanup !5444
  • streaming init-code with chunk-size param (major) !5446, !5447
  • with temp debug !5448
  • init_code changes for before and after functions !5449
  • remove debug w/ minor ref !5450
  • functions filter (new), transform, and before/after !5451
  • runtime v2 fixes !5455
  • bootstrapper; by reference !5457
  • ETL API fixes !5464
  • update readme (etl init_code) !5475
  • extend hpush yaml with bitwise flags !5479
  • remove unused ETL functions; add test for streaming with python runtime !5513
  • update Jupyter notebook to reflect sdk changes !5548

Core

  • global rebalance: initiating new vs receiving delayed ACKs !5426
  • etl md: remove sgl, read-all !5470
  • error handling: introduce type codes (major upgrade) !5477, !5481
  • easy URL: support listing buckets via /gs, /az, and /ais endpoints !5486
  • easy URL: add readme with extended examples and comments !5487
  • user agent, internet browser: pretty-print JSON response !5492
  • add User-Agent to http request headers !5494
  • backward compatibility; remote backends !5498
  • consolidate http headers; add type-cast fail !5503
  • introduce error types unsupported and not-implemented-yet !5508
  • refactor GET(object) !5507
  • add lom.rename-file w/cleanups !5509
  • simplify lom.persist & recache/refresh !5510
  • update atime on PUT !5511
  • HEAD(bucket): extend the API in re: cluster metadata !5516
  • [API change] add api.GetBucketInfo !5519
  • enumerate and unify bucket and object 'presence' vs 'existence' !5520
  • fs: add size-bucket and refactor x-bucket-summary !5523
  • backend providers as simple KVs (minor) !5525
  • on the fly and (new) upon request remote bucket creation/addition !5538
  • object props: remove get-node, add location and helpers !5561, !5562, !5563
  • creating/adding buckets on the fly: further clarifications !5566
  • debug pkg: assert-msg is redundant; minor ref !5579
  • cos-assert; align (minor ref) !5587
  • periodic stats log: tweak idleness logic !5588
  • x-archive to always close data mover !5594
  • key-value d...
Read more

3.11

18 Jul 23:56
Compare
Choose a tag to compare

Highlights

Authentication and Access Control

  • CI: fix AuthN to run !5264
  • replace form3tech-oss/jwt and upgrade to jwt/v4 !5266
  • prep for production !5267
  • prep for production (major update) !5268
  • prep for production (part three) !5269
  • prep for production (part four) !5272
  • prep for production (aisloader) !5275
  • prep for production (clean_deploy) !5277
  • extend error info, add usage examples, tweak CLI help !5279
  • revamp ais auth CLI !5281
  • rename APIs for consistency; add CLI to update existing role !5283
  • E2E test: added basic AuthN test !5284
  • make cluster optional for role add/set; randomize E2E tests; unify auth-enabled checks !5285
  • rename AuthN entities for consistency !5288
  • add api package, isolate server internals (major) !5289
  • continued refactoring, assorted fixes !5291
  • add 'tok' package to consolidate all jwt calls; continued refactoring !5292
  • status 'forbidden' or 'unauthorized' to accompany all errors !5310
  • allow 3rd party client lookup ht://bucket !5312
  • separate enabling HTTPS for AuthN and AIS cluster when deploying !5313
  • oad-token: if user-given location is empty then !5314
  • secret handshake when adding/updating AIS clusters !5316
  • revisit AIS calling and retrying; unify errors !5317
  • login by non-superusers: require cluster (to be explicitly specified) !5326
  • assorted fixes, improvements !5333
  • introduce 'show-cluster' permission; reinforce admin access !5350

Python SDK

  • add copy_bucket method !5225
  • add method xact_status !5226
  • move test to cluster ops file !5232, !5233
  • add xaction start !5237
  • restructuring (adding pytorch) !5238
  • PyTorch plugin (dataset/aisio) implementation for aistore !5242
  • fixed bug - list empty buckets !5251
  • changed error handling !5258
  • add iterator for bucket objects !5259
  • improved pytorch plugin !5274
  • release 0.9.0 fixes !5276
  • cluster health api !5280
  • health check for non existing urls !5282
  • syncing aisio.py !5286
  • rename_bucket() port !5304
  • test suite changes !5305
  • makefile dependency fix !5307
  • cluster health api !5278
  • added aisio example !5322
  • restructure api (bucket) !5323
  • fixing aisio example !5325
  • aisio example fixes !5328
  • restructure cluster !5335
  • obj streamer fixes !5337
  • blog post for ais file loader and lister !5338
  • using session for requests !5341
  • restructure object !5342
  • object method name changes !5343, !5346
  • restructure fixes !5348
  • bucket api fixes !5351
  • object get fix !5352
  • restructure xaction operations !5353
  • fixes and release prep !5355
  • minor readme edits !5356
  • readme changes wrt pytorch !5357
  • api docs and make file fixes !5359
  • removing aistore.pytorch imports from main init !5360
  • makefile fix (pipx path) !5367

GitHub Action

  • add github action for building ais !5265
  • add github workflows for lint, python-tests and build !5270
  • add test-short github workflow (Linux) !5271
  • github/workflow: changed go lint version !5366

CLI

  • confirm assorted operations: decommission, rm bucket, rm -rf !5224
  • revamp ais show cluster; add K8s POD names !5243, !5244
  • bucket extra-props-to-update; filter by provider !5256
  • allow setting permission on per-bucket basis for a role !5309
  • revise 'show config', add nested completions !5339
  • revise 'set config', add local vs inherited !5344
  • add --cluster filter flag to 'auth show role' command !5349

Bucket Summary

  • revise bucket summary (major) !5230
  • bucket summary: micro-optimize and simplify !5262
  • bucket summary: multi-bucket; add min/max/avg counters; fixes !5299
  • bucket summary: apparent vs on-disk sizing, formatting clarity !5300, !5302

Common environment and system filenames

  • move and refactor common environment; AuthN version and build time !5318
  • filename constants; environment variables !5324
  • consolidate all configs under $HOME/.config/ais !5327

Misc. Features

  • warn when decommissioning cluster, support '--rm-user-data' option !5221
  • ability to decommission node and join it back with a new identity !5222
  • anonymous public-access buckets: list-objects anonymously (w/ API change) !5330
  • s3: the capability to set custom s3 endpoint !5257, !5260

Docs

  • tweak ETL markdown !5227
  • updated getting_started and etl markdown !5228
  • changes to standalone deployment README !5253
  • minor indentation fix to standalone readme !5254
  • standalone ec2 deployment instructions and benchmarks !5261
  • python api reference !5294
  • python_api.md fixes !5297
  • bucket.md to reflect 'summary' changes !5308
  • update 'ais ls', add anonymous and more !5336
  • main readme !5358
  • s3 compatibility, 's3cmd' configuration and getting-started !5361
  • main readme, index.md, python.md !5362
  • amend and extend cli/config.md; fix config node reset !5363
  • add 's3cmd.md' !5364

Tests

  • random page, remote bucket !5234
  • remote bucket, object props !5235
  • extend cleanup to support (prior to test, remote bucket) !5240
  • ensure more !5245
  • fix iter-fields unit for recently added config extras !5290
  • reverse proxy test against GCS !5329

Build

  • upgrade gopkg !5223
  • fix statsd github URL !5229
  • new (and supported) JWT packages !5266

Performance micro-optimizations, bug fixes, refactoring

  • aisloader: rewrite SGL freeing piece !5236
  • refactor low-level is-bucket, bucket-init, and friends !5239, !5241
  • BMD: speed-up bucket init; add global namespace uname (const) to avoid allocations !5246
  • BMD atomic update vs backend props !5247
  • reuse buffer when iterating range template !5248
  • devtools: refactor and simplify !5249
  • bucket extra-props-to-update: include readonly; CLI: filter by provider !5256
  • yet another case to skip err logging block devices !5273, !5295
  • cluster config: allow critical updates !5298
  • capacity: periodic log and refresh; version and build time; fixes !5315
  • local playground: loopback device sizing; fixes !5321
  • refactor and move docker pkg (formerly containers) !5331
  • list-objects flags: unify, rename, document, and reference !5332
  • config: restart-required selection; feature flags !5334
  • blog image fix !5347
  • assorted fixes and refactoring !5354
  • CI/CD: skip-ci & python-tests-only conflict fix !5365

3.10

23 May 23:28
Compare
Choose a tag to compare

Highlights

  • Global (cluster) config meta-version 2
  • Bucket metadata (BMD) meta-version 2
  • Python SDK
  • Build: Go 1.18; upgrade all packages
  • MessagePack archiving

Global Config v2 & Bucket Metadata v2

  • bump up cluster config's meta-version; handle backward compatibility !5122, !5123, !5124
  • redefine and extend feature flags !5132
  • capacity and space watermarks (cleanup, low/high, OOS) !5143, !5144
  • BMD meta-v2 with backward-compatible logic to load v1 !5145, !5150
  • BMD meta-v2: simplify mirroring configuration !5151
  • add transport section !5153
  • support loading previous meta-version !5154
  • readonly knobs; backward compatibility !5155
  • introduce cos.size type and "kb", "mb", etc. suffixes !5156
  • cos.size vs backward compatibility !5157
  • add memsys section and tunables !5158
  • log flush time interval !5159
  • join-cluster-at-startup timeout !5161
  • add log-stats time, add validators !5171
  • continued refactoring !5172
  • add tcb (transform-and-copy-bucket) section; stream bundle multiplier; compression !5173
  • revise docs/configuration.md !5180

msgpack archiving; list, create, and read msgpack formatted shards

  • msgp (generic) shard !5100, !5101
  • fix preambles in the msgp generated files !5086
  • alternative msgp; sgl as io.ByteScanner; Python unpack to test !5103
  • assorted text fixes; more msgpack !5104
  • archiving formats: add msgpack (in addition to tar, tgz, zip) !5107, !5108
  • add integration tests !5100, !5101

Python SDK

  • basic bucket and object operations !5109
  • introduce pydantic; refactor list-buckets !5120
  • CI: add Python SDK test !5112
  • improve list-objects API !5163
  • refactor API calls for usability: !5128
  • move direct requests call out of list objects, create and delete bucket, cluster map !5130
  • put-object & head-bucket API !5141
  • improve list object API !5163
  • fix return type in _request_raw method !5164
  • add head-object method !5166
  • add setUp and tearDown in tests !5167
  • improve creating temporary file !5168
  • add evict-bucket and delete-object; add props argument for list-objects !5175
  • get-object returns a stream instead of the entire content !5184
  • update README, docs !5178, !5190
  • fix naming; add read-all method for streams !5196
  • list_object to support pagination !5198
  • improve object streaming; rename msg.py -> types.py !5203
  • Python SDK tutorial !5218

CLI

  • show cluster config feature flags in human-readable format !5133
  • fix setting backend bucket props !5152
  • add ais object rm --all to remove all in one shot !5195
  • verbose and non-verbose multi-object operations !5197

Tests

  • re-enable smoke-test for Cloud buckets !5098
  • msgp (generic) shard !5100, !5101
  • add missing wait for put-copies; BMD string !5204
  • failback; devtools: wait-cluster; transport !5209
  • dummy keepalive tracker !5211

Docs

  • website: tech blog on promoting local and shared files !5082
  • explain msgp usage; add msgp-update to Makefile !5085
  • update msgp generator usage !5094
  • msgpack !5110
  • revise and amend configuration.md !5180
  • performance tuning !5115, !5116
  • development, first-time usage, production deployments (summary) !5127
  • getting started (recommendations) !5129
  • local playground, tracking access time (more edits) !5139
  • fix references, add a reference !5140
  • erasure coding (space utilization ratio, IO performance) !5142

Build

  • upgrade fasthttp package !5092
  • upgrade direct dependencies !5096, !5097
  • transition to Go 1.18 !5106
  • upgrade all dependencies except 1.18 !5113
  • upgrade all dependencies except 1.18; v3.10-rc2 !5181
  • upgrade all dependencies including 1.18; v3.10-rc3 !5186
  • upgrade all minors !5200

Bug fixes and performance improvements; continuous refactoring

  • skip bucket name, etc. validation when initializing lom !5083
  • follow-up !5084
  • unsafe string: inline and use it consistently !5087
  • write-msg-pack (ref) !5088
  • control-plane broadcast & unicast: result value factories and decoders !5089, !5090, !5091, !5093, !5095
  • global rebalance: dynamic reg/unreg streams; housekeeper name suffix !5099
  • fix sending http request body on redirect: recompute content-length !5102
  • not restoring atime when !5105
  • multi-object operations !5111
  • local from-scratch deployment: add user-friendly tips !5114
  • follow-up !5117, !5118
  • write-policy: both metadata and data; bump up config's meta-version; backward compatibility (major) !5121
  • deploy: fix Dockerfiles and related scripts !5126
  • assorted usability tweaks !5134
  • local playground: print ports AIS listens on !5135
  • remove bench/soaktest; rewrite devtools/readme !5136
  • config: write policy for data must be 'immediate' !5137
  • docker + LVM deployment: no disks fix !5146
  • move mock-bmd => cluster/mock (refactoring) !5147
  • docker + LVM deployment: no disks !5148
  • local playground: pgrep to check; quiet run-cmd !5160, !5162
  • fix deploy.sh script for older bash versions !5165
  • target startup: skip docker union mounts when enumerating drives !5169, !5170
  • dedup fix HEAD(obj) system attributes !5174
  • get-object lock/unlock (refactoring) !5176
  • URI parsing, config validations, and assorted ref !5177, !5179
  • making "rlock" exception to forcefully remove corrupted !5182
  • dont-lookup-remote-bucket = true: proceed silently, log-wise !5183, !5185
  • remove +build directive (obsolete) !5188, !5189
  • get random proxy (ref) !5191
  • cluster map (ref); node equality !5192
  • PUT object vs remote backend returning status=503 !5193
  • multi-object operation, range template (ref) !5194
  • aisloader works !5199
  • when shutting down warn with details !5201
  • api: xaction wait-IC min waiting time !5202
  • compute-checksum and clone-md (ref) !5205
  • memsys: mem-free to include buff/cache !5206
  • memsys: revise sys/mem (major) !5207
  • lif to lom conversion: free on error; EC error handling !5208
  • revise xs/rename-bucket !5210
  • deferred unlock via lightweight lif (ref) !5212
  • lom as a reader, lif as unlocker !5213
  • get-from-neighbor (gfn): reg hk housekeepr under lock; abort to self-expire !5215
  • lom copy: allocate with name !5216
  • lom xattr (ref) !5217

3.9

15 Mar 17:35
Compare
Choose a tag to compare
3.9

AIS v3.9 is substantial productization and performance-improving upgrade. Much of the codebase has been refactored for consistency, with numerous micro-optimization and stabilization fixes across the board.

Highlights

  • promote: redefine to handle remote file shares; collaborate when promoting via entire cluster; add usability options; productize;
  • xmeta: extend to also dump in a human-readable format: a) erasure-coded metadata and b) object metadata;
  • memory usage and fragmentation: consistently use mem-pooling (via sync.Pool) for all control structures in the datapath;
  • optimistic concurrency when running batch prefetch jobs; refactor and productize;
  • optimize PUT datapath;
  • core logic to deconflict running concurrent xactions (asynchronous jobs): bucket rename vs bucket copy, put a node into maintenance mode vs offline ETL, and similar;
  • extend and reinforce resilvering logic to withstand simultaneous disk losses/attachments - at runtime and with no downtime;
  • stabilize global rebalance to successfully pass multiple hours of random node "kills" and restarts - node-left and node-joined events - in presence of stressful data traffic;
  • self-healing: object metadata cache to support recovery upon mountpath events (e.g., drive failures);
  • error handling: phase out generic fmt.Errorf and consistently use assorted error types instead;
  • additional options to speedup listing of very large buckets (list-objects);
  • numerous micro-optimizing improvements: fast datapath query (DPQ) and many more.

Promote files and directories

  • refactor as a 2-phase transaction and auto-detect file share (initial) !4929
  • auto-detect file share and distribute the work between target nodes !4945
  • add test; add target node => IC notifications !4975
  • extend test coverage; reinforce global UUID when promoting via entire cluster !4976
  • rename api.Promote; add test permutations and checks !4985
  • remove redundant control structures; cleanup !4987
  • add API options delete-src (delete source) and overwrite-dst (overwrite destination)!4988
  • fix extra-copy optimization with full refactoring !4989
  • revise/optimize HEAD(object) implementation and utilize it when promoting with overwrite-dst=false (major) !4991
  • extend object write transaction (OWT) to support the flow !4992
  • support in (i.e., transmitted), out (i.e., received) and locally-promoted stats counters - files/objects and bytes !4993
  • introduce confirmed file share; add user option not to auto-detect file share !5019
  • CLI: add overwrite-dst and delete-src E2E tests !5024
  • consolidate control, eliminate ambiguity !5045
  • increase test coverage !5047, !5063
  • add all test permutations to cover (ais | cloud | remote-ais) bucket vs. (non-redundant | EC | n-way mirror) !5068

ETL

  • add CLI to view stored ETL code and specification !4925
  • handle target-down; test !4933
  • redefine and improve ETL API (!4947, !4966, !5022), including:
    • manage (CRUD wise) persistently stored ETL definitions
    • eliminate redundant URL path parameters
    • enforce uniqueness of the user-provided ETL name
  • remove (obsolete) embedded ETL-specific annotations from the init spec (pod template)
  • support stopping and restarting ETLs !5005, !5056
  • update ETL docs and fix minor bugs !4984, !5022

Global Rebalance

  • global rebalance status: always respond with total (cumulative) stats counters !4905
  • generic fs.Walk for global rebalance (refactoring) !4889, !4930
  • get-status & health !4934
  • global rebalance status: reimplement to optimize !4936
  • devtools: merge WaitForRebalanceToStart and WaitForAllResilver !4937
  • tweak/optimize receive logic !4994
  • abort via stage notifications from other target nodes (major) !5015
  • transport streams vs receive errors; assorted fixes !5040
  • tweak preemption logic (when rebalance triggering events arrive back to back) !5057
  • assorted fixes: global rebalance vs n-way mirroring & resilvering !5071, !5072
  • consistent renames and continuous refactoring !5075

Resilvering (in presence of drive failures and attachments)

  • tools and stats: wait-for-all-resilvers, multi-snap API !4888
  • resilvering vs copy management (major) !4865, !4866, !4867
  • resilvering: tweak is-active time interval !4882
  • support losing multiple disks (mountpaths) simultaneously !4884
  • multiple overlapping add/remove disk operations: fixes !4894
  • resilvering as scrubbing: recover objects to their expected (default) locations !4900
  • resilvering: interval-of-inactivity multiplier !4974
  • resilvering under stress in presence of lost mountpath(s) !5058

Asynchronous Jobs (aka xactions)

  • when aborting and propagating abort to the control-plane caller, make sure not to lose the original cause for the abort !4886
  • fix put-xaction finishing logic !4887
  • aborting jobs: propagate the original cause through channels and APIs !4890, !4891
  • revise lookup by only-running and/or by UUID !4897
  • move xaction and xreg packages with refactoring !4898
  • clarify running vs not finished xaction !4908
  • registry: fix matching logic, remove redundant code !4911, !4912
  • registry: amend housekeeping !4913
  • registry: continued refactoring and cleanup !4914
  • "limited coexistence" between running and about-to-run services (new) !4915, !4916, !4917
  • xact package: revise and optimize abort-checking concurrency !4923
  • registry: continued simplification and cleanup !4940
  • reinforce global UUID for all cluster-wide xactions !4978
  • IC notifications vs transactional xactions: same rules for all !4982
  • more stateful info: propagate xaction reference all the way into local PUT flow (major) !4995
  • copy-object -- xaction -- promote: continued refactoring !5002
  • registry: micro-optimizations and cleanup !5028

CLI

  • PUT: add an option not to load (skip loading) object metadata; amend docs; refactor and cleanup !4859
  • add a command to view ETL code/spec !4925
  • fix: do not add --help flag to the subcommands of subcommands !4926
  • amend 'show config' to include CLI config (in addition to cluster and local configs); fix cluster-unreachable error !4983
  • revise 'flag-is-set' for Boolean flags !5021, !5023, !5030
  • copy bucket: add --force option !5042
  • add start etl command !5056
  • ais show cluster: add support for refresh=<time-interval> and count options !5076
  • update CLI docs !5078
  • enable 'ais show storage' and friends to run continuously and refresh periodically !5079

Testing

  • test fixes to align with changes in the core !4861
  • add ensure-num-mountpaths helper, and reinforce !4892
  • use api.WaitForXaction instead of tutils.WaitForXactionByID !4893
  • re-enable one fs-checker test, allow more time for mountpaths !4903
  • add more checks when downloading object !4910
  • extend CLI e2e promote test !4932
  • WaitFor follow-up !4943
  • fix e2e AuthN messages !4952
  • retry upon failure to recover a damaged erasure-coded object !4986
  • amend and extend EC tests !4990
  • revise and enable bucket-rename-and-copy test !5060

CI/CD (continuous integration)

  • add CI job that runs on multiple cloud buckets !5027
  • add 1.18-rc1 version to build check !5044
  • add test-short-minimal to test a single-node cluster !5046
  • make AWS_REGION global env variable !5050
  • update test-long stage !5059

Bug fixes, performance improvements; continuous refactoring

  • LOM load to return distinct types: syscall-error and corrupted-error !4849
  • LOM vs n-way mirroring: fix and revise caching of the metadata !4850
  • list-objects: add fast mode --only-names !4851
  • introduce permission to overwrite disconnected backend !4852
  • api: refactor PUT API; fix devtools !4853
  • optimize PUT latency by allowing not to load object metadata !4854
  • aisloader bench: do not run goroutine per each PUT request !4855
  • reinforce access time atime (major) !4856
  • reintroduce no-metadata error; fix n-way stress; refactor !4857
  • build: fix deprecation warning on MacOS !4858
  • when copying objects differentiate between copying == mirroring and all other scenarios !4860
  • simplify LOM from-fs logic !4862
  • general: don't use regex to validate names and UUIDs !4863, !4864
  • assorted fixes !4868
  • preserve atime across LOM caches !4869
  • storage cleanup: leftover copies, corrupted and missing metadata !4870
  • refactor cmn and api packages !4871
  • list-objects: use-cache option !4872
  • consistently use HTTP status 507 throughout; assorted fixes !4875
  • eliminate redundant mirroring !4876
  • get-cold (aka cold-GET) follow-up !4877
  • object write transaction (OWT) fusion !4878
  • prefetch: support optimistic concurrency (major) !4879
  • name locker: fit two structures into 24 bytes !4880, !4881
  • disable/detach mountpath: graceful (admin request) and immediate (FSHC) !4883
  • move health package under fs/health !4885
  • bucket summary and obj-list query: move, refactor, and simplify !4895, !4896
  • control-plane: always free call-results back to pool !4899
  • api: eliminate code duplication !4901
  • general: deprecate and remove query objects !4902
  • refactor ais package !4904
  • control-plane transactions: refactor, reduce code !4906
  • initial ETL get API implementation !4907
  • control-plane transactions: follow-up !4909
  • introduce read-only (but still configurable) timeouts: cplane-operation and max-keepalive !4918
  • intra-cluster transport streams: tweak termination logic !4919
  • slab allocator: amend pooling of the SGL control structures !4920
  • transport s...
Read more

3.8

16 Dec 01:24
Compare
Choose a tag to compare
3.8

Highlights

  • ETL: !4621, !4624, !4633, !4649, !4681, !4702, !4780, !4790, !4802, !4831, !4833
  • storage cleanup: !4632, !4741, !4748, !4753, !4754
  • custom user-defined object metadata, system Cloud-specific metadata: !4655, !4657, !4659, !4661, !4663, !4667, !4668, !4670, !4673
  • reinforce and protect ais volume and associated metadata: !4683, !4684, !4698, !4699, !4701, !4703, !4813, !4814, !4834, !4837
  • safely add and remove mountpaths (disks) at runtime !4721, !4722, !4728, !4729, !4735, !4736, !4740, !4744, !4789, !4818
  • "easy URL": support gs/bucket/object, s3/bucket/object, and similar (easy) URLs across all backends !4711
  • introduce node standby mode !4688, !4689, !4691
  • performance monitoring with a scope node | batch job | cluster !4792, !4793, !4794, !4798, !4800, !4810, !4812
  • support ais targets with no disks (feature) !4825
  • Kubernetes Operator v0.9

CLI

  • fix file name and message when extracting a file from an archive !4602
  • templates: circumvent index wrap around for aliases !4603
  • multi-object transform and copy: continue-on-err; add similar keywords !4605
  • show object (and its variations): improve usability and fix minors !4674
  • show config improvements; follow-up !4676
  • add command to immediately unregister node from cluster map !4693
  • new command ais storage cleanup !4704
  • attach mountpath and detach mountpath (ref) !4705
  • show storage subcommands !4713
  • --wait option for storage cleanup command !4773
  • report human-readable stats in show job xaction !4788
  • add commands to manage AIS CLI configuration !4791
  • improve alias command and docs !4795
  • follow-up: introduce xaction snapshot (aka "snap") into CLI templates !4806
  • add ais cluster show stats subcommand !4807
  • refresh for stats !4811
  • improve job xaction show command; minor refactoring !4815, !4816
  • node IDs are very special completions (provide visual cue) !4823
  • fix archive ls; set and show config usability; log_level !4824
  • remove glog's vmodule (obsolete) !4826
  • improve ais cluster rebalance command, allow ais archive ls to list entire bucket (of tarballs, etc.) !4828
  • do not print hint if JSON format is on !4839
  • introduce unknown-value and not-set-value, and use consistently; fix stop-maintenance logic !4842
  • downloader: fix error handling, improve usability, !4844

Integration and unit testing; CI/CD

  • add Go 1.17 shuffling for short tests !4615
  • restore original primary in TestForwardCP !4619
  • use new t.Setenv instead of os.Setenv and defer os.Unsetenv !4620
  • CI: fix lint errors on MacOS !4622
  • wait for xaction to finish when enabling mirroring !4628
  • tests/cleanup: ignore "server closed idle connection" !4631
  • fix failing TestGetAfterReregisterWithMissedBucketUpdate !4640
  • dev-tools/tassert: timestamp failure message, customize print-stack !4647
  • dev-tools and tests: continued refactoring and cleanup !4654, !4656
  • CI: add minimal cluster job that runs with 1 proxy and 1 target !4643
  • save/check cluster state; log: memory reporting !4677
  • CI: skipping tests in short mode !4776
  • test cluster config persistence and mountpath add/remove across restarts !4821
  • massive read operation vs detach/attach mountpath (non-redundent bucket) !4822
  • wait for mirroring, re-enable mountpaths !4835

Documentation & blog; website aiatscale.org

  • transition to Go 1.17 (add a note) !4623
  • remove empty reference to Python client !4636
  • remote AIS cluster: examples and references !4665
  • remote buckets (naming notation, CLI examples, cross-refs) !4669
  • bucket property inheritance, LRU note; E2E tests: set-custom !4673
  • configuration.md; transport/Rx: PDU header validation !4679
  • website: AIStore & ETL: Using AIS/PyTorch connector to transform ImageNet (post #2) !4694
  • remote ais cluster, global namespace !4697
  • cleanup http_api docs and add missing json for list buckets operation !4715
  • website: AIStore & ETL: Introduction (post #1) !4716
  • update command-line usage !4727
  • ais cluster show stats !4809
  • update ais show job CLI !4817
  • website: copying existing file datasets in two easy steps !4829
  • update main v3.8 README !4830
  • touch cluster.md; bump version to 3.8 !4838
  • What's new in AIS v3.8

Build and toolchain; dependencies

  • transition to Go 1.17 and use new Go features !4627
  • make: add run and restart make targets !4707
  • reinitialize go-modules and upgrade all minor versions !4724, !4726

Bug fixes and improvements

  • multi-object copy/transform: handle errors; ref common (part two) !4601
  • multi-object archive/copy/transform: aborting logic and cleanup !4606
  • general: use Go 1.17 enhancements !4607
  • health-checker: more efficient method to read directory entries !4608
  • bucket copy/transform: aborting logic, cleanup, and test !4609
  • transport/streams: fix broadcast in a single-target cluster !4610
  • revise err-aborted, refactor common errors, downloader !4611
  • cluster config vs bucket props vs LRU !4612
  • erasure-coding: fix bucket-encoding xaction hang on errors and upon abort !4613
  • deployment: add registry URL in docker build and docker push commands !4614
  • add atomic counted err value !4616, !4617
  • on-demand xaction: mutex to protect compound state !4618
  • etl: add more details when K8s pod times out on being ready; add debug log !4621, !4624
  • intra-cluster notifications: minor refactoring !4625
  • xaction: add immutable (original) bucket !4626
  • revise xaction aborting logic !4629
  • lru pkg: trash non-existing buckets; health check: docs and follow-up ref-s !4630
  • storage cleanup: remove artifacts of erasure-coding (unfinished slices, redundant replicas and metafiles) !4632
  • etl: fix waiting for a ready condition when starting K8s pod !4633
  • fix global-rebalance can-start & must-run helpers !4634, !4635
  • log: add backend module; AWS: ignore "unknown region" most of the time !4637
  • single-target cluster: support bucket renaming !4638
  • node name vs 1) nodes joining the cluster and 2) early startup !4639
  • xaction pkg: consistent naming and refactoring !4641
  • refine health check: add 'ready to rebalance'; fix test to wait for cluster state !4642
  • default bucket props (ref) !4644
  • glog: set-node, reduce header; transport streams: add destination ID !4645
  • copy configuration values for default bucket props !4646
  • retriable connection errors; transport: do retry !4648
  • etl: remove single-pod limitation (i.e., the capability to run multiple ETLs) !4649
  • retriable connection errors: use the same condition consistently throughout !4650
  • single-target cluster shutdown and assorted fixes !4651
  • global rebalance: refine preemption logic, abort associated streams (major ref) !4652, !4653
  • custom object metadata: set/replace vs add/update !4655
  • consistent custom versioning, checksumming, ETag (major refactoring) !4657
  • default buffer sizes (TCP, HTTP) !4658
  • custom metadata: unify downloader; unify version comparison !4659, !4661
  • downloader: make object comparison much more rigorous !4662
  • object metadata: to/from header converters !4663
  • unify the code that checks local/remote equality, change backend.HeadObj() API, simplify cold-GET !4664
  • erasure-coding config and bucket props: add batch size back for compatibility !4666
  • object metadata: system attributes (as opposed to user-defined) !4667
  • object metadata: unset custom keys on PUT, resolve bucket copy vs inc-version dichotomy !4668
  • unify object props and system object attributes (major revision) !4670
  • get-bucket-props: remove redundant code, simplify !4671, !4672
  • configuration: add transport-idle-teardown !4675
  • memsys: tracking memory stats and responding to OOM (major rev) !4678
  • xmeta (tool): add VMD, refactor !4680
  • etl: add new (non-HTTP) communicator and stop relying on the K8s API Server !4681
  • SizeBytes() and AtimeUnix() methods for CT !4682
  • volume: revise, refactor, and reinforce operations on metadata !4683, !4684
  • downloader: refactoring !4685
  • cluster membership: shutdown, decommission, maintenance !4686
  • target standby mode !4688, !4689, !4691
  • dev scripts: deploy remote ais cluster with the same build tags !4690
  • refactor and simplify admin-join/auto-join logic !4692
  • follow-up: self-join, admin-join, immediate removal from the cluster map !4695
  • phase out "unregister" & further consistent renames !4696
  • add volume package (ref) !4698
  • volume: consolidate loading and initialization; bootstrap in two passes !4699
  • cmn/context => cmn/cos/context; rename "attach/detach remote ais" (minor ref) !4700
  • volume: keep it sync with local config !4701
  • etl: add more Python runtimes !4702
  • volume: keep it sync with local configuration !4703
  • api to attach/detach/enable/disable mountpaths: pass node ref consistently !4706
  • make: add run and restart targets !4707
  • error formatting (ref) !4708
  • api package (major ref) !4709, !4710
  • "easy URL": accommodate list-objects with no json msg !4711
  • deploy script: fix getting the last parameter !4712
  • intra-cluster reverse proxying vs content-length !4714
  • improve error formatting and content !4717, !4718
  • cluster/hrw and cmn/err: continued refactoring !4719
  • graceful mountpath (disk) removal - major revision !4721, !4722
  • fs: more validation and naming consistency !4725
  • api to attach mountpath with force !4728
  • transactional (begin -- commit) to remove mountpath, with committing after resilvering !4729
  • lint and refactoring, housekeeping !4730
  • follow-up: add wait-for-resilver, sort mountpaths; increase CI timeout !4732
  • add/remove disks: make...
Read more

3.7.1

31 Aug 16:03
Compare
Choose a tag to compare
  • AIStore K8s Operator v0.8
  • review TODOs, fix comments, remove unused bits !4600
  • multi-object streaming xactions: ref common, eliminate duplication !4599
  • K8s dev scripts: fix checking minikube version !4598
  • multi-proxy stress test: randomize sleep, minor cleanups !4597

3.7

22 Aug 18:23
Compare
Choose a tag to compare
3.7

Highlights

  • Reading, writing, and listing archives
  • Multi-object transactions; multi-object ETL (in addition to previously supported full bucket-to-bucket transforms)
  • "Easy URL"
  • New and improved CLI
  • New documentation website
  • Bug fixes and performance improvements

TAR, TGZ, and ZIP archives

  • unify/reuse list-range and archiving logic !4483
  • revise xaction renewal process; propagate archival UUID back to client !4488
  • unify archiving with existing multi-object operations !4484
  • CLI: extend PUT to support archive creation !4485
  • archive: support multiple mime types; add zip test !4491
  • naming iniside archives: by default, do not include source bucket name !4495
  • archive: ref count targets on a per archival transaction basis !4497
  • archive: error processing; end-of-iteration !4500
  • list objects API: new option to list archived content !4536
  • archive: support TGZ !4541
  • support full path via archpath query parameter !4543
  • archive: nest (tar, tgz) writers !4544
  • archive: add checksumming for all supported types !4547
  • add checksum-sizer; archive: add basic stats; eliminate fseek !4548
  • multi-obj archiving: transactions vs reusable xaction !4550
  • archive: add a file to a TAR archive !4553
  • archive: API naming, message flags !4556
  • archive CLI: make it work; docs: add multi-object operations !4561
  • CLI: add top level archive command !4570
  • Blog: an article on how to properly append to an existing TAR !4571
  • archive: finalize and cleanup logic; consistent renames !4575
  • archive: transactions, control flags, and error handling !4576
  • archive: allow multiobject operation to append to existing archive !4580

Multi-object Transform and Copy

  • multi-object transform & copy and archive: ref-count targets, unify quiescence logic !4511
  • multi-object transform (initial); consistent renames !4555
  • add multi-object (list | range) transformation !4565
  • multi-object copy & transform: multiple transactions, single xaction !4569
  • transform & copy, bucket & multi-obj: consistent naming !4572
  • transform & copy, bucket & multi-obj: continued ref !4573
  • transform & copy multi-obj: ref-count transactions !4574
  • multi-object copy & transform: refactor API, add stress !4581
  • multi-object copy & transform: add utils !4583
  • ETL: forward Init call to the primary !4591

Multi-object operations (common)

  • move/rename list and range xops (ref) !4459
  • list and range xops (refactoring part two) !4461
  • revise list and range operations !4464
  • list and range ops: continued refactoring !4469
  • more rigorous idleness check; unique transport endpoint (major) !4595

eXtended Actions (xactions)

  • xaction registry: remove finished (ref) !4442
  • enforce unique xaction ID !4449
  • consolidate xactions (ref) !4462
  • consolidate xactions (part two) !4463
  • remove/simplify cluster.XactID (ref) !4474
  • remove xaction.Args - simplify (ref) !4475
  • xactions: continued refactoring !4476
  • renewable xaction (w/ code reduction) !4515
  • renewable xaction (part two) !4516
  • renewable xaction (part three: WPR) !4517
  • rename on-demand xaction !4518
  • renewable xaction (part four) !4520
  • renewable xaction (part five) !4521
  • renewable xaction (part six) !4522
  • renewable xaction (part seven) !4523
  • renewable xaction (part eight) !4524
  • renewable xaction (part nine) !4526
  • rename/clarify xaction scope !4527
  • renewable xaction (part ten) !4528
  • simplify initialization of on-demand xactions !4529
  • EC: xaction renewals !4533
  • renewable xaction (part eleven) !4534
  • improve synchronicity when starting to run (distributed) xactions !4535
  • wait for rebalance to start (in re: improve synchronicity) !4538
  • xactions: improve synchronicity (LRU, resilver) !4546

Intra-cluster Transport

  • data mover stages; reduce unreg-recv delay !4545
  • consistency in copying obj attrs to/from http and transport headers !4452
  • transport streams: send completion vs freeing obj headers !4496
  • transport/streams: reduce/optimize header size, add SID/opcode; archive: send-done !4505
  • transport: refactor receive logic; use slab for headers; monotime !4507
  • transport Rx: simplify eof-ok !4508

Documentation

  • docs: add a section on increasing disk priority for aisnode !4470
  • docs: setting CPU governor to performance value !4471
  • CLI docs: update bucket props command !4506
  • docs: major restructuring to place all documentation in docs directory !4514
  • docs: bucket properties and property inheritance !4551
  • docs: make documentation a website !4554
  • website: replace images links with embedded youtube videos !4557
  • docs: move 'info for developers' out from user cli documentation !4558
  • website: various visual improvements !4559
  • website: remove posts header !4560
  • website: refactore and fix redirections and images !4563
  • website: add author field to blog post !4564
  • website: fix tables and enumerations !4568
  • docs: revamp RESTful API doc !4590

Tests

  • tests: allow larger number of idle connections so we can reuse them !4445
  • make archive test more stressful !4562
  • tests: fix PrefetchList and PrefetchRange !4466
  • add multi-objects test !4567
  • update archiveListRange test, make generated obj names more predictable !4468
  • fix object props test for aws and a bucket with disabled versioning !4478
  • test: remove hidden object path augmentation !4486
  • archive stress-test improvements !4499
  • add functional test for transforming object with GET request !4531
  • fix LRU unit test; check capacity consistently with existing code !4539

Bug fixes and improvements

  • revise/refactor LRU; xaction-being-renewed; misc renames !4537
  • revise housekeeper !4443
  • GFN: remove locks, revise, simplify !4444
  • unify object metadata, transport and ETL headers (part one) !4446
  • unify object metadata, transport and ETL headers (part two) !4447
  • checksum utils: add accessors, optimize !4451
  • object custom MD: send/receive and store upon migration (part one) !4453
  • not-found error: add source node for context !4454
  • revise head-object: target (incl. S3) and api package !4455
  • cleanup metafile if a bucket is deleted while EC is saving metadata !4456
  • s3 compatibility: reuse target.getObject, eliminate copy-paste !4457
  • set custom object properties (part one) !4458
  • move EC file type constants to fs package !4460
  • add lom.HrwTarget helper (ref) !4465
  • handle bucket-already-exists when creating one !4467
  • consistency in handling unmarshal errors !4473
  • gcp client singleton !4479
  • aws client per region !4480
  • backend API changes: context (part one) !4481
  • backend API changes: context (part two) !4482
  • CLI: new options for PUT object operation !4487
  • assorted TODO fixes !4490
  • xreg args by value !4492
  • lint/revive: enable unused-parameter !4493
  • "easy URL" - aka alternative AIS API mapping (feature) !4494
  • tweak initializing remote backend (ref, race) !4498
  • ETL executor implementation (initial) !4501
  • ETL: revise bucket copy&transform (major) !4502
  • CLI: add subcommand 'ais bucket prop' !4503
  • follow-up: aborting prior to starting to run !4504
  • slab-allocator: add AllocSize !4509
  • CLI: TAB-TAB to list only active cloud providers !4510
  • EC: use Hdr.SID instead of internal EC.intraReq.sender !4512
  • EC: use transport.Hdr.Opcode instead of intraReq.action !4519
  • dSort: remove redundant field in remoteRequest msg !4525
  • CVE fix: replace JWT library !4530
  • LRU: remove on-demand logic; archive: no need to quiesce data mover !4540
  • notifications: getting status and err vs rlocks !4542
  • CLI: minor refactoring and cleanup; error handling !4549
  • CLI: add bucket lru subcommand; show bucket props by default !4552
  • EC recv meta: fix error handling !4566
  • debug modules; logs; persistent markers !4577
  • node name !4578
  • glog not to flush in a separate goroutine; minor ref !4579
  • CI: add newest Go version to be used in GitHub actions !4586
  • revise quiescence logic; on-demand stats !4587
  • build: upgrade fuse pkg !4588
  • CLI ais bucket cp: support --list and --template options !4589
  • CLI ETL: support --list and --template options !4593

3.6

20 Jun 23:04
Compare
Choose a tag to compare
3.6

Highlights

  • observability: revise StatsD integration, add disk metrics, support Prometheus
  • EC version 2: introduce new (packed) metadata format; speed-up erasure-coding and optimize rebalancing of erasure-coded buckets
  • API for reading and writing (tar, tgz, zip) archives - initial, experimental

Observability

  • revise StatsD integration (part one: major update) !4340
  • revise StatsD integration (part two: cleanup, refactoring) !4342
  • stats/ref: move core-stats to common, close StatsD !4345
  • revise StatsD integration (part three) !4346
  • prepare metric names at init time !4355
  • implement Prometheus exporter !4356
  • make StatsD naming and units consistent with Prometheus !4357
  • preallocate disk stats !4358
  • add disk metrics, publish disk metrics !4372
  • tests: fix disk utilization computation !4374
  • track average read/write sizes; log improvements; refactoring !4376
  • read-lock when collecting Prometheus stats !4378

AIS CLI

  • CLI: do not validate config received from a daemon !4339
  • CLI: add an option --validate for bucket summary to show the number of 'not-ok' objects !4341
  • CLI: introduce new top-level command: storage !4350
  • CLI: fix counting missing copies in 'ais storage' output !4353
  • CLI: docs for ais storage command !4362
  • CLI: add 'ais storage disk' sub-command !4375

EC

  • EC: extend metafile with version and a list of slices !4373
  • EC: use packed binary format for metadata !4382
  • EC: flatten EC props for object HEAD response !4386
  • EC: save slice locations in metafile !4387
  • EC: protect metadata with checksum !4395
  • EC: rebalance v2 (major upd) !4426
  • EC: optimize network usage when deleting and restoring an object !4419

Archive

  • archive: GET from tar !4388
  • archive: CLI --extract option; refactoring !4390
  • archive: archpath keyword; add test; refactoring !4391
  • archive: devtools (minor ref) !4392
  • archive: GET from tar, tgz, and zip !4394
  • archive: add extension and provider tests !4396
  • archive bucket to bucket (part one) !4418
  • archive bucket to bucket (part two) !4425
  • archive bucket to bucket (part three) !4427
  • archive bucket to bucket (part four) !4429
  • archive bucket to bucket (part five) !4434
  • archive: auto-detect archive (mime) type !4402
  • archive: add test variations; absolute path !4404
  • archive: add mime type query and more tests !4405

CI

  • CI: fix linter on Darwin platform !4337
  • CI, Jenkins: run cloud ETL tests !4370, !4384
  • CI, Jenkins: correctly read and apply AWS environment for minikube !4397
  • CI: fix dev/k8s template !4403
  • CI: push credentials in secret !4408

Bug fixes and improvements

  • aisloader: require -cleanup option !4335
  • general: use Go 1.16 embed package !4336
  • test: add reader test for SGL !4338
  • config ports, json: remove duplication and parsing !4343
  • config, etc. !4347
  • config: add custom duration type and parsing (part one) !4348
  • revisit json duration (type) !4349
  • config: eliminate string durations, use custom type (part two) !4351
  • docs: "Monitoring AIStore with Prometheus" !4352
  • comments !4354
  • network call with retry: client and server flavors !4344
  • cmn: rename BucketNames struct to Bcks to better describe content !4359
  • fs, ios, ais: minor refactoring & cleanup !4360
  • mountpath, fs disks (ref) !4361
  • fs: revise init and validation logic !4363
  • fs/vmd minor ref !4364
  • transport, streams: tweak global defaults !4365
  • metasync: not using nil SGL for payload (fix) !4366
  • metasync: delayed cleanup (fix) !4367
  • deployment: remove unused aisloader container !4368
  • minor changes in documentation and code !4369
  • ETL: collect stats for communicator !4371
  • metasync: remove CoW debug validation; fixes !4377
  • cos/utils: create-file now always creates write-only !4379
  • dsort: replace section reader !4380
  • ETL: pull docker images only if not present !4381
  • ais: minor ref (get, extract) !4383
  • metasync, BMD, SGL !4385
  • reuse SGL when range-reading w/checksum; DEADBEEF; miscellaneous !4389
  • compute redirect latency every so often (perf) !4393
  • GET and PUT: remove dry-run option !4399
  • Jenkins: upgrade minikube !4400
  • override backends at cluster startup !4401
  • golint is deprecated: using revive !4406
  • memsys: tune-up and refactoring !4409
  • lint: revive fixes (part two) !4410
  • transport/streams: Rx callbacks do not need (or depend on) http !4411
  • comments fixing and minor ref ATB !4412
  • list/range API; CLI comments/examples !4413
  • tests: limit the number of cleanup-generated errors !4414
  • ref: move "connection-refused" and similar exceptions !4415
  • PUT into mirrored bucket !4416
  • more lint !4417
  • rename/refactor xaction providers !4420
  • ref: xaction args !4421
  • xaction factory (ref, consistency) !4422
  • read-json: prevent superfluous response !4423
  • revise xaction renewal (internal) API !4424
  • lint/revive: enable unused-receiver rule !4428
  • revise xaction registry (part one) !4430
  • proxy: mem-pool API args; original bucket url !4431
  • run-provider tests must cleanup after themselves !4432
  • bucket lookups vs a missing backend provider !4433
  • introduce fullname() shortcut for: lom, transport header, archive !4436
  • api/object: close response body, close source reader !4438
  • list-buckets corner cases with no authentication and/or compiled-in backend !4441

version 3.5

07 May 01:25
Compare
Choose a tag to compare

Bug fixes and improvements

  • metasync: dynamic SGL sizing !4282
  • http-common: serialize shutdown and initialization !4283
  • streams: intra-data endpoint !4284
  • ETL/target: intra-control endpoint !4285
  • s3 compatibility: stubs for unsupported features; s3cmd !4286
  • CI: add missing build configurations !4287
  • upgrade Go1.15 to Go1.16 !4288
  • enable intra-cluster networks for functional testing !4289
  • GODEBUG=madvdontneed=1 vs Go 1.16 !4290
  • deploy: remove obsolete charts and scripts !4293
  • tests: re-enable conditions for dSort tests with memory and disk !4294
  • CI: add more linters + chores around existing linters !4295
  • metasync: reuse jsp, optimize serialization (part one: cluster map) !4296
  • metasync: just-in-time revs !4297
  • CLI: use default config instead of empty one if the configuration file is missing !4298
  • fix minikube based deployment for tests !4299
  • target: serialize receiving BMD vs graceful termination !4300
  • extend is-unreachable helper with more !4301
  • updating nil BMD !4302
  • CLI: sort disk output by target_ID and disk_name !4303
  • fflush upon close prior to rename !4304, !4305, !4307
  • no metasync when shutting down !4306
  • tests: wait cluster state - use reverse proxy !4308
  • metasync: reuse jsp, optimize serialization (part two: BMD) !4309
  • metasync: avoid re-marshaling received cluster map (part four) !4312
  • metasync: optimize-out remarshaling (part five: Rx BMD) !4313
  • metasync: encode first, persist and distribute second !4315
  • metasync: reuse jsp, optimize serialization (part six: config) !4316
  • use direct I/O and sync for FSHC file read and write !4317
  • debug panic must leave a trace !4318
  • build: fix MacOS build !4319
  • rejoin cluster during startup if primary gets re-elected (major) !4320
  • metasync: optimize-out remarshaling (part seven: Rx Config) !4321
  • bootstrap: use joining targets info to discover BMD; strict UUID checking !4322
  • bootstrap, joining targets and RMD; fixes !4323
  • tweak primary election !4325
  • bootstrap: refactor reg-pool processing; handle global config !4326
  • metasync: revise receive logic; structured error type (part eight) !4327
  • metasync: handle cluster-info scenarios (part nine) !4328
  • starting up with outdated or missing cluster maps !4329
  • build/deps: upgrade all minors !4330
  • CLI: make order of columns stable !4331
  • target: refactor BMD Rx logic !4332
  • aisloader: support bucket URI in the command line !4333

3.4.1

14 Apr 04:28
Compare
Choose a tag to compare

Kubernetes Operator

Bug fixes and improvements

  • bench: add FIO benchmark configuration for repeatable FS benchmarking !4228
  • refactor EC rebalance test !4255
  • improve deploy script !4256
  • docs: Use absolute links !4260
  • lint update v1.32 to v1.39 !4258, !4261, !4262, !4263
  • better checking for rebalance abort !4264
  • revise vmd loading and error handling !4265
  • rlock ios !4266
  • fix keepalive reconfig !4267
  • ios: minor optimizations; vmd: refactor init/load !4268
  • assign Snode flags only when changed !4269
  • fix build for net/http !4270
  • rebalance: mem-pool and fix transport/header !4271, !4272
  • build: 1) upgrade fasthttp and 2) replace x/crypto (deprecated) !4273
  • memsys: refactor sgl allocation !4274
  • ais/s3 API: respond via sgl !4275
  • mem-pool SGL (list, not buffers) !4276

CLI

  • allow user to set aliases !4244
  • move cluster configure to top-level commands !4248
  • show extended EC stats for 'ais show job xaction ecput/ecget' !4249
  • replace 'daemon id' with 'node' in titles !4251
  • don't show all configs by default !4252
  • don't use append() to initialize commands !4253
  • show daemon local config separately !4254
  • revise alias; add list, reset !4257
  • add completion for 'cluster detach' !4259
  • add link to autocompletion scripts to app description !4279
  • add basic k8s support as top level command 'kubectl' !4280
  • ais show log [node]: API and CLI !4277, !4278, !4281