Skip to content

3.17

Compare
Choose a tag to compare
@alex-aizman alex-aizman released this 11 Apr 00:46

Table of Contents

  • CLI v1.2
  • Python SDK v1.1.2
  • S3 compatibility and Botocore
  • API changes
  • Tests and Documentation
  • Core: bug fixes and improvements
  • Build and Continuous Integration
  • Extensions: Downloader, dSort, ETL

See also:

CLI

  • show all jobs !5645
  • start/stop job/xaction !5660
  • refresh rate and countdown; long-running 'show job' and friends !5651
  • 'show log node-name' to mimic 'tail -f' !5652, !5654
  • add custom duration flag and logic !5655
  • 'ais config (cluster|node|cli)', 'ais config reset', and friends !5656
  • bucket completions !5657
  • set-config to show all updates; tweak iter-fields reflection !5658
  • 'show job' to aggregate all categories and support all selections !5661
  • transition to using job display names (major) !5663
  • start, stop, show jobs and xactions (cont-d) !5665
  • amend and restructure jobs !5666
  • running xactions (completions) !5672
  • tweak config json printout; get-config from memory !5673
  • update backend config !5674
  • update backend config (part two) !5677
  • add footnote, marshal message only once !5678
  • remove xaction term and subcommand (everything is job now) !5692
  • suggest (targets, proxies, nodes) !5694, !5696
  • revise bash completions script !5697
  • remove 'xaction' (term and subcommand) !5698, !5699, !5700
  • 'show cluster': separate cluster nodes from all other (tab-tab) completions !5701
  • consolidate and refactor cluster map access !5704
  • tweak ais create bucket --props & ais bucket props set !5706
  • extend 'job start' to support (resilver, copy-bucket, rename-bucket) !5715
  • tweak listed props !5719
  • remove (cleanup) download and dsort jobs !5721
  • extend 'ais stop' to support --all|--regex !5722
  • 'show job' verbose option; unify usage args; ref PUT/APPEND !5723
  • rewrite command-not-found logic; add similar commands !5724
  • show jobs (major) !5726, !5727
  • bash autocomplete ordering improvements !5728
  • improvements (usability) !5729
  • add bucket cp alias !5730
  • flag printable name; split 'show job' in parts; usability !5736
  • further unify stopping, waiting-for, and showing jobs !5744
  • revise & amend 'show rebalance' - all permutations !5761
  • universal start-end formatting; template refactoring !5762
  • jobs grouping by name and, within name, by UUID !5764
  • complete etl-name transition !5767
  • ETL tools, UUID (part one) !5745, !5746, !5749, !5753, !5754, !5763
  • fix download/dsort progress !5769
  • new table to show target statistics !5788
  • 'ais show performance' (new) !5791, !5793, !5800, !5802, !5803, !5809, !5810, !5811, !5812, !5816
  • IEC, SI, and raw (bytes, nanoseconds) formatting (major) !5820
  • reduce code, simplify, cleanup !5821
  • IEC, SI, and raw (bytes, nanoseconds) formatting (major) !5823
  • disk stats: add average read/write sizes !5824
  • amend existing mountpath tab and add a new one !5833, !5834
  • expect node unreachable when iterating '--refresh' !5837
  • assorted usability; add 'no-color' config !5839
  • 'ais show performance': average (GET, PUT, etc.) sizes on the fly !5840
  • support new API to reset stats !5841, !5843
  • 'ais show performance': refactor throughput, add latency !5844
  • 'ais show performance': finalize latency tab !5847
  • 'ais show performance' cont-d !5848
  • 'ais show performance': finalize top-level tab !5850
  • 'ais show performance': add cluster-level throughput, beautify !5852
  • 'ais show performance': alias 'stats' and remove older code !5853
  • 'ais show performance': disk table v2 !5855
  • 'ais show performance': finalize disk table !5857
  • 'ais show performance': new mountpaths/disks/capacity table !5858, !5859
  • 'ais show performance': finalize capacity table !5861
  • refactor and cleanup multi-object put !5862
  • multi-object PUT: source dir, list/range; matching pattern !5865
  • fix concatenation logic, refactor progress bar !5867
  • copy bucket: support progress bars (copied objects and size) !5870
  • consistent timeout management !5871
  • copy/transform a list or range of objects: add progress bar !5873
  • copy/transform with progress bar: style, reuse !5874
  • multi-object PUT !5876
  • rogress bar: all multi-object operations; universal 'wait-for' !5879
  • PUT multi-object - all flavors !5880
  • get multiple objects in one shot (""multi-object GET"") !5884
  • GET destination & assorted fixes !5882
  • copy-bucket: prepend prefix, command helps, examples !5889, !5891
  • more inline help !5892
  • assorted improvements (minor) !5900
  • fix downloading with progress bar enabled !5903
  • how-to text: how to reconfigure remote ais cluster !5932
  • add CLI compatibility warning (new CLI vs old cluster and vice versa) !5952
  • cluster membership-changing operations (shutdown, decommission, et al): improve usability !5956

