アサシン ⚡️ - 遅い Web ページを破壊します
Assassin は、UI をブロックするデータベース トランザクションを強制終了します。
データベースの操作は遅くなる可能性がありますが、既存のデータベースには、難しいタスクを Web ワーカーにアウトソーシングするという明白な方法でこの問題を解決するものはありません。
私は次のようなデータベースを作りたかったです:
- オープンソース
- レスポンシブ
- 分散型
- Web ワーカー向けに最適化
- プライベートブラウジング用に設計されています
そこで、JavaScript を使用して独自のデータベースを作成しました。
特徴 ?
? 軽量 : クライアント側のコードは 100 行未満で出荷されます。
⚖️ 分散型 : データベースには単一障害点がありません。サーバーがダウンした場合でも、データは簡単に取得できます。
? プライベート ブラウジングで動作します : クライアント側のストレージとして IndexedDB に依存する、LevelDB、PouchDB、Gun などのデータベースを調査しました。これらのデータベースを有効にしたいと考えていましたが、プライベート ブラウジングでは IndexedDB が無効になっているため、最終的にこのデータベースを作成することになりました。つまり、これらのデータベースはいずれも機能しません。
メソッド:
-
Killer.connect(url) - サーバーに接続します。
-
Killer.create(key,value) - データベースにエントリを追加します。
-
Killer.update(key,new value) - データベース内のキーの値を更新します。
-
Killer.delete(key) - データベース内のエントリを削除します。
-
データベースの読み取り - Web ワーカーまたはメイン スレッド内で、database という変数を介してデータベースにアクセスできます。
建築:
-
データ モデル : Assassin は、キーを対応する値にマッピングすることをサポートするキー/値ストアです。
-
システム アーキテクチャ : DAT プロトコルは、多くのコンピューター間でデータを分散およびホストするため、データが保存される 1 つの場所はありません。 Assassin はデータの永続化のために DAT プロトコルに依存しています。キーと値のペアのメタデータは、分散トライ構造に保存されます。
-
分離レベル : 分離レベルはデータベースのエンド ユーザーによって決定されます。 Assassin は低い分離レベルを持つように設計されています。
-
ストレージ モデル : Assassin はデータをサーバーに送信し、サーバーは DAT プロトコルに基づいて構築された分散ファイル システム Hyperdrive にメタデータを保存します。データ自体は複数のピア間で分散およびホストされます。
-
高可用性 : Assassin は可用性が高く、最終的には一貫性があります。 Assassin は、競合が発生した場合、常にデータベースに加えられた最後の編集を保存します。この CRDT は後で変更される可能性があります。
なぜアサシンと呼ばれるのですか?
- 私の個人的な Web サイトは現在、銃データベースを使用しています。
- Gun には私が気に入った機能がたくさんあり、創設者はとても親切です。
- 銃が機能しなくなりました。
- Gun のストレージ アダプタ RAD は IndexedDB に依存していますが、プライベート ブラウジングでは無効になっています。
- Gun は WebRTC を介してデータをピアツーピアで同期しますが、Web ワーカーでは機能しません。
- Assassin は、Web ワーカー向けであること以外は (真剣に、ほとんど) Gun に似ています。
-
ガンワーカー = 暗殺者 ?
で構築?
-
Hyperdrive - DAT プロトコルの上に抽象化レイヤーを構築してくれてありがとう!
- HTML - Web デモの作成用
- CSS - Web デモのスタイル設定用
- JavaScript - ロジック用
-
Node.js - ロジックを提供するため
必ず次の点について意見を共有してください。
- Assassin GitHub リポジトリ
- Gitter サーバー
そして、本当に Assassin の改善に貢献したい場合は、GitHub リポジトリに貢献してください!
Assassin はオープンソースであり、これからもオープンソースです。
サポートしてください:
GitHub でリポジトリにスターを付け、ツイートし、友人、チーム、連絡先と共有してください!
以上がAssassin ⚡️ - 遅い Web ページを強制終了するためのオープンソースの無料データベースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。