Releases
3.8
Highlights
ETL: !4621, !4624, !4633, !4649, !4681, !4702, !4780, !4790, !4802, !4831, !4833
storage cleanup: !4632, !4741, !4748, !4753, !4754
custom user-defined object metadata, system Cloud-specific metadata: !4655, !4657, !4659, !4661, !4663, !4667, !4668, !4670, !4673
reinforce and protect ais volume and associated metadata: !4683, !4684, !4698, !4699, !4701, !4703, !4813, !4814, !4834, !4837
safely add and remove mountpaths
(disks) at runtime !4721, !4722, !4728, !4729, !4735, !4736, !4740, !4744, !4789, !4818
"easy URL": support gs/bucket/object
, s3/bucket/object
, and similar (easy) URLs across all backends !4711
introduce node standby mode !4688, !4689, !4691
performance monitoring with a scope node
| batch job
| cluster
!4792, !4793, !4794, !4798, !4800, !4810, !4812
support ais targets with no disks (feature) !4825
Kubernetes Operator v0.9
CLI
fix file name and message when extracting a file from an archive !4602
templates: circumvent index wrap around for aliases !4603
multi-object transform and copy: continue-on-err; add similar keywords !4605
show object
(and its variations): improve usability and fix minors !4674
show config
improvements; follow-up !4676
add command to immediately unregister node from cluster map !4693
new command ais storage cleanup
!4704
attach mountpath
and detach mountpath
(ref) !4705
show storage
subcommands !4713
--wait
option for storage cleanup command !4773
report human-readable stats in show job xaction
!4788
add commands to manage AIS CLI configuration !4791
improve alias
command and docs !4795
follow-up: introduce xaction snapshot
(aka "snap") into CLI templates !4806
add ais cluster show stats
subcommand !4807
refresh for stats !4811
improve job xaction show
command; minor refactoring !4815, !4816
node IDs are very special completions (provide visual cue) !4823
fix archive ls; set and show config usability; log_level !4824
remove glog's vmodule
(obsolete) !4826
improve ais cluster rebalance
command, allow ais archive ls
to list entire bucket (of tarballs, etc.) !4828
do not print hint if JSON format is on !4839
introduce unknown-value
and not-set-value
, and use consistently; fix stop-maintenance
logic !4842
downloader: fix error handling, improve usability, !4844
Integration and unit testing; CI/CD
add Go 1.17 shuffling for short tests !4615
restore original primary in TestForwardCP
!4619
use new t.Setenv
instead of os.Setenv
and defer os.Unsetenv
!4620
CI: fix lint errors on MacOS !4622
wait for xaction
to finish when enabling mirroring !4628
tests/cleanup: ignore "server closed idle connection" !4631
fix failing TestGetAfterReregisterWithMissedBucketUpdate
!4640
dev-tools/tassert
: timestamp failure message, customize print-stack !4647
dev-tools and tests: continued refactoring and cleanup !4654, !4656
CI: add minimal cluster job that runs with 1 proxy and 1 target !4643
save/check cluster state; log: memory reporting !4677
CI: skipping tests in short mode !4776
test cluster config persistence and mountpath
add/remove across restarts !4821
massive read operation vs detach/attach mountpath
(non-redundent bucket) !4822
wait for mirroring, re-enable mountpaths
!4835
Documentation & blog; website aiatscale.org
transition to Go 1.17 (add a note) !4623
remove empty reference to Python client !4636
remote AIS cluster: examples and references !4665
remote buckets (naming notation, CLI examples, cross-refs) !4669
bucket property inheritance, LRU note; E2E tests: set-custom
!4673
configuration.md; transport/Rx: PDU header validation !4679
website: AIStore & ETL: Using AIS/PyTorch connector to transform ImageNet (post #2 ) !4694
remote ais cluster, global namespace !4697
cleanup http_api
docs and add missing json for list buckets
operation !4715
website: AIStore & ETL: Introduction (post #1 ) !4716
update command-line usage !4727
ais cluster show stats
!4809
update ais show job
CLI !4817
website: copying existing file datasets in two easy steps !4829
update main v3.8 README !4830
touch cluster.md; bump version to 3.8 !4838
What's new in AIS v3.8
Build and toolchain; dependencies
transition to Go 1.17 and use new Go features !4627
make: add run
and restart
make targets !4707
reinitialize go-modules and upgrade all minor versions !4724, !4726
Bug fixes and improvements
multi-object copy/transform: handle errors; ref common (part two) !4601
multi-object archive/copy/transform: aborting logic and cleanup !4606
general: use Go 1.17 enhancements !4607
health-checker: more efficient method to read directory entries !4608
bucket copy/transform: aborting logic, cleanup, and test !4609
transport/streams: fix broadcast in a single-target cluster !4610
revise err-aborted
, refactor common errors, downloader !4611
cluster config vs bucket props vs LRU !4612
erasure-coding: fix bucket-encoding xaction hang on errors and upon abort !4613
deployment: add registry URL in docker build
and docker push
commands !4614
add atomic counted err value !4616, !4617
on-demand xaction
: mutex to protect compound state !4618
etl
: add more details when K8s pod times out on being ready; add debug log !4621, !4624
intra-cluster notifications: minor refactoring !4625
xaction
: add immutable (original) bucket !4626
revise xaction aborting logic !4629
lru
pkg: trash non-existing buckets; health check: docs and follow-up ref-s !4630
storage cleanup: remove artifacts of erasure-coding (unfinished slices, redundant replicas and metafiles) !4632
etl
: fix waiting for a ready condition when starting K8s pod !4633
fix global-rebalance can-start
& must-run
helpers !4634, !4635
log: add backend
module; AWS: ignore "unknown region" most of the time !4637
single-target cluster: support bucket renaming !4638
node name vs 1) nodes joining the cluster and 2) early startup !4639
xaction
pkg: consistent naming and refactoring !4641
refine health check: add 'ready to rebalance'; fix test to wait for cluster state !4642
default bucket props (ref) !4644
glog: set-node, reduce header; transport streams: add destination ID !4645
copy configuration values for default bucket props !4646
retriable connection errors; transport: do retry !4648
etl
: remove single-pod limitation (i.e., the capability to run multiple ETLs) !4649
retriable connection errors: use the same condition consistently throughout !4650
single-target cluster shutdown and assorted fixes !4651
global rebalance: refine preemption logic, abort associated streams (major ref) !4652, !4653
custom object metadata: set/replace vs add/update !4655
consistent custom versioning, checksumming, ETag (major refactoring) !4657
default buffer sizes (TCP, HTTP) !4658
custom metadata: unify downloader; unify version comparison !4659, !4661
downloader: make object comparison much more rigorous !4662
object metadata: to/from header converters !4663
unify the code that checks local/remote equality, change backend.HeadObj()
API, simplify cold-GET !4664
erasure-coding config and bucket props: add batch size back for compatibility !4666
object metadata: system attributes (as opposed to user-defined) !4667
object metadata: unset custom keys on PUT, resolve bucket copy vs inc-version
dichotomy !4668
unify object props and system object attributes (major revision) !4670
get-bucket-props: remove redundant code, simplify !4671, !4672
configuration: add transport-idle-teardown
!4675
memsys
: tracking memory stats and responding to OOM (major rev) !4678
xmeta
(tool): add VMD
, refactor !4680
etl
: add new (non-HTTP) communicator and stop relying on the K8s API Server !4681
SizeBytes()
and AtimeUnix()
methods for CT !4682
volume
: revise, refactor, and reinforce operations on metadata !4683, !4684
downloader
: refactoring !4685
cluster membership: shutdown, decommission, maintenance !4686
target standby mode !4688, !4689, !4691
dev scripts: deploy remote ais cluster with the same build tags !4690
refactor and simplify admin-join/auto-join logic !4692
follow-up: self-join, admin-join, immediate removal from the cluster map !4695
phase out "unregister" & further consistent renames !4696
add volume package (ref) !4698
volume
: consolidate loading and initialization; bootstrap in two passes !4699
cmn/context
=> cmn/cos/context
; rename "attach/detach remote ais" (minor ref) !4700
volume
: keep it sync with local config !4701
etl
: add more Python runtimes !4702
volume
: keep it sync with local configuration !4703
api to attach/detach/enable/disable mountpaths
: pass node ref consistently !4706
make: add run
and restart
targets !4707
error formatting (ref) !4708
api package (major ref) !4709, !4710
"easy URL": accommodate list-objects with no json msg !4711
deploy script: fix getting the last parameter !4712
intra-cluster reverse proxying vs content-length !4714
improve error formatting and content !4717, !4718
cluster/hrw
and cmn/err
: continued refactoring !4719
graceful mountpath
(disk) removal - major revision !4721, !4722
fs
: more validation and naming consistency !4725
api
to attach mountpath
with force
!4728
transactional (begin -- commit) to remove mountpath
, with committing after resilvering !4729
lint and refactoring, housekeeping !4730
follow-up: add wait-for-resilver, sort mountpaths
; increase CI timeout !4732
add/remove disks: make it transactional with resilvering in-between !4735, !4736, !4740, !4744
refactor and split reb
pkg, add res
(resilver) pkg !4737
revise GFN
(state): simplify global, move/rewrite local !4738
follow-up: move global GFN state to reb pkg !4739
separate storage cleanup xaction from LRU one !4741
xaction
registry vs housekeeper: tweak initializations !4742
housekeeper
: run first & reinforce; x-factories: ordered initialization !4743
cos
pkg: make ExitLogf
print file and line of the caller !4745
housekeeper
: add wait for housekeeper readiness when registering !4746
fs
: get
and get-available
; test-init
; refactoring !4747
storage cleanup (feature, major upgrade) !4748
rename API action constants for consistency; tweak OOS logic !4749
dsort
: fix panic when creating shard !4750
new pkg to combine both cleanup and eviction logic !4751
memsys
: reduce free-mem requirement for tests & minor fixes !4752
storage cleanup: repackage, rewrite, and refactor !4753, !4754
memsys
for tests (follow-up) !4755
parse request query only once (core) !4757
create and lookup buckets on the fly (major rev) !4758
memsys
and housekeeper
: further clarification !4759
follow-up: do not lookup remote bucket; stopping hk !4760
revise and refactor logic to handle deleted
(formerly trash
) !4761
memsys
vs mock target: more orderly initialization !4762
move mock target out of production code !4763
memsys
: tune-up low-watermark !4764
delete/undelete: retain bucket names when deleting !4766
memsys
: two distinct pairs of slab allocators !4767
general: rename mountpoint
to mountpath
for consistency !4768
memsys
: tune-up for OOM !4769
memsys
: reintroduce max-depth !4770
reduce glog and tweak panic-OOM
condition !4771
memsys
: fix swapping state !4772, !4774
fs
: make mountpath
flags atomic !4775
xreg
pkg: remove obsolete RebalanceArgs
struct !4777
ais
pkg: split etl.go
into tgtetl.go
and prxetl.go
for consistency !4778
cmn
pkg: sort actions alphabetically !4779
etl
: integrate etl communicator with xaction
!4780
set-name
when joining nodes; keepalive logging; test tweaks !4781
not aborting xactions
anymore when adding/removing mountpaths
!4782
fs
: refactor fqn parsing !4783
fs
: refactor fqn parsing, update unit tests and docs !4784, !4785
log rotation: uniformity of the headers !4786
fs
: minor fixes; tests !4787
add an option to remove mountpaths
without resilvering !4789
etl
: manage etl metadata !4790
refactor xaction
stats: remove redundant interfaces, rename !4792
xactions
: introduce snapshot, add in and out counters !4793, !4794
integrate: streams and target stats, rebalance and xaction
snapshots !4796
dsort
: wait for all in-flight stream requests !4797
data mover to support xaction stats; in, out, and locally processed !4798
transport
: complete transition to using opcodes !4799
stats
pkg: add get-daemon-stats
API, remove redundant code and refactor !4800
etl
: fix panic in unit test !4801
etl
: change signature of InitSpec
function to require options !4802
memsys
: tweak init-once logic yet again !4803
consolidate all mock objects in cluster/mock !4804
xactions
: complete transition to snaps (ref) !4805
dsort
: fix placement of aborted check !4808
fix streams received-bytes count; bump CLI and aisloader versions !4810
remove logic to compute min/max k-alive latency; simplify & refactor !4812
capability to recover lost or corrupted node ID at startup !4813, !4814
detach/disable mountpath: actually wait for resilvering !4818
uuid/gid: consolidate and refactor generation and validation !4819, !4820
aistore with no disks (feature) !4825
http provider: ETag check and prefetch prefix !4827
etl metadata: minor fixes and ref !4831
rebalance: simplify-out Tx semaphore !4832
always re-encode etl metadata; improvements and ref !4833
volume
: when creating new volume (and associated VMD), make sure to have a record of configured fspaths
!4834
cmn
pkg: add is-err-not-found !4836
option to force starting up with a lost or missing mountpath !4837
change one api constant to support rolling upgrade !4840
fix ais advanced remove-from-smap
command !4841
minikube
: RBAC v1 !4843
You can’t perform that action at this time.