Python: SDK library and ETL

  • Add unit tests for cluster class !5675
  • Add unit test for api client class !5676
  • Fix python ETL test workflow !5680
  • Add unit tests for Xaction class !5681
  • Add unit test for object class, fix object put data from a filepath !5682
  • Add unit tests for ETL class !5683
  • Add unit tests for sdk utils !5685
  • Restructure python subdirectories and containment !5686
  • Run python unit tests as part of default python test make option, include python ETL tests in all python test runs !5688
  • Only run python ETL tests when python labels are added !5702
  • update test utils to support running Python tests on Windows !5716
  • Add multi-object functionality !5720
  • Add tests and validation to object ranges, support leading zeros !5731
  • Add unit test for object group class !5732
  • Update documentation for python multi-object ops !5734
  • Use aws bucket for python sdk CI tests to test caching functions !5739
  • Add string template support to object groups !5741
  • Refactor all references from xaction to job !5742
  • Update ETL runtime defaults and add new python 3.11 option !5743
  • Fix remote bucket tests to avoid collisions !5748
  • Increment cloudpickle version and update github action to use 3.11 for tests !5756
  • Fix python test dependencies !5780
  • Refactor to simplify typing and tests !5789
  • Bump python SDK to 1.0.5 !5790
  • Update python sdk version !5792
  • Update pytorch integration README with compatibility issue !5794
  • Patch sdk to support torchdata integration !5795
  • Bump aistore package version !5798
  • Fix pylint and formatting !5799
  • Add ObjAttr type for returning additional object metadata !5805
  • Address lint warnings, general improvements !5808
  • Add writer option to object get !5813
  • Split README for different python projects !5814
  • Add PROMOTE functionality to objects !5818
  • Standardize pylint version, fix lint errors !5822
  • Improve object put behavior and add directory put options !5826
  • Use Pathlib over os.path !5827
  • Refactor multi-file put to bucket class !5830
  • Improve job interface and update promote options !5832
  • Update python package build tools, increase version to 1.0.9 !5835
  • Improve example documentation !5842
  • Improve input validation !5846
  • Set up proper logging, update constants !5849
  • Add job wait for idle status and fix job bucket filter !5863
  • Add multi-object copy !5866
  • Fix remote test fixture !5877
  • Add multi-object ETL !5878
  • Release 1.0.10 !5881
  • Expand multi-object examples !5883
  • Improve usability !5888
  • Follow-up for copy/transform prepend !5890
  • Improve object interface !5893
  • Add prefix_filter option to bucket copy !5899
  • Add flags and target options to bucket list_objects methods !5901
  • Release 1.1.0 !5910
  • Release 1.1.1 !5911
  • Improve python sdk examples !5913
  • Add cluster list_jobs, require id for individual job status query !5916
  • Add support for multi-object archive !5920
  • Update bucket params to use Bucket object, support namespaces !5925
  • Add prefix filter to bucket transform !5949
  • Release 1.1.2 !5950
  • PyTorch: add support for etl-name in AISDataset and AISFileLoaderIterDataPipe !5957

