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 driver; probabilistic filter !5595, !5596
- embed stop channel !5597
- transport: let individual streams define max header size !5598
- intra-cluster transport: grow receive header, simplify
rx-loop
!5599 - intra-cluster transport: within-read retries !5603
- aws backend: rewrite
list-objects
versioning part, speed-up working with versioned buckets !5612, !5613 - consistency in custom props across:
get
,put
,head
object, andlist-objects
!5615, !5616 - simplify bucket
try-init
logic to add buckets on the fly !5628 - notifications, control plane (ref) !5629
- cluster and node 'started-up' is now uptime (was
bool
) !5635 - [API change] add
HealthUptime
and use it toais show
remote clusters !5636
Refactoring & fixes
- make deploy: mark aws secret optional to unblock startup !5379
- consolidate
xaction
, movexs
package !5383 - move
dbdriver
, simplify !5384 - GKE, cluster restart: amend false-positive SIE (storage integrity error) detection !5412
- defer freeing
etl-md
sgl !5414 fieldalignment
analyzer !5431, !5432, !5433, !5434, !5435, !5437, !5438, !5440, !5442- fix missing
curl
in aisnode k8s image !5427 - http REST: parsing etc. helpers !5488
- rename aws, etc. provider constants !5527
gofmt
to replaceinterface{}
withany
!5533- refactor and revise
objwalk
pkg !5551, !5553 - delete object vs 503 status; duplicated
trname
(transport endpoint name) !5614
Tools
- scripts: revise github-release: tar.gz binaries, sha256(resulting tar.gz); naming convention !5411
- add
devtools/trand
for tests; use strong randomization for product !5465 - tools: revise
get-primary
,wait-for-cluster-state
,wait-smap-sync
!5571, !5580, !5581 aisloader
: writing non-ais buckets !5600- tools: add
buckets-contain
helper !5627 - scripts: amend local multi-cluster deployment to
--override-backends
and more !5617, !5618 - scripts: add install_from_binaries !5640
Build & CI
- github workflow: setting go version to 1.18.3 !5369
- undo lint and Go version downgrades !5371, !5372
- add
.dockerignore
!5382 - cluster-minimal image: use alpine latest, remove azure !5385
- deploy/k8s: fixes; minimal minikube deployment !5386
- pull latest minikube image in GitHub workflow !5387, !5388
- fully transition to Ubuntu 22; apt-get changes !5389
- add
limits.conf
to all docker images !5391 - deploy/prod: docker Makefile !5392
- gitlab pipeline to build and push docker images !5393
- add github workflow to build docker images !5395
- two-stage Dockerfile to produce
aisnode
for minikube !5398 - add Makefile for dev/k8s scripts !5399
- add short CI stage to the k8s yaml template !5401
- cleanup deploy/dev/k8s readme and scripts !5402
- add cross-compile option !5409
- upgrade all minors !5417
- rebuild and use new docker images !5436
- fix latest lint issues !5423
- fix gitlab Dockerfile !5425
golangci
: re-enablenolintlint
, run go1.17, comment-out disabled !5439- run python/etl manually (was part of test-short) !5502
cli
module to have its own Makefile !5505- github-release; never-nil (minor) !5422
- lint: re-enable
nolintlint
!5424 - update docker github workflow !5430
- pylint: fix warnings !5453
golangci
v.49 !5489- fully transition to Go 1.19 (part two) !5491
- docker/cluster-minimal: configure aws and gcp backends !5499
- gitlab/CLI: force back e2e test suite; upgrade and build !5552
- upgrade all minor versions !5560
- add early return (linter) !5582
- update pylint settings to skip generated files !5642