Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use OceanBase as object store #887

Merged
merged 69 commits into from
Jun 5, 2023

Conversation

MichaelLeeHZ
Copy link
Contributor

@MichaelLeeHZ MichaelLeeHZ commented May 10, 2023

Related Issues

Closes #

Detailed Changes

OceanBase is a highly reliable, distributed relational database. Currently, it can be used as a write-ahead log (WAL) for CeresDB. If OceanBase can be used as an object store for CeresDB, it would decrease CeresDB's dependencies and improve stability.
And this change set implements the trait ObjectStore based on OceanBase.

Test Plan

Add new unit tests for the new module.

components/object_store/Cargo.toml Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/util.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
@MichaelLeeHZ MichaelLeeHZ marked this pull request as ready for review May 22, 2023 13:18
ShiKaiWi added a commit that referenced this pull request May 24, 2023
## Related Issues
Closes #912

## Detailed Changes
Define a trait `CloudMultiPartUploadImpl` that can be implemented by
cloud-based object stores, which refers to `object_store` in `arrow_rs`.

## Test Plan 
Test in #887

---------

Co-authored-by: WEI Xikai <ShiKaiWi@users.noreply.github.com>
analytic_engine/src/manifest/details.rs Outdated Show resolved Hide resolved
analytic_engine/src/storage_options.rs Outdated Show resolved Hide resolved
components/object_store/src/multipart.rs Outdated Show resolved Hide resolved
analytic_engine/src/storage_options.rs Outdated Show resolved Hide resolved
analytic_engine/src/storage_options.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/util.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
@jiacai2050
Copy link
Contributor

jiacai2050 commented Jun 2, 2023

@MachaelLee Could you write some design in PR description? Eg:

  1. How a object's metadata is saved?
  2. How data inside a object is saved? does it aligned?

components/table_kv/src/lib.rs Outdated Show resolved Hide resolved
components/table_kv/src/lib.rs Outdated Show resolved Hide resolved
components/table_kv/src/memory.rs Outdated Show resolved Hide resolved
components/table_kv/src/obkv.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
MichaelLeeHZ and others added 2 commits June 2, 2023 14:53
Co-authored-by: WEI Xikai <ShiKaiWi@users.noreply.github.com>
@MichaelLeeHZ
Copy link
Contributor Author

@MachaelLee Could you write some design in PR description? Eg:

  1. How a object's metadata is saved?
  2. How data inside a object is saved? does it aligned?

I will add some design in #912 later.

components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/table_kv/src/lib.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
MichaelLeeHZ and others added 4 commits June 2, 2023 17:11
Co-authored-by: WEI Xikai <ShiKaiWi@users.noreply.github.com>
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/mod.rs Outdated Show resolved Hide resolved
components/object_store/src/obkv/meta.rs Outdated Show resolved Hide resolved
Copy link
Member

@ShiKaiWi ShiKaiWi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@MichaelLeeHZ MichaelLeeHZ merged commit 96fc8ab into apache:main Jun 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants