新しいブラウザから Evernote にアクセスし、ページを再読み込みしたらセッションがタイムアウト。ログインし直してキャッシュをクリアして…
こういった煩雑な作業は Evernote Web のユーザなら誰でも体験したことがあるでしょう。どの作業でもユーザのコンテンツがブラウザのストレージシステムに再ダウンロードされる初期ダウンシンクというプロセスが開始され、これが完了するとユーザが Evernote のノートにオフラインでもアクセスできるようになります。
サイズが大きい Evernote アカウントでは、全体の初期ダウンシンクに 10 分(1 分でも長く感じるのに!)かかる場合があります。
弊社では、スピードを考慮して、サーバからローカルへの同期プロセスを簡単にしました。その効果は素晴らしく、お客様にも喜んでいただけると思います。
同期時間を大幅に短縮した仕組み
SQLite と呼ばれるストレージシステムを使用するデスクトップ版 Evernote やモバイル版 Evernote とは異なり、Evernote Web は大量の一度にレコードを取得できない IndexedDB というシステムを使用しています。つまり、お客様のレコードをダウンロードし、処理して、個別に保管する必要があるのです。(お客様のレコードとはノートブック、リマインダー、ノートのメタデータ、環境設定、ウィジェット、およびその他の Evernote 構成要素を指します。)
お客様のアカウントのノートが多ければ多いほど、レコードの数も増えます。中には数千件のノートを抱えるお客様もいらっしゃるため、全体のプロセスに長い時間がかかりイライラするのもうなずけます。
この問題を解決するため、弊社では、Web のストレージシステムを IndexedDB から SQLite/WASM に更新しました。これは SQLite のウェブ対応製品で、サーバからローカルへの同期プロセスを大幅にスピードアップするだけでなく、Evernote Web とその他のクライアントにおける相乗効果を引き出してくれます。
では実際にどれくらい速いのでしょう。Evernote Web でテストした結果、ノートが数件しかないアカウントではスピードが 2 倍以上になりました。最も大きな効果が期待される大規模アカウントではどうでしょう。従来のシステムを使用した初期ダウンシンクに 285 秒(約 5 分)かかっていた 17,265 件のノートを抱えるアカウントが、新しいシステムではたったの 17 秒に短縮されました…ほぼ 17 倍の速さです! 🚀
Evernote Web を使用する際の注意点
新しいダウンシンク機能を利用できるのは現在、主要ブラウザ(Chrome、Safari、Firefox)の最新バージョンのみです。従来のバージョンでは新しいストレージシステムに対応していないため、デフォルトで従来のダウンシンクプロセスが実行されます。
Evernote Web はシークレットモードなどのプライベートブラウザでは動作しない場合があります。シークレットモードでは一度にダウンロードできるデータ量が制限されるため、規模の大きなアカウントでは初期ダウンシンクが実行されない可能性があります。この場合は、Evernote を通常のブラウザウインドウで開く必要があります。他のプライベートブラウズモードでは、デフォルトで従来の遅いダウンシンクプロセスが実行されます。こういった制限は今後変更されるか撤廃される可能性がありますが、約束できるものではありません(Evernote というよりもブラウザの性能に帰結する問題です)。
Evernote のスピードと信頼性をさらに高く
サーバからローカルへの同期があっという間に終わるのもさることながら、すべてのクライアント(Web、デスクトップ、モバイル)のストレージシステムを 1 種類に統合できたことは大きな節目となるでしょう。クライアントストレージシステムを集約することで、今後のパフォーマンス改善に立ちはだかる大きなボトルネックの解消につながっただけでなく、Evernote のスピードと安定性、ひいては信頼性をこれまで以上に高めるための大きな一歩を踏み出せたのです。