foxcpp / foxcpp/maddy

Implement wildduck's storage architecture for efficiency and scalability

オープン
#291 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る
new feature
主要言語
Go
スター
6.1k
フォーク
327
PR マージ指標
30日以内にマージされた PR はありません

説明

# Use case

What problem you are trying to solve?
Maildir is less space efficient and less scalable than a clustered database as a mail store.

Note alternatives you considered and why they are not useful.
I've tried using Maildir over an S3 backend, but performance can be an issue.

# Your idea for a solution
Compress messages, deduplicate attachments and store in a clustered database like MongoDB.

How your solution would work in general?
[Wildduck](https://docs.wildduck.email) stores messages and attachments in MongoDB. It compresses data and deduplicates attachments, greatly reducing storage requirements and allowing us to easily scale our deployments. I currently use it in production and works great.

- [X] I'm willing to help with the implementation

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

ファイル、テスト、エントリーポイントは指定されていません。まず現在の Maildir ストレージ実装を見つけ、リンク先の Wildduck アーキテクチャを読み、その後、移行とストレージの境界を判断してください。メッセージと添付ファイルが、提案された MongoDB ベースの圧縮および重複排除アプローチを使用し、合意済みのスケーラビリティ計画がある状態を完了とします。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
go, mongodb
領域
backend, databases
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。