Releases: NVIDIA/aistore
Releases · NVIDIA/aistore
3.12
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 asksais 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, andlist-objects
!5615, !5616
List & summarize buckets
- easy URL to support listing buckets via
/gs
,/az
, and/ais
endpoints !5486 list-buckets
andget-bucket-info
API; CLI summary table !5521, !5522list-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] addpresence
filter; eliminate bucket-info control structure (is redundant); refactor !5540 list-buckets
andbucket-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 !5545bucket-summary
andlist-buckets
cont-d unification !5546, !5547list-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; multipartETag
; 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; addpresent
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
- amend main readme; add Reuse section !5375, !5376, !5378
- blog: Python SDK: Getting Started !5373
- add
curl
example to set backend bucket property !5380 - python/sdk: ETL !5397
- amend main readme: add PyTorch integration section !5406
- remote backend; native integration !5407
- revise
ulimit
, reference checked-in version oflimits.conf
!5429 - update CONTRIBUTING.md !5459
- blog: AIStore: Data Analysis w/ DataFrames demo !5469, !5473
- update s3cmd readme - add multipart example !5483
- restructure and extend getting-started; revise and amend
Local Playground
option !5484 - easy URL: add readme with extended examples and comments !5487
- REST API querying information !5641
- REST API listing buckets (remote namespace, presence and existence) !5644
- update ETL main readme, CLI readme, and examples !5471
- amend s3 compatibility readme, add multipart example !5496
- main readme: Installing from release binaries (add section) !5640
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
, andbefore
/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...
3.11
Highlights
- Python SDK v1.0.1 with PyTorch integrations
- Authentication and Access Control
- GitHub Action to deploy and test local playground
- Bug fixes, documentation updates, performance improvements
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
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 asio.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
andtearDown
in tests !5167 - improve creating temporary file !5168
- add
evict-bucket
anddelete-object
; add props argument forlist-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; addmsgp-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
; rewritedevtools/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 !5202compute-checksum
andclone-md
(ref) !5205memsys
: mem-free to include buff/cache !5206memsys
: revise sys/mem (major) !5207lif
tolom
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
): reghk
housekeepr under lock; abort to self-expire !5215 lom
copy: allocate with name !5216lom
xattr (ref) !5217
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) andoverwrite-dst
(overwrite destination)!4988 - fix extra-copy optimization with full refactoring !4989
- revise/optimize
HEAD(object)
implementation and utilize it when promoting withoverwrite-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
anddelete-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
: mergeWaitForRebalanceToStart
andWaitForAllResilver
!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
andxreg
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 forrefresh=<time-interval>
andcount
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 oftutils.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
andcorrupted-error
!4849LOM
vs n-way mirroring: fix and revise caching of the metadata !4850list-objects
: add fast mode--only-names
!4851- introduce permission to overwrite disconnected backend !4852
api
: refactor PUT API; fixdevtools
!4853- optimize PUT latency by allowing not to load object metadata !4854
aisloader
bench: do not run goroutine per eachPUT
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
acrossLOM
caches !4869 - storage cleanup: leftover copies, corrupted and missing metadata !4870
- refactor
cmn
andapi
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 underfs/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
andmax-keepalive
!4918 - intra-cluster transport streams: tweak termination logic !4919
- slab allocator: amend pooling of the SGL control structures !4920
- transport s...
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 !4674show config
improvements; follow-up !4676- add command to immediately unregister node from cluster map !4693
- new command
ais storage cleanup
!4704 attach mountpath
anddetach mountpath
(ref) !4705show 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, allowais archive ls
to list entire bucket (of tarballs, etc.) !4828 - do not print hint if JSON format is on !4839
- introduce
unknown-value
andnot-set-value
, and use consistently; fixstop-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 ofos.Setenv
anddefer 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 forlist 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
andrestart
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
anddocker 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) !4678xmeta
(tool): addVMD
, refactor !4680etl
: add new (non-HTTP) communicator and stop relying on the K8s API Server !4681SizeBytes()
andAtimeUnix()
methods for CT !4682volume
: revise, refactor, and reinforce operations on metadata !4683, !4684downloader
: 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 !4699cmn/context
=>cmn/cos/context
; rename "attach/detach remote ais" (minor ref) !4700volume
: keep it sync with local config !4701etl
: add more Python runtimes !4702volume
: keep it sync with local configuration !4703- api to attach/detach/enable/disable
mountpaths
: pass node ref consistently !4706 - make: add
run
andrestart
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
andcmn/err
: continued refactoring !4719- graceful
mountpath
(disk) removal - major revision !4721, !4722 fs
: more validation and naming consistency !4725api
to attachmountpath
withforce
!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...
3.7.1
- 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
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
andPrefetchRange
!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 internalEC.intraReq.sender
!4512 - EC: use
transport.Hdr.Opcode
instead ofintraReq.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
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
: renameBucketNames
struct toBcks
to better describe content !4359fs
,ios
,ais
: minor refactoring & cleanup !4360mountpath
,fs disks
(ref) !4361fs
: revise init and validation logic !4363fs/vmd
minor ref !4364- transport, streams: tweak global defaults !4365
metasync
: not using nil SGL for payload (fix) !4366metasync
: 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 !4379dsort
: replace section reader !4380- ETL: pull docker images only if not present !4381
ais
: minor ref (get, extract) !4383metasync
,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: usingrevive
!4406memsys
: 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) !4422read-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
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
anddisk_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
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