milvus icon indicating copy to clipboard operation
milvus copied to clipboard

[Enhancement]: Move away from Minio Gateway

Open filip-halt opened this issue 2 years ago • 17 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

What would you like to be added?

Would it be possible to move away from MinioGateway in regards to azure? GCP and s3 both allow direct connections due to the s3 api, but azure currently doesnt support that. The issue is that minio gateway was deprecated and isnt a good solution anymore.

Why is this needed?

A direct connection to azure or a new 3rd party service like seaweedfs or s3proxy that isnt deprecated.

Anything else?

No response

filip-halt avatar Feb 17 '23 22:02 filip-halt

good suggestion! We definitely want to integrate azure storage directly. Mark as good first issue

xiaofan-luan avatar Feb 18 '23 00:02 xiaofan-luan

there is a project https://github.com/datafuselabs/opendal that has lots of object storage supports, add a golang and c++ language binding for it may be a good way.

jiaoew1991 avatar Feb 21 '23 06:02 jiaoew1991

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Rotten issues close after 30d of inactivity. Reopen the issue with /reopen.

stale[bot] avatar Mar 23 '23 23:03 stale[bot]

bump

filip-halt avatar Mar 23 '23 23:03 filip-halt

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Rotten issues close after 30d of inactivity. Reopen the issue with /reopen.

stale[bot] avatar Apr 23 '23 03:04 stale[bot]

Bump - Azure storage deeply appreciated

liamsteadman avatar Apr 24 '23 15:04 liamsteadman

we should do it for sure

xiaofan-luan avatar Apr 24 '23 19:04 xiaofan-luan

Anyone volunteered? in implement a c++ azure storage connector?

xiaofan-luan avatar Apr 24 '23 19:04 xiaofan-luan

I am quiet instrested in this issue, does this mean not using minio anymore and using another project like opendal to support storge?

GoldenSheep402 avatar Apr 29 '23 12:04 GoldenSheep402

I am quiet instrested in this issue, does this mean not using minio anymore and using another project like opendal to support storge?

Hi Goldnen Sheep, It actually mean to remove gateway and directly. connect to Azure storage, gcp and S3 with the S3 APIs.

However, any contributions on storage layer is welcomed , openDAL might be one of the choice. HDFS support is another what we always want to work with

xiaofan-luan avatar Apr 29 '23 18:04 xiaofan-luan

I am working on SeaweedFS. Would be nice to integrate better with Milvus. Let me know if need any help from me.

chrislusf avatar May 11 '23 19:05 chrislusf

I am working on SeaweedFS. Would be nice to integrate better with Milvus. Let me know if need any help from me.

Nice! any contribution is highly welcomed. I'm also a big fan of SeaweedFS!

xiaofan-luan avatar May 12 '23 03:05 xiaofan-luan

Do you think whether any query can be pushed down to the storage layer?

chrislusf avatar May 12 '23 03:05 chrislusf

Do you think whether any query can be pushed down to the storage layer?

We don't do too much on storage tier, the only request is to put get. If seaweedfs can support efficient append that would helps us a lot.

xiaofan-luan avatar May 12 '23 05:05 xiaofan-luan

SeaweedFS does support appending, but it would be efficient to append chunks, not line by line. Would that work?

chrislusf avatar May 12 '23 06:05 chrislusf

SeaweedFS does support appending, but it would be efficient to append chunks, not line by line. Would that work?

Should work under most cases, because usually the insertion is in batch~

xiaofan-luan avatar May 12 '23 06:05 xiaofan-luan

Good. But S3 API does not have append operation. This would need to append to SeaweedFS via http API.

chrislusf avatar May 12 '23 23:05 chrislusf

bump - would love to be able to use azure storage!

emilypyq avatar Jun 05 '23 21:06 emilypyq

bump - would love to be able to use azure storage!

Azure blob support is already on the road map

xiaofan-luan avatar Jun 06 '23 02:06 xiaofan-luan

bump - would love to be able to use azure storage!

Azure blob support is already on the road map

Any ETA on this? Thanks!

dsp05 avatar Jun 12 '23 04:06 dsp05

bump - would love to be able to use azure storage!

Azure blob support is already on the road map

Any ETA on this? Thanks!

I would expect this to be done before 7.30

xiaofan-luan avatar Jun 12 '23 05:06 xiaofan-luan

/assign @jaime0815 could you help on the support of Azure blob storage

xiaofan-luan avatar Jun 12 '23 05:06 xiaofan-luan

What Go storage connector should be implemented? i can take a try

shunjiezhao avatar Jun 21 '23 14:06 shunjiezhao

What Go storage connector should be implemented? i can take a try

The blob storage should be in cpp~~ @PowderLi could you work with shunjiezhao to figure it out?

xiaofan-luan avatar Jun 22 '23 01:06 xiaofan-luan

What Go storage connector should be implemented? i can take a try

Here is an example accessing Blobs with Go https://github.com/Azure-Samples/storage-blobs-go-quickstart

PowderLi avatar Jun 27 '23 12:06 PowderLi

What Go storage connector should be implemented? i can take a try

Here is an example accessing Blobs with Go https://github.com/Azure-Samples/storage-blobs-go-quickstart

Thanks, I will see 😄

shunjiezhao avatar Jun 27 '23 13:06 shunjiezhao

What Go storage connector should be implemented? i can take a try

Here is an example accessing Blobs with Go https://github.com/Azure-Samples/storage-blobs-go-quickstart

Hello, what types of authorized should we support?

shunjiezhao avatar Jul 03 '23 05:07 shunjiezhao

What Go storage connector should be implemented? i can take a try

Here is an example accessing Blobs with Go https://github.com/Azure-Samples/storage-blobs-go-quickstart

Hello, what types of authorized should we support?

The following 2 types

PowderLi avatar Jul 03 '23 07:07 PowderLi

What Go storage connector should be implemented? i can take a try

Here is an example accessing Blobs with Go https://github.com/Azure-Samples/storage-blobs-go-quickstart

Hello, what types of authorized should we support?

The following 2 types

Hi, i have some questions. 😄

  1. when useIAM, user should provide roleName and rolePassword in milvus.yaml?
  2. should azure configuration is separate from minio configuration in milvus.yaml?
  3. How do I add this image to the test environment https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=docker-hub#run-azurite

shunjiezhao avatar Jul 08 '23 09:07 shunjiezhao

Good morning~~, I have a suggestion. When I adding support for Azure Blob Storage, I found a lot of duplicate code and test code similar to minio_chunk_manager. Can I use minio_chunk_manager as a framework and extract some base methods into a new interface, replace minio.Client with this interface, interface look like

type ObjectStorage interface {
	CreateBucket() error
	Stat(ctx context.Context, name string) (fileInfo, error) 
	Read(ctx context.Context, name string) ([]byte, error)     
	Write(ctx context.Context, name string, data []byte) error
	Delete(ctx context.Context, name string) error
	ListWithPrefix(ctx context.Context, preFix string, recursive bool) ([]fileInfo, error)
	ReadAt(ctx context.Context, filePath string, off int64, length int64)([]byte,error)
}

type MinioChunkManager struct {
	ObjectStorage
	bucketName string
	rootPath   string
}

This way, I can use the minio_chunk_manager as framework and implement this interface using minio.Client and azblob.Client, And there is no need to rewrite azure's test code.

shunjiezhao avatar Jul 10 '23 03:07 shunjiezhao