Aistore

Latest version: v1.4.22

Safety actively analyzes 623567 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 6

3.22

CLI
- add `iterate-fields` separator; 'config log.modules' multi-choice !6458
- 'put source-directory' vs. 'archive put source-directory': usability !6472
- support '--template' option with no ranges - prefix only !6482
- universal command line for multi-object operations (major update) !6500
- copy `(bucket | multi-object)` !6534
- invalid bucket (usability) !6535
- fix transform bucket argument !6557
- jobs: non-verbose x-start; wait for `job-id` !6614
- set bucket props (usability) !6652
- 'ais' with no arguments - show one page of the most important information; update docs !6660

3.11

Highlights
- [Python SDK](https://pypi.org/project/aistore/) v1.0.1 with [PyTorch integrations](https://github.com/pytorch/data/tree/main/torchdata/datapipes/iter/load#aistore-io-datapipe)
- [Authentication and Access Control](docs/authn.md)
- [GitHub Action](action.yml) 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

3.10

Highlights
- Global (cluster) config meta-version 2
- Bucket metadata (BMD) meta-version 2
- [Python SDK](https://aiatscale.org/blog/2022/05/23/python-sdk-getting-started)
- Build: Go 1.18; upgrade all packages
- [MessagePack](https://msgpack.org) 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`](https://msgpack.org) 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](https://pydantic-docs.helpmanual.io); 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](https://aiatscale.org/blog/2022/03/17/promote) !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

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](https://aiatscale.org/blog/2022/03/17/promote): redefine to handle remote file shares; collaborate when promoting via entire cluster; add usability options; productize;
* [xmeta](/cmd/xmeta/README.md): 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](/docs/bucket.mdlist-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](/docs/ic.md) notifications !4975
- extend test coverage; reinforce global UUID when promoting via entire cluster !4976
- rename [api.Promote](/api/object.goL518); 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)](/cmn/owt.goL19) 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](/api/xaction.goL122) !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](/xact/xreg/xreg.goL103): 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](/docs/ic.md) 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 streams: tweak termination logic !4921
- transport streams: revise transmit <=> terminate concurrency, optimize !4922
- refactor transaction types (minor) !4927
- `list-objects`: name-only option (follow-up) !4928
- `fs`: non-recursive `walk` in lexical order !4931
- `fs`: refactor bucket-traversing logic, eliminate nested closures" !4935
- `list-objects` and `bucket-summary`: refactor target side !4938
- LRU & storage cleanup: clarify when-previous-is-running !4939
- `transport`: redefine client callback to return error !4941
- `transport`: consistent drain-and-free cleanup on the receive side !4942
- lint: `gofumpt` & `gocritic` !4944
- `list-objects` buffering, caching: refactor, optimize !4946
- etl: intuitive RESTful URL paths - Part 1 !4947
- feature flags: refactor, enforce intra-cluster requests via API endpoints !4948
- API-level JSON messaging: uniformity & consistency !4949
- core: fast URL query parsing (major) !4950, !4953, !4954, !4955, !4956, !4957, !4958
- tools: add support for EC metafile to xmeta !4959
- bench: revamp `lstat` !4960
- `api` package: memory pooling !4961
- follow-up: `DPQ`; `t.Helper` !4962
- `api` package: memory pooling !4963
- `api` package: memory pooling !4964
- `fs` and `cos` packages: alternative slightly faster `fstat` to check existence !4965
- etl: change `init-code` and `init-spec`; intuitive RESTful APIs - part 2 !4966
- fix the logic to attach remote cluster during early startup !4967
- `api` package: memory pooling !4968
- `api/object`, `aisloader`: continued refactoring !4969
- core/cluster: rewrite max-version decision logic !4970
- core: call-args control structure !4971, !4972, !4973
- tools: `xmeta` support for `LOM` !4977
- IC notifications: eliminate redundant aborts !4980
- etl: implement ETL Stop & Delete APIS; intutive RESTful API part 3 !4981
- docs: updates to reflect all ETL API changes !4984
- alloc/free `put-obj`; mem-pool !4994
- `cos` package: inline usage of one-time constants !4996
- ais target: refactor `copy-object`, `copy-reader` logic !4997
- double transactions begin timeout; send-remote and `OWT !4998
- target-to-target copy object: remove local-only option !4999
- URL query parameter (ref) !5000
- go-vet `xmeta` !5003
- intra-cluster PUT vs user PUT: further differentiate and account for !5004
- etl: add API to start ETL !5005
- error processing: wrap errors to retain the types (major) !5006, !5007
- tools: fix linting when `golangci-lint` is installed differently !5008
- `cmn` package: remove `LogLevel` and `Vmodule` fields from config !5009
- simplify error reporting and attribution (major ref) !5010
- lint-1.44.2 !5011
- error processing and attribution !5012
- keep-alive cluster nodes: major refactoring, cleanup, code reduction !5013
- `transport`: transmit/receive *unsized* objects resulting from streaming transformation !5017
- etl: delete operation must be controlled by primary gateway !5022
- `apc`: new package for API constants (major ref) !5026
- copy/transform bucket: add 'force' option !5029
- `apc` package: move `metadata-write` and refactor bucket-props validators !5032
- `apc` package: move access control (ref) !5033
- `apc` package: move action message (ref) !5034
- `apc` package: move `list-objects` control message !5035
- `apc` package: move copy/transform bucket message (ref) !5036
- common bucket structure (major) !5037, !5038
- fix: do not use `jogger-group` bucket inside individual jogger's `visit-object` callbacks !5048
- core: two distinct methods to initialize `LOM` (major) !5049
- backend bucket: fix returned AWS error to include details !5051
- assorted fixes !5052, !5053
- cloning `LOM` (metadata): follow-up !5065
- self-healing: object recovery in the GET path !5069
- assorted fixes: object recovery vs runtime metadata extension !5070
- avoid duplicate FQN parsing when traversing buckets and *visiting* content types !5073

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

3.7.1

Page 1 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.