#aws #s3 #objectStore

Дизайн имеет ограничения: переименования дорогие, потому что в S3 нет нативного rename и приходится копировать и удалять объекты.
При очень больших mount’ах возникают отдельные издержки.
Не все ключи S3 можно показать как POSIX-файлы. Запусковая версия не даёт тонкого ручного контроля над моментом коммита. Но вместо того чтобы обещать невозможное, система явно показывает границу между двумя моделями и делает её управляемой.

Итого: проблема не в том, что у данных есть разные способы доступа, а в том, что раньше между этими способами приходилось строить неудобные мосты вручную.

S3 за последние годы расширился от объектного хранилища до платформы, которая старается обслуживать разные представления данных — табличное, векторное и теперь файловое — не заставляя пользователей постоянно бороться с форматом доступа.
Хранилище должно убирать инфраструктурное трение и не мешать работе с данными, а S3 движется именно в эту сторону.

#aws #s3 #objectStore

В практическом плане S3 Files работает так: bucket или его часть можно смонтировать в EC2, контейнере или Lambda как обычную файловую систему.

При первом обращении система подтягивает метаданные из S3 и строит синхронизированное файловое представление.
Маленькие файлы до 128 КБ подгружаются сразу, для больших сначала поднимаются только метаданные, а данные скачиваются по мере чтения.

Это позволяет быстро начать работу даже с bucket, содержащим миллионы объектов. Изменения, сделанные через файловый интерфейс, агрегируются и примерно раз в 60 секунд коммитятся обратно в S3 единым PUT.
Синхронизация двусторонняя: если объект изменился напрямую в S3, файловое представление это тоже увидит.
При конфликте источником истины считается S3, а файловая версия уходит в `lost+found`.
Данные, к которым давно не обращались, вытесняются из файлового слоя, но не удаляются из самого S3.

#aws #s3 #objectStore

Есть и компромиссы.
Один из них — консистентность и атомарность. Файловые системы позволяют, например, собрать изменения и сделать их видимыми через `atomic rename`, тогда как в S3 такой эквивалент отсутствует.
Другой — авторизация: IAM-политики S3 и права файловой системы устроены совершенно по-разному, и попытка одновременно наложить обе модели на каждый объект была бы слишком сложной.
В новом подходе права задаются на уровне mount и файлового слоя, а IAM остаётся защитным внешним контуром.

Ещё одна большая проблема — различия в пространстве имён: в S3 нет настоящих директорий, разделители путей условны, а некоторые объектные ключи вообще нельзя корректно представить как POSIX-имена.

Если имя нельзя безопасно перенести через границу, оно просто не переносится, а система сигнализирует об этом событием.

#S3 #aws #objectStore

AWS делают из S3 больше чем объектное хранилище, это теперь файловое хранилище. Но объектное. Но бакет теперь можно примаунтить как файловую систему. И там всякие UID/GID нарезать, как велено в POSIX. И всё это без s3fs и прочих суррогатов.

https://aws.amazon.com/blogs/aws/launching-s3-files-making-s3-buckets-accessible-as-file-systems/

AWS пытались объединить мир файлов и мир объектов что оказалось намного сложнее, чем можно было ожидать. Изначально команда надеялась буквально совместить EFS и S3 так, чтобы получить «лучшее из двух миров», но быстро выяснилось, что у файловой системы и объектного хранилища слишком разные базовые семантики. Файлы предполагают тонкие изменения внутри файла, быстрые переименования, богатые операции на уровне ОС, mmap, конкурентную работу и поведение, привычное для локальных или сетевых файловых систем. Объекты воплощают идею целостных immutable-единиц: объект обычно создаётся или перезаписывается целиком,

Launching S3 Files, making S3 buckets accessible as file systems | Amazon Web Services

Amazon S3 Files makes S3 buckets accessible as high-performance file systems on AWS compute resources, eliminating the tradeoff between object storage benefits and interactive file capabilities while enabling seamless data sharing with ~1ms latencies.

Amazon Web Services
Well, that move from #tebi to #scaleway was very painless. #s3 #objectstore #mastoadmin

Watching the re-indexing of an archival catalog backup of AtoM, I realized:

Indices populated with 18751 documents in 164.84 seconds.

19k Objects?
Thats /nothing/ for a regular #bigDATA tech-tool. This is peanuts.

400.000 Objects?
Millions?! - According to documentation of #ApacheIceberg #ObjectStore #Redis #KeyDB, etc: **easy**

#DLTP & #GLAM: Storing and using those "objects" in key/value annotated filesystems with bigDATA tools:

**FUN!!**

Anyone having some performance data for the #IONOS #Objectstore for comparison?

Is 0.5 Mbit/s down (average 0.2) and 0.4 MBit/s up (average 0.25) all you get?

I don't see anything that would prevent it from reaching higher speeds, but it appears to cap out there. Not sure why though.

Also for some reason s3fs is throing "input/output errors" after a few hours without logging any error (rerunning with loglevel=info right now).

Es gibt ein neues Kapitel in meiner VPS Dokumentation. Ich beschreibe, wie man MinIO als Object Store für Iceshrimp installiert und konfiguriert: info.jyrgi.de/services/minio/index.html
#Iceshrimp #MinIO #ObjectStore #selfhosting
2.3 MinIO Object Store :: Jürgen's NB

Iceshrimp has some issues when the local file system is used to cache media files. Under iOS especially videos cannot be started. This problem seem to be solved in Iceshrimp.NET. I selected MinIO as object store. The subsequent sections describe the installation and how to configure Iceshrimp to make use of MinIO. Install MinIO To run MinIO as docker container you need to provide following docker-compose.yml file: services: minio: command: 'server /data --console-address ":9001"' image: quay.io/minio/minio:latest restart: unless-stopped volumes: - './data:/data' env_file: "./.env" container_name: minio ports: - '127.0.0.1:9001:9001' - '127.0.0.1:9000:9000' The administrator account and password is provided in the .env file which has following content:

Jürgen's NB
Using Core Data With CloudKit | WWDC NOTES

CloudKit offers powerful, cloud-syncing technology while Core Data provides extensive data modeling and persistence APIs. Learn about combining these complementary technologies to easily build cloud-backed applications. See how new Core Data APIs make it easy to manage the flow of data through your application, as well as in and out of CloudKit. Join us to learn more about combining these frameworks to provide a great experience across all your customers’ devices.

WWDC NOTES
Never realized how simple it is to add an #ObjectStore to #nextcloud. Pretty cool!