This is an automated email from the ASF dual-hosted git repository.

weichiu pushed a commit to branch HDDS-9225-website-v2
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/HDDS-9225-website-v2 by this 
push:
     new 1b764f848 HDDS-14463. [Docs] Core Concepts -> Namespace -> Bucket -> 
Layouts -> Object Store Buckets (#291)
1b764f848 is described below

commit 1b764f84847c54261c6becfb20efcf3e4cd6cae3
Author: Gargi Jaiswal <[email protected]>
AuthorDate: Tue Jan 27 11:36:05 2026 +0530

    HDDS-14463. [Docs] Core Concepts -> Namespace -> Bucket -> Layouts -> 
Object Store Buckets (#291)
    
    Co-authored-by: Wei-Chiu Chuang <[email protected]>
---
 .../02-buckets/04-layouts/01-object-store.md       | 174 ++++++++++++++++++++-
 1 file changed, 173 insertions(+), 1 deletion(-)

diff --git 
a/docs/03-core-concepts/03-namespace/02-buckets/04-layouts/01-object-store.md 
b/docs/03-core-concepts/03-namespace/02-buckets/04-layouts/01-object-store.md
index b28b9b495..7d352a27b 100644
--- 
a/docs/03-core-concepts/03-namespace/02-buckets/04-layouts/01-object-store.md
+++ 
b/docs/03-core-concepts/03-namespace/02-buckets/04-layouts/01-object-store.md
@@ -4,4 +4,176 @@ sidebar_label: Object Store (OBS)
 
 # Object Store Buckets (OBS)
 
-**TODO:** File a subtask under 
[HDDS-9857](https://issues.apache.org/jira/browse/HDDS-9857) and complete this 
page or section.
+## 1. Overview
+
+Object Store bucket layout stores keys with their full path names in a flat 
namespace, optimized for S3-compatible access patterns. Each key is stored 
independently with its complete path (e.g., `dir1/dir2/file.txt`), similar to 
Amazon S3.
+
+Unlike File System Optimized (FSO) buckets, Object Store buckets:
+
+- Do not create intermediate directory entries
+- Preserve key names exactly as provided (no path normalization)
+- Prioritize S3 API compatibility over file system semantics
+
+:::note
+Apache Ozone supports three bucket layout types:
+
+- **OBJECT_STORE (OBS)**, **FILE_SYSTEM_OPTIMIZED (FSO)** and **LEGACY** 
(deprecated layout for backward compatibility).
+
+:::
+
+## 2. How It Works
+
+- Keys are stored with their full path names as single entries. When creating 
`dir1/dir2/file.txt`, only the key itself is stored—no intermediate directories 
are created.
+
+- Operations support prefix-based listing and filtering. Keys are independent 
objects—deleting one does not affect others, even if they share a common prefix.
+
+- Object Store is the **default layout** for buckets created through the **S3 
Gateway**, ensuring S3 API compatibility.
+
+### Example: Creating Keys
+
+When you create keys in an Object Store bucket:
+
+```bash
+# Create these keys:
+ozone sh key put /myvolume/mybucket/images/photo1.jpg photo1.jpg
+ozone sh key put /myvolume/mybucket/images/subfolder/photo3.jpg photo3.jpg
+ozone sh key put /myvolume/mybucket/data/2024/01/report.json report.json
+```
+
+The KeyTable will contain three independent entries:
+
+- `/myvolume/mybucket/images/photo1.jpg`
+- `/myvolume/mybucket/images/subfolder/photo3.jpg`
+- `/myvolume/mybucket/data/2024/01/report.json`
+
+**No intermediate directories are created** - the paths (`images/`, 
`images/subfolder/`, `data/2024/01/`) are just part of the key names themselves.
+
+**Comparison with File System Optimized Layout:**
+
+```text
+Object Store (OBS) Structure:          File System Optimized (FSO) Structure:
+┌─────────────────────────┐            ┌─────────────────────────┐
+│      KeyTable           │            │    DirectoryTable       │
+│  (Flat, full paths)     │            │  (Hierarchical IDs)     │
+│                         │            │                         │
+│ /vol/bucket/dir/file    │            │ /volID/bucketID/dirID   │
+│ /vol/bucket/dir/file2   │            │ /volID/bucketID/dir2ID  │
+│ /vol/bucket/dir2/file3  │            │                         │
+└─────────────────────────┘            │      FileTable          │
+                                       │  (Files with parent IDs) │
+                                       │                         │
+                                       │ dirID/file              │
+                                       │ dirID/file2             │
+                                       │ dir2ID/file3            │
+                                       └─────────────────────────┘
+```
+
+## 3. Command Line Operations
+
+### Creating an Object Store Bucket
+
+To create a bucket with Object Store layout, use the `--layout` option with 
the value `obs` or `OBJECT_STORE`:
+
+```bash
+# Using short form 'obs'
+ozone sh bucket create /myvolume/mybucket --layout obs
+
+# Using full form 'OBJECT_STORE'
+ozone sh bucket create /myvolume/mybucket --layout OBJECT_STORE
+```
+
+**Example:**
+
+```bash
+$ ozone sh bucket create /s3v/myapp-data --layout obs
+Bucket myapp-data is created
+```
+
+### Checking Bucket Layout
+
+To verify the layout of an existing bucket, use the `bucket info` command:
+
+```bash
+ozone sh bucket info /myvolume/mybucket
+```
+
+The output will include the `bucketLayout` field:
+
+```json
+{
+  "volumeName" : "myvolume",
+  "name" : "mybucket",
+  "bucketLayout" : "OBJECT_STORE",
+  "storageType" : "DISK",
+  "versioning" : false,
+  "creationTime" : "2024-01-15T10:30:00.000Z",
+  "modificationTime" : "2024-01-15T10:30:00.000Z"
+}
+```
+
+### Deleting Keys
+
+Delete keys from an Object Store bucket:
+
+```bash
+# Delete a single key
+ozone sh key delete /myvolume/mybucket/dir1/dir2/file.txt
+
+# Delete multiple keys (requires prefix matching)
+ozone sh key delete /myvolume/mybucket/dir1/ --recursive
+```
+
+**Note**: The `--recursive` flag deletes all keys with the specified prefix, 
but this is not an atomic operation - it deletes keys one by one.
+
+### Deleting Buckets
+
+Delete an Object Store bucket:
+
+```bash
+# Delete empty bucket
+ozone sh bucket delete /myvolume/mybucket
+
+# Delete bucket with all keys (recursive)
+ozone sh bucket delete /myvolume/mybucket --recursive
+```
+
+**Warning**: Recursive deletion permanently removes all keys in the bucket. 
There is no recovery option.
+
+## 4. Configuration
+
+### Default Bucket Layout
+
+You can configure the default bucket layout used when creating buckets without 
specifying the `--layout` option. Set this in `ozone-site.xml`:
+
+```xml
+<property>
+  <name>ozone.default.bucket.layout</name>
+  <value>OBJECT_STORE</value>
+</property>
+```
+
+### S3 Gateway Default Layout
+
+For buckets created through the S3 Gateway, configure the default layout:
+
+```xml
+<property>
+  <name>ozone.s3g.default.bucket.layout</name>
+  <value>OBJECT_STORE</value>
+</property>
+```
+
+## 5. Limitations
+
+When using Object Store bucket layout, be aware of the following limitations:
+
+- No atomic rename (copy and delete required)
+- No atomic directory delete
+- No directory operations (directories are part of key names)
+- Limited Hadoop file system compatibility
+- No path normalization
+
+## 6. Best Practices
+
+- Use Object Store layout for S3 APIs; use FSO for file system operations
+- Organize keys with consistent prefixes (e.g., `year/month/day/file.txt`)


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to