Skip to content

[EPIC] Iceberg Cache #1226

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

Open
1 of 3 tasks
Xuanwo opened this issue Apr 17, 2025 · 0 comments
Open
1 of 3 tasks

[EPIC] Iceberg Cache #1226

Xuanwo opened this issue Apr 17, 2025 · 0 comments
Labels
epic Epic issue

Comments

@Xuanwo
Copy link
Member

Xuanwo commented Apr 17, 2025

What's the feature are you trying to implement?

Cache is an essential component of an Iceberg table, and different types of cache are needed at various levels.

For example, for our table metadata, we will need a Manifest cache so that we don't have to read and deserialize the same manifest files repeatedly. For our Parquet files, we will need a FileMetadata cache to avoid parsing the metadata from the Parquet files each time. We could even implement a raw data cache to store portions of data files, eliminating the need to download them from S3 again.

As the foundation for various query engines, iceberg-rust should be designed to simplify integration while still allowing each engine to fully optimize performance. This applies whether they are using iceberg-rust on a single machine or within a distributed cluster.

I plan to add a set of cache APIs to meet all those needs. My current plan is:

  • ObjectCache: an object cache trait that can hold objects like Manifest or FileMetadata
  • BytesCache: a bytes cache that can hold row content of files, like table_metadata.json files.
  • In FileIO Cache like opendal's CacheLayer, but the API is not decided yet.

Tasks

Willingness to contribute

I can contribute to this feature independently

@Xuanwo Xuanwo added the epic Epic issue label Apr 17, 2025
@liurenjie1024 liurenjie1024 changed the title Iceberg Cache [EPIC] Iceberg Cache Apr 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic Epic issue
Projects
None yet
Development

No branches or pull requests

1 participant