S3 compatibility and Botocore

  • Add botocore monkey patch alongside python SDK !5684
  • Move botocore and pytorch packages to python top-level, separate from sdk !5691
  • Add s3 compatibility testing with boto3 !5703
  • list-objects vs HEAD !5705
  • compute multipart md5 and set etag !5708
  • Improve s3 compat test documentation and update validated tests !5747
  • Pass S3 delete a list of objects !5854
  • fix infinite loop when listing objects; add bucket name to list object response !5864
  • return bucket creation date in UTC !5869
  • new flag NoRecursion to support S3 delimiter feature !5930

API changes and new APIs

  • add API to query multiple xactions via any IC proxy !5670, !5671
  • yet another API to query xactions (new) !5687
  • list-objects API: tweak listed props !5718
  • [API change] flatten xaction-snap control structure (major upd) !5740
  • [API change] ETL: tools, UUID (part nine) !5754
  • [API change] ETL: new query parameter to specify transform name !5755, !5765
  • [API change] init/start ETL to return xaction ID !5768
  • [API change] GET(object) !5770, !5772, !5773, !5775
  • [API change] remove xaction 'query-msg' (deprecated) !5783, !5784, !5785
  • get-object API: amend comments !5769
  • refactor api package (major) !5776
  • [new API] query metric names and kinds ('counter', 'latency', 'throughput', et al.) !5796
  • [API change] get node status !5811
  • [API change] core stats: consistency between stats-querying APIs !5817
  • [API change] PUT(object) !5828
  • [API change] amend capacity-disks-filesystems control !5831
  • [API change] add API to reset stats !5841
  • [API change] copy bucket: add prefix option !5894
  • [API change] copy/transform bucket: add 'prefix' option !5895
  • [API change] bucket summary: add 'prefix' option (major) !5896, !5898
  • [API change] return comma-separated list of job UUIDs !5927
  • [API change] extend & refactor system info, add load averages !5951

Core

  • xactions: display name, global & bucket scope, abort by kind (core) !5662
  • xaction snaps V2 (major) !5667
  • tweak reversing-to-remais logic !5668
  • bucket summary !5678
  • bucket summary: handle failure to start !5679
  • offline access to remote ais cluster buckets !5674
  • refactor cluster.Target interface !5689
  • unify time formatting; log: current date periodically !5705
  • fix HEAD(remote-ais-bucket) when the latter is not present !5707
  • xaction registry: cleanup list-objects separately, revise house-keeping !5725
  • copy-bucket & transform-bucket: revise generic stats !5730
  • global rebalance: fix cleanup upon (re)transmit failures; handle err-stream-terminated !5733
  • extend xaction snap: add source and destination buckets !5735
  • always return atime and checksum when listing 'cached' content !5738
  • assorted fixes and ref (cont-d) !5759
  • add has-active-peers; refactoring !5760
  • special circumstance to retry delete-object; lesser assert !5782
  • consolidate xaction API messages !5786
  • rebalance upon cold reboot, refactor join/kalive !5787
  • GET(object): add version-changed stats counter !5801
  • core stats: lockless (counter, gauge, special) !5804
  • core stats: revise error counting (major) !5806, !5807
  • core stats: introduce KindSize !5815
  • IEC and IS units of measurement (ref) !5819
  • core: micro-optimizations and cleanup !5825
  • rename mountpath and filesystem (ref pass) !5829
  • stats: serialize to SGL !5834
  • stats: rename for consistency !5836
  • config features: add fsync-put; don't destroy bucket when creating one !5845
  • core: micro-optimize BMD update !5851
  • core: refactor 'ios' !5856
  • extend the minimal/default subset of list-objects queried props !5868
  • refactor packages: 'nl', 'api', 'xact' !5872
  • add 'idles-before-finishing' state !5875
  • parse IEC and SI units !5882
  • multi-object GET (part two) !5885
  • streaming-x: multi-bucket matching, transport name !5886
  • long timeout to query all xactions !5887
  • copy-bucket: prepend prefix !5889
  • LOM as a remote data provider (DP) !5905
  • copy/transform remote objects that may or may not be present (major) !5906
  • copy/transform remote objects that may or may not be present !5908
  • copy/transform remote objects (part three) !5909
  • end-to-end protection: compute a given checksum type only once !5912
  • copy/transform remote objects (part four) !5914
  • core/list-objects: always primary !5915
  • copy/transform remote objects (part four) !5917
  • canonical bucket/object name, and more !5918
  • copy/transform remote objects (part five); canonical names !5919, !5921
  • store cleanup: delay deleting bucket directories when in doubt !5923
  • copy/transform remote objects (part six) - tests !5924
  • remote ais cluster: fix API forwarding logic; transform/copy test !5926
  • when node is in maintenance don't try to query it's state-and-status !5956
  • revise waiting/polling logic, reset probe frequency !5960

Build and Continuous Integration (CI)

  • add workflow job to build ais-init image !5646
  • build: move CI (image, make); move/update testing-in-docker content !5710
  • build: upgrade all minors !5711
  • Update minikube deploy script, remove from test run !5774
  • Update docker/ci image to include docker io !5778
  • Add uuid dependency to docker/ci image !5779
  • build: clear golang/x/net security alerts (two commits) !5838
  • up modules; cleanup redundant err helpers, simplify; objhead !5907
  • lint with new linter !5929
  • upgrade linter !5931
  • build: remove 3rd party atomic package (use standard) !5934, !5935, !5936
  • math/rand vs crypto/rand ref !5937
  • build: transition to Go 1.20 !5938
  • up modules; ""end-to-end protection"" and other comments !5939
  • add k8s pipeline to run manually !5941, !5943

Tests and Documentation

  • tests: amend all-xaction-status; golangci-lint deadline !5781
  • rename 'ais/tests => ais/test' !5860
  • tests: fix copy/transform eviction logic, and misc !5928
  • extend ETL tests, add from/to permutations !5940
  • docs: 'show job' !5946
  • docs: 'ais job' !5947
  • docs: list objects and buckets, copy buckets, and more; add help.md !5953
  • tests: fix test-promote !5763
  • tests: remote bucket versioning !5766
  • main readme, cluster.md, storage.md, config.md updated, and more...

Extensions: Downloader, dSort, ETL

  • downloader: do not renew xaction !5645
  • amend and refactor dloader package (formerly, 'downloader') !5647, !5648, !5649
  • downloader and dsort: list-active !5650
  • downloader: cluster-wide xaction ID (major) !5659
  • downloader: continued refactoring !5660
  • move ais extensions: etl, downloader, dsort !5664
  • k8s: remove unused ExecCmd !5712
  • default bucket props vs cluster config !5713
  • dsort: add support for EKM with JSON structure !5717
  • ETL: tools, UUID (part one) !5745
  • ETL: tools, UUID (part two) !5746
  • ETL: tools, UUID (parts three & four) !5749
  • ETL: CLI, tools, UUID (parts three & four) !5751
  • ETL: use (logical) "etl_name" instead of (unique) "etl_id" and "uuid" (major update) !5752
  • ETL: tools, UUID (part eight) !5753
  • Add pod health API endpoint for ETL !5771
  • ETL: assorted renames for consistency !5777
  • ETL stats; xaction base notif abstraction (minor) !5902
  • downloader: reduce "wrapping" and deferring !5904