クラウドプラットフォームは、データのハンドリング(handling)、処理(processing)、および保管(storing)のためのデータプラットフォームを含み得る。例えば、クラウドプラットフォームは、データオブジェクトストア、データベース、およびアプリケーション・プログラミング・インターフェイス(API)を有するデータセンタを含み得る。データオブジェクトストアは、非リレーショナルデータベーススキーマを使用して、データオブジェクトとして情報を保管することができる。ユーザは、データをアクセスまたは変更するためのゲートウェイとして1つまたはそれ以上のAPIを使用して、これらのデータオブジェクトストアとインタラクションすることができる。ある場合には、これらのAPIは、データセンタ内に保管されたデータへのアクセスを制限するために、認可手続き(例えば、認証トークン)を利用する。例えば、マルチテナントデータベースシステムにおいて、APIは、テナントと関連付けされたユーザがそのテナントのデータについて変更またはアクセスすることを可能にすることができるが、そのユーザは他のテナントのデータについて変更またはアクセスすることはできない。いくつかの例において、変更またはアクセスは、データ保持ポリシまたはプロシージャと関連付けされ得る。
例えば、データストアは、設定可能(configurable)なデータ保持ポリシをサポートすることができる。これらのデータ保持ポリシは、ユーザ固有、テナント固有、アプリケーション固有、またはそれらの組合せであり得る。設定可能なデータ保持ポリシは、いつ又はどのようにデータストアからデータが削除され、またはアクセスされるかを指定することができる。ユーザは、データオブジェクトまたはデータオブジェクトレコードのエクスポートまたは削除に対応して、データストアに対して、データ保持要求を(データ保持APIを介して)送信することができる。代替的に、データストアは、実行するデータ保持要求を(例えば、トリガに基づいて)取得(retrieve)または生成することができる。データ保持要求は、さらなる使用または統合の目的のために、リレーショナルデータベーステーブルに保管され得る。データストアは、これらのデータ保持要求に基づいて保持規則を決定し、そして、保存されたデータセットに対して実行されるべきアクティブなアクションを決定するように、保持規則を評価することができる。
データストアは、より効率的な処理のために、これらのアクティブなアクションをワークアイテム(work item)へと集約することができ、そして、これらの統合されたワークアイテムをメモリ(例えば、ワークアイテムテーブル内)に保管することができる。1つまたはそれ以上のワークプロセッサ(work processor)は、ワークプロセッサのスケジューリングに従って、メモリからワークアイテムを取得し、そして、保管されたデータセット上のアクションを実行するために、ワークアイテムを実施することができる。例えば、ワークプロセッサは、データオブジェクトまたはデータオブジェクトストアからデータオブジェクトまたはデータオブジェクトレコードを削除し、または、データオブジェクトまたはデータオブジェクトストア内のデータオブジェクトレコードにアクセスするためのパス(path)またはリンクを特定し、かつ、エクスポートすることができる。データストアは、テナントのプロビジョン解除(deprovisioning)、ユーザ固有のレコード削除、生存時間(time-to-live、TTL)ポリシ、レコードエクスポート要求、処理要求の制限、または、設定可能なデータ保持ポリシと関連付けされた任意の他の機能をサポートするために、このデータ保持プロシージャを実装することができる。アクティブなアクションを集約することによって、システムは、ワークプロセッサについて処理オーバーヘッドおよびレイテンシを低減することができる。ワークプロセッサは、データセットを一回だけ(single time)識別し、そして、識別されたデータセット上で全ての関連するデータ保持プロセスを実行することができるからである。
本開示の態様は、オンデマンド(on-demand)・データベース・サービスをサポートする環境のコンテクストにおいて最初に説明される。本開示の追加の態様は、システム、データストア・アーキテクチャ、およびプロセスフローに関して説明される。本開示の態様は、さらに、データオブジェクトストアのためのデータ保持ハンドリングに関連する、装置図、システム図、およびフローチャートによって示され、かつ、説明される。
図1は、本開示の様々な態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートする、クラウドコンピューティングのためのシステム100の一つの例を示している。システム100は、クラウドクライアント105、コンタクト110、クラウドプラットフォーム115、およびデータセンタ120を含んでいる。クラウドプラットフォーム115は、パブリックまたはプライベートクラウドネットワークの一つの例であり得る。クラウドクライアント105は、ネットワーク接続135を介してクラウドプラットフォーム115にアクセスすることができる。ネットワークは、インターネットといった、トランスファー・コントロール・プロトコルおよびインターネット・プロトコル(TCP/IP)を実装してよく、または、他のネットワークプロトコルを実装し得る。クラウドクライアント105は、サーバ(例えば、クラウドクライアント105-a)、スマートフォン(例えば、クラウドクライアント105-b)、またはラップトップ(例えば、クラウドクライアント105-c)といった、ユーザ装置の一つの例であり得る。他の例において、クラウドクライアント105は、デスクトップコンピュータ、タブレット、センサ、または、通信を生成、分析、送信、または受信することができる他のコンピューティングデバイスまたはシステムであり得る。いくつかの例において、クラウドクライアント105は、ビジネス、エンタープライズ、非営利、スタートアップ、または、任意の他の組織タイプの一部であるユーザによって操作され得る。
クラウドクライアント105は、複数のコンタクト110とインタラクションすることができる。インタラクション130は、クラウドクライアント105とコンタクト110との間の通信、機会、購入、販売、または、あらゆる他のインタラクションを含み得る。データは、インタラクション130に関連付けられ得る。クラウドクライアント105は、インタラクション130と関連付けされたデータを保管、管理、および処理するためにクラウドプラットフォーム115にアクセスすることができる。ある場合には、クラウドクライアント105は、関連するセキュリティレベルまたは許可レベルを有し得る。クラウドクライアント105は、関連するセキュリティ、または許可レベルに基づいて、クラウドプラットフォーム115の中で所定のアプリケーション、データ、およびデータベース情報に対してアクセスすることができ、そして、他のものに対してはアクセスできない。
コンタクト110は、自分自身で(in person)、もしくは、電話、電子メール、ウェブ、テキストメッセージ、メール、または、あらゆる他の適切な形式のインタラクション(例えば、インタラクション130-a、130-b、130-c、および130-d)を介して、クラウドクライアント105とインタラクションすることができる。インタラクション130は、ビジネス・ツー・ビジネス(B2B)インタラクション、またはビジネス・ツー・コンシューマ(B2C)インタラクションであってよい。コンタクト110は、また、顧客(customer)、潜在的顧客、リード、クライアント、または、いくつかの他の適切な用語としても、参照され得る。ある場合には、コンタクト110は、サーバ(例えば、コンタクト110-a)、ラップトップ(例えば、コンタクト110-b)、スマートフォン(例えば、コンタクト110-c)、またはセンサ(例えば、コンタクト110-d)といった、ユーザ装置の一つの例であり得る。他の場合には、コンタクト110が別のコンピューティングシステムであり得る。ある場合には、コンタクト110は、ユーザまたはユーザのグループによって操作され得る。ユーザまたはユーザのグループは、ビジネス、製造業者、または、あらゆる他の適切な組織と関連付けされ得る。
クラウドプラットフォーム115は、クラウドクライアント105に対してオンデマンドデータベースサービスを提供することができる。ある場合には、クラウドプラットフォーム115は、マルチテナントデータベースシステムの一つの例であってよい。この場合に、クラウドプラットフォーム115は、ソフトウェアの単一インスタンスを有する複数のクラウドクライアント105にサービス提供することができる。しかしながら、−これに限定されるわけではないが−クライアント−サーバ(client-server)システム、モバイル・デバイス・システム、およびモバイル・ネットワーク・システムを含む、他のタイプのシステムが実装されてよい。ある場合には、クラウドプラットフォーム115は、CRMソリューションをサポートすることができる。このことは、セールス、サービス、マーケティング、コミュニティ、分析、アプリケーション、モノのインターネットのためのサポートを含み得る。クラウドプラットフォーム115は、ネットワーク接続135を介してクラウドクライアント105からのコンタクトインタラクション130と関連付けされたデータを受信することができ、そして、データを保管し、かつ、分析することができる。ある場合には、クラウドプラットフォーム115は、コンタクト110とクラウドクライアント105との間のインタラクション130から直接的にデータを受信することができる。ある場合には、クラウドクライアント105は、クラウドプラットフォーム115上で動作するアプリケーションを開発することができる。クラウドプラットフォーム115は、リモートサーバを使用して実装され得る。ある場合には、リモートサーバは、1つまたはそれ以上のデータセンタ120に配置されてよい。
データセンタ120は、複数のサーバを含み得る。複数のサーバは、データの保管、管理、および処理のために使用され得る。データセンタ120は、接続140を介してクラウドプラットフォーム115から、もしくは、クラウドクライアント105、またはコンタクト110とクラウドクライアント105との間のインタラクション130から直接的にデータを受信することができる。データセンタ120は、セキュリティ目的のために複数の冗長性を利用することができる。ある場合には、データセンタ120に保管されたデータは、異なるデータセンタ(図示なし)でのデータのコピーによってバックアップされ得る。
サブシステム125は、クラウドクライアント105、クラウドプラットフォーム115、およびデータセンタ120を含み得る。ある場合には、データ処理は、サブシステム125の任意のコンポーネントで、または、これらのコンポーネントの組合せで発生し得る。ある場合には、サーバがデータ処理を実行し得る。サーバは、クラウドクライアント105であってよく、または、データセンタ120に配置されてよい。
システム100は、テナント、ユーザ、または、その両方のためのデータ保持ハンドリングをサポートし得る。例えば、システム100は、1つまたはそれ以上のデータ保持規則またはデータ保持ポリシに従って、データ保持機能性(例えば、データの削除、データのエクスポート、等を含む)を提供し得る。この機能性は、テナントのプロビジョン解除(deprovisioning)(例えば、マルチテナントデータベースシステム内)、レコードの削除、TTLプロセス、データエクスポート、データの処理からの制限(data restriction from processing)、もしくは、これらの機能または他の機能の組合せを含み得る。例えば、テナントのプロビジョン解除は、データセンタ120内に保管されたテナントについての全てのデータセットを(例えば、指定された猶予期間(grace period)の後で)削除することを含み得る。レコード削除は、レコード識別子のリストと関連付けされた、または特定のユーザと関連付けされた、全てのデータオブジェクトまたはデータオブジェクトレコードの削除を含み得る。TTLプロセスは、指定された時間量の後で、所定のタイプのデータ(例えば、カンマで区切られた値(CSV)フォーマットされたテナントデータ、スナップショット、スコアリングデータセット、等)を削除することを含み、そして、時間量を定める設定可能なTTL値を含み得る。データエクスポートは、データを示す識別子に基づいて、オリジナルのフォーマットでデータをエクスポートすることを含み得る。データの処理の制限は、データを示す識別子に基づいてデータをエクスポートすること、および、削除することを含み得る。ある場合には、これらの機能性を提供することにより、データセンタ120は、所定のデータ保持規則またはポリシをサポートすることができる。
データセンタ120は、異なるフォーマットで保管されたデータを含むことができる。例えば、データセンタ120は、(例えば、データレイク・インフラストラクチャに従って)ファイルベースのシステムに保管されたデータを含んでよく、そして、ある場合には、また、リレーショナルデータベースシステムに保管されたデータを含んでもよい。データセット、データオブジェクト、データオブジェクトレコード、または、ファイルベースのシステムに保管されたこれらの組合せについてデータ保持をサポートするために、データセンタ120は、データ保持規則、規則エバリュエータ、およびワークアイテムを実装することができる。例えば、データセンタ120は、ユーザまたはテナントからのデータ保持要求を(例えば、クラウドクライアント105またはコンタクト110を介して)受信することができ、そして、これらの要求に基づいてデータ保持規則を決定することができる。定期的または非定期的に、規則エバリュエータは、データ保持規則を評価し、そして、実行されるべき規則を効率的にグループ化するために(例えば、共有データセットに従って)集約または統合を実行することができる。エバリュエータは、実行されるべきこれらの統一された規則に基づいてワークアイテムを生成することができ、ここで、ワークアイテムはワークプロセッサによる消費(consumption)のためにフォーマットされる。これらのワークプロセッサは、ファイルベースのシステムに保管されたデータセット、データオブジェクト、またはデータオブジェクトレコードについてデータ保持機能性を実行するために、ワークアイテムを消費することができる。
従来のシステムにおいて、データ保持は、リレーショナルデータベースのためにサポートされ得る。しかしながら、リレーショナルデータベースシステムにおいてフィールドを識別すること及び削除することは、ファイルベースのデータオブジェクトストアにおいてデータオブジェクトレコードを識別すること及び削除することよりも、計算コストがはるかに安価であり得る。加えて、従来のシステムは、データベースに保管された全てのデータにわたりデータ保持ポリシをサポートするために、グローバルなデータ保持機能性を提供することができる。
システム100は、異なるテナント、異なるユーザ、異なるアプリケーション、またはそれらの幾つかの組合せのために修正されたデータ保持ポリシを含むことができるフレキシブルで、拡張可能なデータ保持システムをサポートし得る。例えば、ユーザは、使用するデータセンタ120について、設定可能なユーザ固有のデータ保持ポリシを指定することができる。このフレキシビリティにより、データセンタ120は、ユーザ固有またはアプリケーション固有のニーズまたはオペレーションに基づいて、より効率的にデータを保持することができる。加えて、設定可能なデータ保持規則、エバリュエータ、およびワークアイテムを実装することによって、システム100は、将来のデータ保持ポリシまたは規則の変更を処理することができる。
データセンタ120は、また、ワークアイテムの統合を利用して、ファイルベースのシステムからデータレコードを削除すること又はエクスポートすることの効率を改善し、そして、レイテンシを短縮することができる。例えば、データセット毎にアクションを集約することにより、ワークプロセッサは、データセンタ120に保管されたデータを効率的に修正することができる。データオブジェクトストア内のデータセットにアクセスすることは、固有の処理オーバーヘッドおよびレイテンシと関連付けされ得る。修正のためにワークプロセッサがデータセットにアクセスする回数を最小限にすることによって、システム100は、データ保持プロセスの効率を改善する。追加的または代替的に、保持規則の猶予期間を利用することにより、データセンタ120は、信頼性が低下することなく、データ保持プロセスの最中、活き続ける(remain live)ことができる。例えば、猶予期間は、反復したワークアイテムの生成を結果として生じ、保持規則と関連付けされる新たに追加されたデータオブジェクトまたはデータセットを識別し、そして、データセンタ120内に保管された全てのデータセットにわたりデータセットの修正を確実に適用している。
本開示の1つまたはそれ以上の態様は、上述のもの以外の他の問題を追加的または代替的に解決するためにシステム100において実施され得ることが、当業者によって正しく理解されるべきである。さらに、本開示の態様は、ここにおいて説明される「従来の(“conventional”)」システムまたはプロセスに対して技術的改善を提供することができる。しかしながら、明細書および添付の図面は、本開示の実施態様から生じる例示的な技術的改善を含むだけであり、そして、従って、特許請求の範囲内で提供される技術的改善の全てを表してはいない。
図2は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートするシステム200の一つの例を示している。システム200は、図1に関して説明されたデータセンタ120のコンポーネントである、データストア(data store)205を含み得る。データストア205は、データオブジェクトストア上に構築され、または、データオブジェクトストアおよび関連するリレーショナルデータストアの組合せ上に構築された、データレイク・インフラストラクチャを含み得る。データオブジェクトストアは、リレーショナルデータベースシステムとは対照的に、ファイルベースのストレージシステムの一つの例(例えば、ここでは、非リレーショナルデータベーススキーマにおけるデータオブジェクトとしてデータが保管される)であり得る。システム200は、また、図1に関して説明したように、クラウドクライアント105またはコンタクト110の一つの例であり得る、ユーザ装置210を含んでもよい。ユーザ装置210は、データストア205に保管されたデータと関連付けされたユーザによって操作され得る。例えば、マルチテナント環境において、ユーザは、データストア205のテナントと関連付けされ得る。加えて、システム200は、ワークプロセッサ215を含んでよく、これは、ある場合には、また、図1に関して説明したデータセンタ120のコンポーネントであってもよい。ワークプロセッサ215は、サーバまたはサーバクラスタ(例えば、データベースサーバ、アプリケーションサーバ、等)上で動作し得る。
データストア205は、1つまたはそれ以上のデータ保持ポリシをサポートすることができる。これらのデータ保持ポリシは、(例えば、業界標準またはデータ保持規則に関する)データストア205の全てのテナントにわたるグローバルなポリシであってよく、または、(例えば、テナントによって構成される)テナント、ユーザ、またはアプリケーション固有のポリシであってよい。ユーザによって設定可能なテナント、ユーザ、またはアプリケーション固有のデータ保持ポリシをサポートすることによって、データストア205は、フレキシブルで、拡張可能なデータ保持システムを実装することができる。ある場合には、テナント、ユーザ、またはアプリケーション固有のデータ保持ポリシは、業界標準またはデータ保持規則に従ってよいが、所定のアプリケーション固有の要件または実装を満たすようにグローバルなポリシを僅かに変更することができる。例えば、テナントのプロビジョン解除またはユーザについて情報を削除する場合に、データオブジェクトの中に含まれるデータオブジェクトやレコードを削除するのではなく、設定可能なデータ保持ポリシは、指定された時間の経過後にデータオブジェクトまたはデータオブジェクトレコードを削除するために、代わりにTTL値を使用することができる。
データストア205は、データストア205に保管された1つまたはそれ以上のデータセットについて実行すべきデータ保持動作を示すデータ保持要求220を受信することができる。ある場合には、データストア205は、ユーザ装置210でのユーザ入力に基づいて、これらのデータ保持要求220を受信することができる。他の場合に、データストア205は、テナントシステムから定期的または非定期的に(例えば、1つまたはそれ以上のバッチにおいて)データ保持要求を取得(retrieve)することができる。これらのデータ保持要求は、多数のパラメータを含んでよく、ここで、各パラメータは、デフォルト値、もしくは、テナントまたはユーザ(例えば、テナントと関連付けされたユーザ)によって指定された値を含み得る。データストア205は、これらの受信されたデータ保持要求に基づいて、メモリ内に保管されたデータセットについて実行する動作を決定することができる。
例えば、データストア205は、任意のアクティブなデータ保持要求を決定するためにデータ保持要求を評価することができる。アクティブなデータ保持要求は、実行されることになっているアクションを伴う保持要求の一つの例であってよい。例えば、データセットについて有効期限を指定しているデータ保持要求に対して、データストア205は、データ保持要求が、この指定された有効期限日以降にアクティブであると決定することができる。アクティブなデータ保持要求に基づいて、データストア205は、対応する実行すべきアクティブなアクション(active actions)を決定することができる。
データ保持システムの効率を改善するために、データストア205は、これらのアクティブなアクションに対して統合プロセスを実行することができる。例えば、データストア205は、アクティブなアクションを1つまたはそれ以上の集約アクション(aggregate actions)へと集約することができる。集約アクションは、同じデータセットで実行するための複数のアクションを含み得る。ある場合には、これらの複数のアクションは、同じタイプのアクションであってよい(例えば、データオブジェクト、またはデータオブジェクト内に含まれるレコードを削除すること)。他の場合に、これらの複数のアクションには、異なるタイプのアクションを含み得る(例えば、データを削除すること、およびデータをエクスポートすること)。いくつかの例において、集約アクションのセットは、単一アクションを含み得る(例えば、示されたデータセットに基づいて他のアクションと集約できなかったアクション)。データストア205は、集約アクションに基づいて、ワークアイテムとして参照され得る、統合ワークオブジェクトを生成することができる。例えば、各統合ワークオブジェクトは、(例えば、集約アクションのアクションタイプに対応する)ワークアイテムタイプ、および、アクションを実行するデータセットの表示を含み得る。いくつかの実装形態において、データストア205は、各集約アクションに対して1つの統合ワークオブジェクトを生成することができる。
データストア205は、ワークプロセッサ215から検索要求(retrieval request)225を受信することができる。このワークプロセッサ検索要求は、ワークプロセッサ215のスケジューリングに従って(例えば、事前に定義された周期性、最新の処理プロシージャからの遅延、等に基づいて)送信され得る。ある場合には、ワークプロセッサ215は特定のタイプのワークアイテムと関連付けされ得る。これらの場合に、検索要求225は、データストア205内に保管されたそのワークアイテムタイプの、任意の生成された統合ワークオブジェクトをフェッチ(fetch)することができる。追加のワークプロセッサ215は、他のワークアイテムタイプを(例えば、同一または異なるスケジューリングに従って)フェッチすることができる。他の場合に、ワークプロセッサ215は、種々のワークアイテムタイプをフェッチすることができる。検索要求225に応答して、データストア205は、フェッチされた統合ワークオブジェクト230を、処理のためにワークプロセッサ215へ送信することができる。
ワークプロセッサ215は、これらの統合ワークオブジェクトを処理することができる。例えば、ワークプロセッサ215は、ワークオブジェクトに基づいて、データオブジェクトストア内に保管されたデータオブジェクトまたはデータオブジェクトレコードを、修正することができる。これらの変更は、メモリからデータオブジェクトまたはデータオブジェクトレコードを削除すること、特定のデータフォーマットにおけるデータオブジェクトまたはデータオブジェクトレコードにアクセスするための(例えば、ユーザ装置210への)リンクまたはパスをエクスポートすること、または、これらの変更のいくつかの組合せを含み得る。ある場合には、ワークプロセッサ215は、追加的または代替的に、メタデータデータベースに保管され、かつ、データオブジェクトストア内のデータセットと関連付けされたメタデータを修正することができる。
アクティブなアクションを集約すること、そして、結果として生じる統合ワークオブジェクトを処理のために送信することによって、データストア205は、ワークプロセッサ215のためのリソースを効率的に利用し、そして、レイテンシを削減することができる。例えば、共有データセットに従って集約することによって、ワークプロセッサ215は、データオブジェクトストアの中のデータセットを一旦識別し、そして、単一のワークプロセッサ215プロシージャの最中に、そのデータセットに対する修正の全てを実行することができる。大きなファイルベースのシステムの中でデータセットの位置を特定することは、計算コストが高いので、統合ワークオブジェクト230を用いてシステム200を実装することは、処理のオーバーヘッドおよびレイテンシを著しく削減することができる。
図3は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートするシステム300の一つの例を示している。システム300は、リレーショナルデータベース315、データオブジェクトストア350、およびワークプロセッサ345を含み得る。ある場合には、図1に関して説明したように、リレーショナルデータベース315、データオブジェクトストア350、およびワークプロセッサ345は、データベースシステムまたはデータセンタ120のコンポーネントであってよい。このデータベースシステムは、データ保持API 310、ワークプロセッサAPI 340、データストアAPI 355、または、これらの組合せといった、複数のAPIを追加的に含み得る。これらのAPIは、データベースシステムに係るリレーショナルデータベース315、データオブジェクトストア350、またはワークプロセッサ345に対する要求を処理することができる。ある場合には、リレーショナルデータベース315は、リレーショナルデータベーススキーマに情報を保管することができ、一方で、データオブジェクトストア350は、非リレーショナルデータベーススキーマにデータオブジェクトを保管することができる。例えば、データオブジェクトストア350は、効率的な機械学習(machine learning)のために利用されるフォーマットでデータオブジェクトを保管することができ、一方で、リレーショナルデータベース315は、データオブジェクトストア350内に保管されたオブジェクトのメタデータおよび関連するデータ保持要求を保管することができる。
データベースシステムは、ユーザまたはテナントシステムから、360において、データ保持要求として参照され得る、保持要求を受信することができる。例えば、データベースシステムのテナントと関連付けされたユーザは、デバイス305-aまたはデバイス305-bといった、デバイス305を使用して、1つまたはそれ以上の保持要求を送信することができる。これらの保持要求は、ユーザ装置へのユーザ入力に基づいて、または、自動プロセスに基づいて(例えば、事前に決定された周期性で送信され、または、非周期的にトリガされ)、送信され得る。他の例において、これらの保持要求は、データ保持API 310によって取得され得る。1つまたはそれ以上のデータ保持API 310は、データベースシステムに対する保持要求を処理することができる。例えば、データ保持API 310は、保持要求のパラメータを識別し、そして、これらのパラメータに基づいて規則(rule)を決定することができる。保持要求パラメータは、名前空間(namespace)、テナント識別子(例えば、保持要求を送信するユーザと関連付けされているもの)、データセット、データオブジェクト、またはデータオブジェクトレコード上で実行するアクション、アプリケーション名(例えば、アプリケーション固有の保持要求について)、エンティティ(例えば、テナントの中のエンティティ固有の保持要求について)、もしくは、これら又は他のパラメータの組合せを含み得る。データ保持API 310は、受信した保持要求の識別されたパラメータに基づいて1つまたはそれ以上の保持規則を構築することができ、そして、これらの規則を、362において、リレーショナルデータベース315へ送信することができる。リレーショナルデータベース315は、保持規則320をメモリ内(例えば、保持規則テーブル)に保管することができる。
保持規則320は、保持関連ワークのためのデータセットを評価するために、リレーショナルデータベース315によって使用され得る。例えば、保持規則320により、データベースシステムは、データ保持ポリシに対応する機能を実行することができる。各保持規則は、データオブジェクトストア350内に保管されたフィルタデータセットに対して適用可能な情報、および、これらのフィルタリングされたデータセット上で実行するアクションを示す情報を含み得る。エバリュエータ335は、ワークアイテム325を作成するためにこの情報を使用することができる。例えば、エバリュエータ335は、保持規則320を周期的に(例えば、事前に決定された、または、設定可能な周期性に従って、364において)評価し、そして、任意のアクティブな規則を識別することができる。代替的に、エバリュエータ335は、いくつかのトリガ(例えば、ユーザ入力)に基づいて保持規則320を評価することができる。エバリュエータ335は、アクティブな保持規則に基づいて、ワークオブジェクトとして参照され得る、ワークアイテム325のリストを生成することができる。366において、リレーショナルデータベース315は、ワークアイテム325をメモリ(例えば、ワークアイテムテーブル)に保管することができる。追加的または代替的に、エバリュエータ335は、368において、(例えば、メタデータテーブル内の)メタデータ330を更新することができる。例えば、エバリュエータ335は、処理のためのワークアイテムを作成する代わりに、メタデータ330において示されるデータセットの有効期限を更新することができる。
ある場合には、エバリュエータ335は、システムの効率を改善するために、ワークアイテム325を統合することができる。例えば、アクティブ保持規則が同じデータセットに対する複数のアクションを示す場合に、エバリュエータ335は、これらのアクションを集約し、そして、集約アクションおよびデータセットに対応する統合ワークアイテムを生成することができる。代替的に、アクティブ保持規則が複数のデータセットに対して同じアクションを示す場合に、エバリュエータ335は、これらのデータセットを集約し、そして、アクションおよび集約データセットに対応する統合ワークアイテムを生成することができる。ある場合には、エバリュエータ335は、リレーショナルデータベース315のメモリ内に以前に保管されたワークアイテム325を修正しなくてよく、そして、代わりに、保持規則320の各評価の最中に新たに生成されたワークアイテムを統合することができる。他の場合には、保持規則320の各評価のために、エバリュエータ335は、新たに生成されたワークアイテムを、メモリ内に保管されている任意の未処理(unprocessed)のワークアイテム325と統合することができる。
エバリュエータ335は、識別されたアクティブな保持規則のためのワークアイテムを生成し、そして、非アクティブな保持規則のためのワークアイテムは生成しないので、メモリに保管されたワークアイテム325は、全てが処理される用意ができている。これに対応して、実行される予定のない任意のワークは、メモリ内のワークアイテム325に追加されない。このようにして、ワークプロセッサ345は、リレーショナルデータベース315のメモリに保管されたワークアイテム325を効率的に消費し、そして、示されたデータセットについてアクションをとる(例えば、適用できる場合に、メタデータ330またはデータセットを更新する)ことができる。
例えば、ワークプロセッサ345は、リレーショナルデータベース315からワークアイテム325を取得するように、スケジュールされた間隔で動作することができる。ある場合には、単一のワークプロセッサ345は、メモリ内に保管された異なるタイプのワークアイテム325を処理することができる。他の場合に、各ワークプロセッサ345は、ワークアイテムタイプに対して特有のものであってよい。これらの場合に、異なるワークプロセッサ345は、ワークアイテムタイプに従ってワークアイテム325を取得し、そして、これらの異なるタイプのワークアイテムを別々に処理することができる。いくつかの例において、ワークアイテムタイプ特有のワークプロセッサ345は、異なるスケジュールに従ってワークアイテム325を取得することができる。例えば、ワークプロセッサ345は、オフセットされた時間で実行され、または、異なる長さの周期的な間隔で実行されてよい。
ワークプロセッサ345が動作すると、ワークプロセッサ345は、370において、ワークプロセッサ検索要求(retrieval request)をリレーショナルデータベース315へ(例えば、ワークプロセッサAPI 340を使用して)送信することによって、未処理のワークアイテム325についてクエリ(query)することができる。ある場合には、異なるワークプロセッサ345に対する検索要求を処理するために、異なるワークプロセッサAPI 340が実装され得る。372において、ワークプロセッサAPI 340は、リレーショナルデータベース315のメモリから未処理のワークアイテム325を(例えば、ワークアイテムのタイプに従って)読出すことができる。ワークプロセッサAPI 340は、未処理のワークアイテムをワークプロセッサ345に対して戻す(return)ことができ、そして、ワークプロセッサ345は、ワークアイテムによって示されるデータセットについてアクションまたは集約アクションを実行することができる。ある場合には、ワークアイテムを処理することは、ワークプロセッサ345が、374において、データオブジェクトストア350内のデータオブジェクトを修正することを含み得る。この修正は、データオブジェクトストア350から、データオブジェクトの中に含まれるデータオブジェクトまたはレコードを削除すること、または、データオブジェクトストア350内のデータオブジェクトの中に含まれるデータオブジェクトまたはレコードへのリンクまたはパスを決定すること、および、これらのリンクまたはパスの表示(indication)をユーザ装置に対して送信すること、を含み得る。追加的または代替的に、ワークアイテムを処理することは、ワークプロセッサ345が、リレーショナルデータベース315内のメタデータ330を更新することを含み得る。例えば、ワークプロセッサ345は、376において、メタデータ更新要求をデータストアAPI 355に対して送信し、そして、データストアAPI 355は、378において、メタデータ330を更新することができる。ワークプロセッサ345がワークアイテムを処理した後で、ワークプロセッサは、リレーショナルデータベース315のメモリ内で処理されたワークアイテムにマーク付けすることができる。
データベースシステムは、保持関連ワークをハンドリングするために、複数の異なるタイプの保持規則320およびワークアイテム325を実施することができる。例えば、保持規則320は、有効期限ルール(expiry rule)、TTLルール、シーケンシャルTTLルール(sequential rule)、レコード削除ルール、エクスポートルール、処理からの制限ルール、またはデータセットをハンドリングするためのこれら又は他の保持規則の任意の組合せを含み得る。これらの保持規則タイプそれぞれは、受信した保持要求に基づいて設定可能な多くの変数を含み得る。異なる規則タイプは、異なる変数を含んでよく、そして、いくつかの例においては、1つまたはそれ以上のパラメータに対する異なるデフォルト値を含み得る。ある場合には、受信した保持要求においてデフォルト値が示されることがある。同様に、ワークアイテム325は、有効期限ワーク、レコード削除ワーク、エクスポートワーク、処理からの制限ワーク、もしくは、データセットまたはメタデータ330上でアクションを実行するためのこれら又は他のワークアイテムの任意の組合せを含み得る。ワークアイテム325は、データセットの表示、および、データセット上で実行するアクションを含み得る。各タイプの保持規則320は、ワークアイテム325の1つまたはそれ以上のタイプに対応し得る。以下に説明されるのは、データオブジェクトストア350についてデータ保持をハンドリングするための、多数の例示的な保持規則320および対応するワークアイテム325である。システム300は、データベースシステムについてデータ保持をハンドリングするために(例えば、設定可能なデータ保持ポリシに従って)、任意の数のこれらの保持規則320およびワークアイテム325、または、あらゆる他の保持規則320またはワークアイテム325をサポートし得ることが理解されるべきである。
有効期限ルールは、データセットの有効期限が切れる絶対時間を示すことができる。例えば、有効期限ルールは、タイムスタンプまたは日付を示すことができる。有効期限ルールに従って、現在のタイムスタンプが、示される有効期限タイムスタンプと等しいか又は超えている場合に、有効期限ルールがアクティブになり得る。有効期限ルールのためのデータ保持要求は、名前空間、テナント識別子、アプリケーション名、エンティティ、データセットタイプ(例えば、テナントデータ、モデルデータ、スコアデータ、メトリクスデータ、または、あらゆる他の類似のデータセットタイプ)、データセットフォーマット(例えば、Avro、バイナリ、CSV、JavaScriptオブジェクト表記(JSON)、等)、ダウンロードモード(例えば、初期、再較正(recalibration)、増分(incremental)、スナップショット、等)、保持規則をカスケードすべきか否かの指示、有効期限日または有効期限タイムスタンプ、もしくは、これら又は他の関連するパラメータの組合せを含み得る。データ保持API 310は、有効期限ルールを生成するために、これらの保持要求値を使用し得る。有効期限ルールに対する保持要求は、所定の日付または特定の時間においてテナントまたはユーザをプロビジョン解除するために使用され得る。エバリュエータ335は、アクティブな有効期限ルールに基づいて有効期限ワークアイテムを生成することができる。
TTLルールは、データのセットが期限切れになる相対時間を示すことができる。例えば、TTLルールは、相対的なタイムスタンプまたは日付を示し得る。データ保持API 310は、TTLルールについて作成タイムスタンプまたは日付を識別することができる(例えば、データ保持API 310において対応する保持要求がいつ受信されたか、データ保持API 310においてTTLルールがいつ生成されたか、または、TTLルールがいつリレーショナルデータベース315に保管されたか)。指定されたデータのセットは、相対タイムスタンプまたは相対日付に従って、作成タイムスタンプまたは作成日付の後に時間で期限切れとなり得る。例えば、タイムスタンプ作成から指示された相対的な時間が経過した後で、TTLルールはアクティブになる。TTLルールのためのデータ保持要求は、有効期限ルールについて説明されたものと同様なパラメータを含み得るが、有効期限日または有効期限タイムスタンプとは対照的に、TTL値を含み得る。一つの具体的な例においては、スコアまたはCSVテナントデータの保持のために、TTIルールについて保持要求が使用され得る。ある場合には、データベースシステムは、所定のデータタイプについて(例えば、全てのテナントまたはアプリケーションにわたるデフォルトとして)TTLルールを指定するグローバルな保持ポリシを含み得る。代替的に、データベースシステムは、テナントまたはアプリケーション固有のポリシまたはルールに基づいて、これらのグローバルな保持ポリシまたはTTLルールを無効にする(override)ことができる。エバリュエータ335は、アクティブなTTLルールに基づいて有効期限ワークアイテムを生成することができる。
シーケンシャルTTLルールは、所定の周期性に基づいて、保存するデータセット、および、削除するデータセットを示すことができる。例えば、シーケンシャルTTLルールは、特定の時間間隔に従ってデータセットを保存することをサポートし、そして、この特定の時間間隔に含まれない他の時間において作成されたデータセットに対してTTL値を割り当てることができる。例えば、シーケンシャルTTLルールが7日毎にデータセットを保存(save)することを指示する場合に、規則は、それに対応して、他の6日間において作成されるデータセットについてTTL値を割り当てるように指示することができる。このようにして、データベースシステムは、所定の時間の後で、データオブジェクトまたはデータオブジェクトレコードを、低減された粒度(granularity)を用いて保管することができる。シーケンシャルTTLルールに対するデータ保持要求は、TTLルールについて説明されたものと同様なパラメータを含み得るが、「長寿命(“long-lived”)」のデータセット(すなわち、シーケンシャルTTLルールに基づいてTTL値が割り当てられないデータセット)間における時間を示すインターバル値を含み得る。一つの特定的な使用ケースにおいては、毎月のデータの「スナップショット(“snapshot”)」をとるためにシーケンシャルTTLルールを利用することができ、ここで、各月の初日のデータセットは「長寿命」であり、そして、他の全てのデータセットにはTTL値(例えば、30日のTTL値)が割り当てられる。エバリュエータ335は、アクティブなシーケンシャルTTLルールに基づいて有効期限ワークアイテムを生成することができる。
レコード削除ルールは、データオブジェクトストア350から削除するように、特定のデータオブジェクトまたはデータオブジェクトの中に含まれる特定のレコードを示すことができる。例えば、レコード削除ルールのためのデータ保持要求は、データオブジェクトストア350内に保管されたデータセットの表示を含み得る。ある場合には、データセットは、名前空間、テナント識別子、およびエンティティのうち幾つかの組合せによって指示され得る。他の場合には、データセットは、データセット識別子によって指示され得る。データ保持要求は、加えて、指示されたデータセットから削除するように、データオブジェクトまたはレコードの表示を含み得る。例えば、データ保持要求は、レコード識別子のウイニフォーム・リソース・ロケータ(URL)を含んでよく、これは、データセットから除去するように、レコード、タイムスタンプ、またはその両方を指示し得る。ある場合には、レコード削除ルールのためのデータ保持要求は、上述のものに対して他の追加的なパラメータを含んでよい。レコード削除ルールの保持要求は、ユーザ固有のレコード削除のために使用され得る。エバリュエータ335は、アクティブなレコード削除ルールに基づいて、レコード削除ワークアイテム、有効期限ワークアイテム、またはその両方を生成することができる。
エクスポートルールは、指定されたフォーマットでエクスポートするデータをユーザ装置に対して表示することができる。レコード削除ルールのためのデータ保持要求と同様に、エクスポートルールのためのデータ保持要求は、(例えば、名前空間、テナント識別子、エンティティ、データセット識別子、またはそれらの組合せを使用して)データセットを示し、そして、指示されたデータセットの中のデータオブジェクトまたはデータオブジェクトレコードを表示することができる。例えば、データ保持要求は、エクスポートするデータオブジェクトレコードを表示する1つまたはそれ以上のレコード識別子を含み得る。データは、初期データセット、1つまたはそれ以上の増分データセット(incremental datasets)、またはその両方からの、特定のフォーマット(例えば、CSVフォーマット)におけるエクスポートについて指示することができる。データセット、データオブジェクト、またはデータオブジェクトレコードをエクスポートすることは、指示されたデータセット、データオブジェクト、またはデータオブジェクトレコードを抽出すること、および、抽出されたデータにアクセスするために、ユーザ装置に対してリンクまたはパスをエクスポートすることを含み得る。ある場合には、データを抽出することは、データのフォーマットを変更することを含み得る。エクスポートルールのためのデータ保持要求は、上述のものに対して他の追加的なパラメータを含んでよい。エクスポートルールの保持要求は、オリジナルのレコード形式においてユーザ固有またはテナント固有のレコードをエクスポートするために使用され得る。エバリュエータ335は、アクティブなエクスポートルールに基づいて、エクスポートワークアイテムを生成することができる。
処理からの制限(restrict from processing)ルールは、レコード削除ルールとエクスポートルールの側面を組合せることができる。例えば、処理からの制限ルールのためのデータ保持要求は、ユーザ装置へエクスポートし、かつ、データオブジェクトストア350から削除するように、データセット、データオブジェクト、データオブジェクトレコード、またはそれらの組合せを指示することができる。処理からの制限ルールのためのデータ保持要求は、エクスポートルールのためのデータ保持要求と同様なパラメータを含み得る。エバリュエータ335は、アクティブな処理からの制限ルールに基づいて、処理からの制限ワークアイテム、有効期限ワークアイテム、またはその両方を生成することができる。
上述のように、エバリュエータ335は、アクティブな保持規則を識別することができ、そして、これらのアクティブな保持規則に基づいてワークアイテム325を生成することができる。ある場合には、エバリュエータ335は、実施する類似のアクションに基づいてワークアイテム325を統合し得る。例えば、エバリュエータ335は、同じデータセットについて、アクティブな有効期限ルールおよびアクティブなTTLルールを識別することができる。エバリュエータ335は、これらの2つのルールのための組合された有効期限ワークアイテムを生成するために、これらのルールのためのアクションを集約することができる。同様に、ある場合には、エバリュエータ335は、同じデータセットについて複数のアクティブレコード削除ルールを識別することができる。これらのレコード削除ルールは、データセットの中のデータオブジェクトレコードの異なるセット−オーバーラップしていても、していなくてもよい−を指示することができる。エバリュエータ335は、これらのルール(例えば、異なるルールについて指示されたデータオブジェクトレコードの結合を示している)のために組合されたレコード削除ワークアイテムを生成することができる。エバリュエータ335は、ワークアイテムテーブルにおいてワークアイテム325の全てを保管することができ、そして、ワークプロセッサ345は、ワークアイテムテーブルから未解決(pending)のワークをフェッチするために、ワークプロセッサAPI 340を使用することができる。
例えば、ワークプロセッサ345は、リレーショナルデータベース315のメモリ内のワークアイテムテーブルから未処理のワークアイテムをフェッチすることができる。ある場合には、ワークアイテム325は、ワークアイテム識別子、データセット識別子、ルール識別子、メタデータ表示、または、これらのパラメータの組合せに基づいて取得され得る。ワークプロセッサ345は、上述の規則機能性を実行するために、これらのワークアイテム325を処理することができる。例えば、有効期限ワークアイテムを処理するワークプロセッサ345は、データオブジェクトストア350からデータセットを削除することができ、レコード削除アイテムを処理するワークプロセッサ345は、データオブジェクトストア350のデータセットからデータオブジェクトまたはデータオブジェクトレコードを削除することができ、エクスポートワークアイテムを処理するワークプロセッサ345は、データオブジェクトストア350内のデータセットに係るデータオブジェクトまたはデータオブジェクトレコードへのリンクまたはパスをエクスポートすることができ、そして、処理からの制限ワークアイテムを処理するワークプロセッサ345は、データオブジェクトストア350内のデータセットに係るデータオブジェクトまたはデータオブジェクトレコードへのリンクまたはパスをエクスポートすることができ、かつ、エクスポートの後で、これらのデータオブジェクトまたはデータオブジェクトレコードを追加的に削除することができる。
ワークアイテムを処理した後で、ワークプロセッサ345は、アイテムが処理されたことを示すために、ワークアイテム325またはワークアイテム325と関連付けされたメタデータ330を更新することができる。ある場合には、処理されたワークアイテムは、それが処理されたことの表示と共に、リレーショナルデータベース315のメモリ内に留まってよい。他の場合には、リレーショナルデータベース315は、例えば、それらが処理済みとしてマーク付けされたとき、または、事前に定義された周期性に従ってトリガされたときに、これらのワークアイテム325をメモリから除去することができる。
図4は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートする一つの例示的なデータストア・アーキテクチャ400を示している。例示的なデータストア・アーキテクチャ400は、データストア405によって実装され得る。データストアは、リレーショナルデータベース315の一つの例であってよく、または、図1から図3に関して説明したようなデータセンタ120またはデータストア205のコンポーネントであってよい。データストア・アーキテクチャ400は、メモリ(例えば、ディスク上)に保管された、保持規則テーブル410およびワークアイテムテーブル420を含み得る。データストア・アーキテクチャ400は、データベースサーバまたはサーバクラスタ上で実行され得る、1つまたはそれ以上の規則エバリュエータ415を、追加的に含み得る。エバリュエータ430は、保持規則テーブル410に保管された保持規則425を評価し、ワークアイテム435を生成し、そして、ワークアイテムテーブル420にワークアイテム435を保管することができる。
データストア405は、保持規則テーブル410について複数の異なるタイプの保持規則425をサポートすることができる。例えば、データストア405は、有効期限ルール425-a、TTLルール425-b、シーケンシャルTTLルール425-c、レコード削除ルール425-d、エクスポートルール425-e、処理からの制限ルール425-f、もしくは、これら又はその他のデータ保持規則425の組合せを、保持規則テーブル410内に保管することができる。これらの保持規則425は、例えば、図3に関して、上述した規則に対応し得る。
データストア405は、ワークアイテムテーブル420のために複数の異なるタイプのワークアイテム435を追加的にサポートすることができる。例えば、データストア405は、有効期限ワークアイテム435-a、レコード削除ワークアイテム435-b、エクスポートワークアイテム435-c、処理からの制限ワークアイテム435-d、もしくは、これら又は他のワークアイテムの組合せ435をワークアイテムテーブル420内に保管することができる。ワークアイテム435は、データセットについて行われるべきワークを指示することができる。規則エバリュエータ415は、データセットを処理するためにワークプロセッサによって使用される任意の情報を、ワークアイテム435へとエンコードすることができる。エバリュエータ430は、入力された保持規則425から1つまたはそれ以上のワークアイテムタイプを生成することができる。エバリュエータ430は、追加的または代替的に、同じデータセットに対する同じワークアイテムタイプのワークアイテム435を集約することができる。集約プロシージャに基づいて、データセットにおける集約ワークアイテム435の処理は、同じデータセットについて同じタイプの複数のワークアイテムを個別に処理するのと同じデータセットの修正を結果として生じ得る。しかしながら、集約ワークアイテム435の処理は、(例えば、ワークアイテムを個別に処理することとは対照的に)データセットの修正プロシージャのオーバーヘッドおよびレイテンシを減少させ得る。
ある場合には、データストア405は、保持規則425について猶予期間を実装することができる。この猶予期間は、事前に定められた長さ(例えば、30日)を有してよく、または、ユーザ、テナント、またはアプリケーション固有の基準で設定可能であり得る。猶予期間は、最初に保持規則425を適用した後で、保持規則425をアクティブに維持するための時間の長さを定義することができる。これにより、データストア405は、保持規則425が適用された後に作成されたデータセットを処理することができる。データセットは、保持規則425に基づいて修正されるべきである。例えば、エバリュエータ430は、保持規則425に従ってデータセットのグループをフィルタリングすることができ、そして、フィルタリングされたデータセットを識別するデータセット識別子を指示する1つまたはそれ以上のワークアイテム435を生成することができる。保持規則425は、指定された猶予期間についてアクティブであり続けることができ、そして、エバリュエータは、猶予期間の最中に、この保持規則425を定期的に再評価することができる。再評価プロセスの最中に、エバリュエータ430は、保持規則425に従ってデータセットのグループを再度フィルタリングすることができ、そして、データセットを以前にフィルタリングした後で、データオブジェクトストアに追加された新しいデータセットまたは子(child)データセットを識別することができる。このようにして、データストア405は、ライブデータストアアーキテクチャ400の中でデータ保持の処理に係る信頼性を改善することができる。
規則エバリュエータ415は、規則タイプに基づいて動作し得る。各規則タイプは、規則タイプ固有のエバリュエータ430によって1つまたはそれ以上のワークアイテムタイプを生成するように、個別に評価され得る。例えば、規則エバリュエータ415は、有効期限エバリュエータ430-a、レコード削除エバリュエータ430-b、レコードエクスポートエバリュエータ430-c、処理からの制限エバリュエータ430-d、もしくは、これら又は他のエバリュエータ430のいくつかの組合せを含んでよい。ある場合には、これらのエバリュエータ430は、(例えば、別々のコーディングクラスまたは方法を使用して)別々に操作され得る。他の場合には、これらのエバリュエータ430は、単一の包括的な(overarching)規則エバリュエータ415のコンポーネントであってよい。以下に説明されるのは、多数の例示的な規則タイプ固有のエバリュエータ430である。データストア405は、保持規則425に基づいてワークアイテム435を生成するために、任意の数のこれらのエバリュエータ430、または任意の他の類似のエバリュエータ430をサポートし得ることが理解されるべきである。
有効期限エバリュエータ430-aは、有効期限ルール425-a、TTLルール425-b、および、シーケンシャルTTLルール425-cを読出すことができ、そして、アクティブな保持規則425を決定することができる。有効期限エバリュエータ430-aは、アクティブな保持規則425に対応する有効期限ワークアイテム435-aのセットを生成することができる。ワークアイテム435を統合するために、有効期限エバリュエータ430-aは、データセット毎に、最短の有効期限に基づいて、集約することができる。ある場合には、有効期限エバリュエータ430-aは、未解決のアイテム(例えば、削除のための、データセット、データオブジェクト、またはデータオブジェクトレコードに対応するワークアイテム435)を有するアクティブな有効期限ルール425-a、TTLルール425-b、またはシーケンシャルTTLルール425-cを識別することができる。例えば、有効期限エバリュエータ430-aは、ワークプロセッサによって処理されたアクティブな規則について、以前に生成された有効期限ワークアイテム435-aを有し得る。これらの場合に、有効期限エバリュエータ430-aは、アクティブな規則について猶予期間が終了したかどうかを決定することができる。猶予期間が終了しており、かつ、アクティブな保持規則425について未解決のアイテムが存在しない場合に、有効期限エバリュエータ430-aは、保持規則425を非アクティブ(inactive)としてマーク付けするか、または、保持規則テーブル410から保持規則425を削除することができる。
レコード削除エバリュエータ430-bは、レコード削除ルール425-dを読出すことができ、そして、アクティブなレコード削除ルール425-dを決定することができる。レコード削除エバリュエータ430-bは、削除するレコードに基づいて、レコード削除ワークアイテム435-bのセット、有効期限ワークアイテム435-aのセット、または、それらの組合せを生成することができる。例えば、レコード削除エバリュエータ430-bは、レコード削除ルール425-dによって直接的に指示されたデータセットを識別することができ、そして、これらのデータセットについてレコード削除ワークアイテム435-bを生成することができる(例えば、データオブジェクトレコード識別子の結合に基づいて集約する)。レコード削除エバリュエータ430-bは、これらの直接的に指示されたデータセットに基づいて導出された任意のデータセットを追加的に識別することができ、そして、削除されたレコードを用いて直接的に指示されたデータセットに対応する派生したデータセットについて有効期限ワークアイテム435-aを生成することができる。
所与のデータセットについて、レコード削除エバリュエータ430-bは、データセットに対して以前に適用されていないレコード削除ルール425-dについて集約することができる。レコード削除エバリュエータ430-bが、ワークアイテムテーブル420内で未解決の有効期限ワークアイテム435-aを有していないレコード削除ルール425-dを識別する場合に、レコード削除エバリュエータ430-bは、レコード削除ルール425-dについて猶予期間が終了したか否かを判断することができる。そうである場合に、レコード削除エバリュエータ430-bは、非アクティブとしてレコード削除保持規則425-dをマーク付けするか、または、保持規則テーブル410からレコード削除保持規則425-dを削除することができる。
一つの特定的な例において、レコード削除エバリュエータ430-bは、データセットの作成日の最長で特定の日数後に発生する削除を指示するレコード削除ルール425-dを識別することができ、レコード削除エバリュエータ430-bは、対応するワークアイテム435を生成していない。特定の日数は、スナップショットの間隔、削除時のインフライト(in-flight)データセットのためのレース条件(race conditions)を解決するためのスラック量(amount of slack)、または、これらの要因の組合せに基づいてよい。例えば、毎日のスナップショット(例えば、「1」の値に対応する)および1日のスラック量(すなわち、「+1」の値)について、レコード削除エバリュエータ430-bは、データセットの作成日後に最大で1+1=2日に発生する、削除を指示する任意のレコード削除ルール425-dを識別することができる。レコード削除エバリュエータ430-bが、データセットについて削除する1つまたはそれ以上のレコードを決定した場合に、レコード削除エバリュエータ430-bは、データセットに係るあらゆる以前のバージョンを識別し、そして、これらのバージョンから対応するレコードを追加的に削除することができる(例えば、作業が未だにスケジュールされていないか、または、これらのバージョンで実行されていない場合)。いくつかのアクションは、このプロシージャに対する例外を有してよい。非削除動作(non-delete action)といったものであり、結果としてデータセットのあらゆる変更も生じ得ない。追加的または代替的に、スナップショットの他の間隔(例えば、代替スナップショットまたは月次スナップショット)は、異なる特定の日数を結果として生じ得る。
レコードエクスポートエバリュエータ430-cは、エクスポートルール425-eを読出し、そして、保持規則テーブル410における任意のアクティブなエクスポートルール425-eを決定することができる。レコードエクスポートエバリュエータ430-cは、アクティブなエクスポートルール425-eに基づいてエクスポートワークアイテム435-cのセットを作成し、そして、各データセットについてレコード識別子の統一をとることによってエクスポートワークアイテム435-cを統合することがでる。所与のデータセットに対して、レコードエクスポートエバリュエータ430-cは、データセットに対して以前に適用されていないエクスポートルール425-eについて集約することができる。レコードエクスポートエバリュエータ430-cがアクティブなエクスポートルール425-eを識別したときに、レコードエクスポートエバリュエータ430-cは、対応するレコードエクスポートワークアイテム435-cを生成し、そして、エクスポートルール425-eを非アクティブとしてマーク付けするか、または、保持規則テーブル410からエクスポートルール425-eを削除することができる。
処理からの制限エバリュエータ430-dは、処理からの制限ルール425-fを読出し、そして、任意のアクティブな処理からの制限ルール425-fを決定することができる。ルールによって直接的に取得されるデータセットに対して、処理からの制限エバリュエータ430-dは、レコード識別子の結合に基づいて集約された、処理からの制限ワークアイテムルール445-dを生成することができる。これらのデータセットから導出された他のデータセットに対して、処理からの制限エバリュエータ430-dは、有効期限ワークアイテム435-bを生成することができる。所与のデータセットに対して、処理からの制限エバリュエータ430-dは、データセットに対して以前に適用されていない(例えば、ワークアイテムテーブル420から獲得された)処理からの制限ルール425-fについて集約することができる。処理からの制限エバリュエータ430-dが、未解決の有効期限ワークアイテム435-aを有していないアクティブな処理からの制限ルール425-fを識別したときに、処理からの制限エバリュエータ430-dは、処理からの制限ルール425-fを非アクティブとしてマーク付けするか、または、保持規則テーブル410から処理からの制限ルール425-fを削除することができる。
保持規則テーブル410は、保持規則425のための多数の定義されたパラメータを保管することができる。例えば、保持規則テーブル410は、ルール識別子、名前空間、テナント識別子、アプリケーション名、エンティティ、データセットタイプ、データセットフォーマット、規則タイプ、作成日、規則がアクティブであるか否かの表示、メタデータ情報、もしくは、これら又は他の関連パラメータの組合せをメモリに保管することができる。同様に、ワークアイテムテーブル420は、ワークアイテム435のための多数の定義されたパラメータを保管することができる。例えば、ワークアイテムテーブル420は、ワークアイテム識別子、データセット識別子、ルール識別子、ワークアイテムタイプ、ワークアイテムが処理されているか否かの表示、処理された日、作成日、メタデータ情報、もしくは、これら又は他の関連パラメータの組合せをメモリに保管することができる。
図5は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートするプロセスフロー500の一つの例を示している。プロセスフロー500は、データストア505、ユーザ装置510、およびワークプロセッサ515を含み得る。データストア505は、データセンタ120のコンポーネントであってよく、または、図1から図4までに関して説明したように、データストア205、リレーショナルデータベース315、データオブジェクトストア350、またはデータストア405の一つの例であってよい。ユーザ装置510は、図1から図3までに関して説明したように、クラウドクライアント105、コンタクト110、ユーザ装置210、またはデバイス305の一つの例であってよい。ワークプロセッサ515は、単一のワークプロセッサ、またはワークアイテム固有のワークプロセッサの収集であってよく、図2および図3に関して説明したように、ワークプロセッサ215または345の一つの例であってよい。データストア505は、データオブジェクトストアに対するデータ保持をハンドリングすることができ、それは、データストア505のコンポーネントであってよく、または、データセンタの中のデータストア505と関連付けされてよい。
データストア505は、データオブジェクトストア内に保管されたデータセットについてデータ保持ポリシを含み得る。これらのデータ保持ポリシは、全てのテナントおよびアプリケーションに対して適用されるグローバルなデータ保持ポリシの例であり得る。ある場合には、ユーザ装置510は、テナントまたはユーザ装置510と関連付けされたユーザのための設定可能なデータ保持ポリシを、データストア505へ送信することができる。データストア505は、データ保持ポリシを受信することができ、そして、525において、設定可能なデータ保持ポリシを実装するために、1つまたはそれ以上のグローバルなデータ保持ポリシを無効にする(override)ことができる。データストア505は、グローバルで、かつ、設定可能なデータ保持ポリシに従って、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットに対するデータ保持ポリシを識別することができる。
530において、ユーザ装置510は、データ保持要求をデータストア505に対して送信することができる。これらのデータ保持要求は、データオブジェクトストア内に保管されたデータセットに対する1つまたはそれ以上のアクションと関連付けられてよく、ここで、各要求は、データオブジェクトストアの少なくとも1つのデータセットについて実行するアクションに対応している。
535において、データストア505は、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、データ保持要求を評価することができる。例えば、データストア505は、保持要求を、例えば、図3および図4に関して説明したように、保持規則として、保持規則テーブルに保管することができる。エバリュエータは、規則タイプに基づいて、そして、ある場合には、現在のタイムスタンプに基づいて、これらの保持規則がアクティブであるか否かを判断することができる。
540において、データストア505は、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。これらの集約アクションそれぞれは、同じデータセットに対する複数のアクティブなデータ保持要求に対応し得る。545において、データストア505は、集約アクションについて統合ワークオブジェクト(例えば、ワークアイテム)を生成することができる。例えば、データストア505は、集約アクションに対応するワークアイテムタイプ、および、データセットに対応するデータセット識別子を含む、各集約アクションのための集約ワークオブジェクトを生成することができる。ある場合には、データストア505は、これらの生成されたワークオブジェクトをワークアイテムテーブルに保管することができる。
550において、ワークプロセッサ515は、ワークプロセッサ検索要求を使用して(例えば、ワークプロセッサAPIを介して)、データストア505からワークオブジェクトをフェッチすることができる。ある場合には、ワークプロセッサ515は、特定のワークアイテムタイプのワークオブジェクトをフェッチすることができる。追加的または代替的に、ワークプロセッサ515は、事前に決定され、または設定可能なスケジュールに従って、ワークオブジェクトをフェッチすることができる。555において、データストア505は、ワークプロセッサ515に対して、ワークオブジェクトの表示を送信することができる。
560において、ワークプロセッサ515は、取得されたワークオブジェクトを処理することができる。ワークプロセッサ515は、識別されたデータ保持ポリシに従って、ワークオブジェクトを処理することができる。ある場合には、ワークオブジェクトの処理は、データオブジェクトまたはデータオブジェクトレコードをデータオブジェクトストアからエクスポートすること、または削除することを含み得る。
図6は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートする装置605のブロック図を示している。装置605は、入力モジュール610、データ保持モジュール615、および出力モジュール620を含み得る。装置605は、また、プロセッサも含み得る。これらのコンポーネントそれぞれは、互いに(例えば、1つまたはそれ以上のバスを介して)通信することができる。ある場合には、装置605は、ユーザ端末、データベースサーバ、または複数のコンピューティングデバイスを含むシステムの一つの例であり得る。
データ保持モジュール615は、図7および8に関して説明されるデータ保持モジュール715または815の態様の一つの例であり得る。データ保持モジュール615は、また、データ保持ポリシコンポーネント625、保持要求受信コンポーネント630、評価コンポーネント635、統合コンポーネント640、ワークオブジェクトジェネレータ645、およびワーク処理コンポーネント650を含み得る。
データ保持モジュール615及び/又はその様々なサブコンポーネントの少なくとも幾つかは、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、または、それらの任意の組合せにおいて実装され得る。プロセッサによって実行されるソフトウェアにおいて実装される場合に、データ保持モジュール615及び/又はその様々なサブコンポーネントの少なくとも幾つかの機能は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェアコンポーネント、もしくは、本開示で説明される機能を実行するように設計されたそれらの任意の組合せ、によって実行され得る。データ保持モジュール615及び/又はその様々なサブコンポーネントの少なくとも幾つかは、様々な位置に物理的に配置され得る。機能の一部が、1つまたはそれ以上の物理的デバイスによって異なる物理的な場所において実装されるように分散されていることを含むものである。いくつかの例において、データ保持モジュール615及び/又はその様々なサブコンポーネントの少なくとも幾つかは、本開示の様々な態様に従った、分離した、かつ別個のコンポーネントであってよい。他の例において、データ保持モジュール615及び/又はその様々なサブコンポーネントの少なくとも幾つかは、1つまたはそれ以上の他のハードウェアコンポーネントと組合され得る。これらに限定されるわけではないが、I/Oコンポーネント、トランシーバ、ネットワークサーバ、別のコンピューティングデバイス、本開示において説明される1つまたはそれ以上の他のコンポーネント、もしくは、本開示の様々な態様に従ったそれらの組合せを含むものである。
データ保持ポリシコンポーネント625は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別することができる。保持要求受信コンポーネント630は、1つまたはそれ以上のデータセットについて1つまたはそれ以上のアクションと関連付けされたデータ保持要求のセットを受信することができる。ここで、各データ保持要求は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットに対して実行するアクションに対応しており、かつ、ここで、1つまたはそれ以上のアクションは、設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。
評価コンポーネント635は、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、データ保持要求のセットを評価することができる。統合コンポーネント640は、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。ここで、各集約アクションは、データセットについて実行するアクティブなデータ保持要求のセットに係る1つまたはそれ以上のアクティブなデータ保持要求に対応している。
ワークオブジェクトジェネレータ645は、各集約アクションについて統合ワークオブジェクトを生成することができる。ここで、各統合ワークオブジェクトは、集約アクションに対応しているワークアイテムタイプ、および、データセットに対応しているデータセット識別子を含んでいる。ワーク処理コンポーネント650は、ワークプロセッサ検索要求に応答して、ワークプロセッサに対して、生成された統合ワークオブジェクトの表示を送信することができる。ここで、ワークプロセッサは、設定可能なデータ保持ポリシに従って、生成された統合ワークオブジェクトを処理する。
図7は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングをサポートするデータ保持モジュール715のブロック図を示している。データ保持モジュール715は、図6および図8に関して説明されるデータ保持モジュール615または815の態様に係る一つの例であり得る。データ保持モジュール715は、データ保持ポリシコンポーネント720、保持要求受信コンポーネント725、評価コンポーネント730、統合コンポーネント735、ワークオブジェクトジェネレータ740、ワーク処理コンポーネント745、メタデータコンポーネント750、マーキングコンポーネント755、タイミングコンポーネント760、抽出コンポーネント765、および、エクスポートコンポーネント770を含み得る。これらのモジュールそれぞれは、直接的または間接的に、(例えば、1つまたはそれ以上のバスを介して)互いに通信することができる。
データ保持ポリシコンポーネント720は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別することができる。いくつかの例において、1つまたはそれ以上のデータセットは、非リレーショナルデータベーススキーマでフォーマットされたデータを含んでいる。ある場合には、データ保持ポリシコンポーネント720は、ユーザ装置から、設定可能なデータ保持ポリシを受信することができる。ここで、設定可能なデータ保持ポリシは、1つまたはそれ以上のデータセットに対応するテナントまたはユーザのためのものである。設定可能なデータ保持ポリシは、データオブジェクトストアに対する1つまたはそれ以上のグローバルなデータ保持ポリシを無効にすることができる。
保持要求受信コンポーネント725は、1つまたはそれ以上のデータセットに対する1つまたはそれ以上のアクションと関連付けされたデータ保持要求のセットを受信することができる。ここで、各データ保持要求は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットについて実行するアクションに対応しており、そして、1つまたはそれ以上のアクションは、設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。ある場合には、データ保持要求のセットを受信することには、データ保持要求のバッチを定期的に取得することを含んでいる。
評価コンポーネント730は、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、データ保持要求のセットを評価することができる。ある場合には、データ保持要求のセットは、動的または事前に決定された周期性に従って評価される。
統合コンポーネント735は、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。ここで、各集約アクションは、データセットについて実行するアクティブなデータ保持要求のセットに係る1つまたはそれ以上のアクティブなデータ保持要求に対応している。
ワークオブジェクトジェネレータ740は、各集約アクションについて統合ワークオブジェクトを生成することができる。ここで、各統合ワークオブジェクトは、集約アクションに対応しているワークアイテムタイプ、および、データセットに対応しているデータセット識別子を含んでいる。
ワーク処理コンポーネント745は、ワークプロセッサ検索要求に応答して、生成された統合ワークオブジェクトの表示(indication)を、ワークプロセッサに対して送信することができる。ここで、ワークプロセッサは、設定可能なデータ保持ポリシに従って、生成された統合ワークオブジェクトを処理する。ある場合には、ワーク処理コンポーネント745は、ワークプロセッサの周期性に従って、ワークプロセッサ検索要求のセットを受信することができる。ここで、ワークプロセッサ検索要求のセットに係る各ワークプロセッサ検索要求は特定のワークアイテムタイプに対応している。
ある場合には、データオブジェクトストアは、メタデータデータベースと関連付けされ得る。これらの場合に、メタデータコンポーネント750は、データ保持要求のセットに対応している、テナント識別子、ユーザ識別子、または、それらの組合せを識別することができる。メタデータコンポーネント750は、テナント識別子、ユーザ識別子、または、それらの組合せと関連付けされたメタデータデータベース内のメタデータに従って、1つまたはそれ以上のデータセットを決定することができる。ある場合には、データ保持要求のセットは、テナント識別子に対応しているデータオブジェクトストアのテナントのプロビジョン解除、または、ユーザ識別子に対応しているデータオブジェクトストアのテナントのユーザについてのレコード削除に対応している。
マーキングコンポーネント755は、生成された統合ワークオブジェクトを未処理のワークオブジェクトとしてマーク付けすることができる。ある場合には、マーキングコンポーネント755は、ワークプロセッサから、ワークプロセッサが生成された統合ワークオブジェクトを処理したことの表示を受信することができ、そして、ワークプロセッサから受信した表示に基づいて、生成された統合ワークオブジェクトを処理済みのワークオブジェクトとしてマーク付けすることができる。
ある場合には、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、データ保持要求のセットを評価することは、タイミングコンポーネント760を含んでいる。例えば、タイミングコンポーネント760は、データ保持要求のセットについて、有効期限タイムスタンプ、TTL値、シーケンシャルTTL値、または、それらの組合せを識別することができ、現在のタイムスタンプを、識別された有効期限タイムスタンプ、TTL値、シーケンシャルTTL値、または、それらの組合せと比較することができ、そして、比較に基づいて、1つまたはそれ以上のアクティブなアクションを決定することができる。ある場合には、ワークプロセッサは、集約アクション、および、識別された有効期限タイムスタンプ、TTL値、シーケンスTTL値、または、それらの組合せを超えている現在のタイムスタンプ基づいて、各統合ワークオブジェクトについて、データオブジェクトのセット、データオブジェクトレコードのセット、または、それらの組合せを、データセットから除去する。
抽出コンポーネント765は、ワークプロセッサから、集約アクションに対応しているデータオブジェクトのセット、データオブジェクトレコード、または、それらの組合せを受信することができ、そして、データオブジェクトのセット、データオブジェクトレコード、または、それらの組合せを抽出することができる。エクスポートコンポーネント770は、ユーザ装置に対して、データオブジェクトの抽出されたセット、データオブジェクトレコード、または、それらの組合せにアクセスするためのリンクをエクスポートすることができる。
図8は、本開示の態様に従って、データオブジェクトストアのデータ保持ハンドリングをサポートするデバイス805を含むシステム800のブロック図を示している。デバイス805は、例えば、図1から図5までに関して、ここにおいて説明されるようなデータストア、リレーショナルデータストア、または、データオブジェクトストアのコンポーネントの一つの例であってよく、または、含むことができる。デバイス805は、通信を送信および受信するためのコンポーネントを含む双方向データ通信のためのコンポーネントを含み得るものであり、データ保持モジュール815、プロセッサ820、メモリ825、データベースコントローラ830、データベース835、および、I/Oコントローラ840を含んでいる。これらのコンポーネントは、1つまたはそれ以上のバス(例えば、バス810)を介して電気通信することができる。
プロセッサ820は、インテリジェントハードウェアデバイス(例えば、汎用プロセッサ、DSP、中央処理装置(CPU)、マイクロコントローラ、ASIC、FPGA、プログラマブル論理デバイス、個別ゲートまたはトランジスタ論理コンポーネント、個別ハードウェアコンポーネント、または、それらの任意の組合せ)を含み得る。ある場合には、プロセッサ820は、メモリコントローラを使用してメモリアレイを操作するように構成され得る。他の場合に、メモリコントローラは、プロセッサ820へと統合されてよい。プロセッサ820は、様々な機能(例えば、データオブジェクトストアのためのデータ保持ハンドリングをサポートする機能またはタスク)を実行するために、メモリ内に保管されているコンピュータで読取り可能な命令を実行するように構成され得る。
メモリ825は、ランダム・アクセス・メモリ(RAM)およびリード・オンリー・メモリ(ROM)を含み得る。メモリ825は、命令を含む、コンピュータで読取り可能であり、コンピュータで実行可能なソフトウェア830を保管することができる。命令は、実行されると、ここにおいて説明される様々な機能をプロセッサに実行させる。ある場合には、メモリ825は、中でも、ペリフェラルコンポーネントまたはデバイスとのインタラクションといった、基本的なハードウェアまたはソフトウェアの動作を制御することができるベーシック・インプット/アウトプット・システム(BIOS)を含み得る。
データベースコントローラ830は、データベース835におけるデータの保管および処理を管理することができる。ある場合には、ユーザは、データベースコントローラ830とインタラクションすることができる。他の場合に、データベースコントローラ830は、ユーザインタラクションなしで自動的に動作することができる。データベース835は、単一データベース、分散データベース、複数の分散データベース、または、緊急バックアップデータベースのうち1つの例であってよい。
I/Oコントローラ840は、デバイス805のための入力および出力信号を管理することができる。I/Oコントローラ840は、また、デバイス805に統合されていない周辺機器を管理することもできる。ある場合には、I/Oコントローラ840は、外部の周辺機器に対する物理的接続またはポートを表すことができる。ある場合には、I/Oコントローラ840は、iOS(R)、ANDROID(R)、MS-DOS(R)、MS-WINDOWS(R)、OS/2(R)、UNIX(R)、LINUX(R)、または、他の既知のオペレーティングシステムといった、オペレーティングシステムを利用することができる。他の場合に、I/Oコントローラ840は、モデム、キーボード、マウス、タッチスクリーン、または、類似のデバイスを表し、または、インタラクションすることができる。ある場合には、I/Oコントローラ840は、プロセッサの一部として実装され得る。ある場合には、ユーザは、I/Oコントローラ840を介して、または、I/Oコントローラ840によって制御されるハードウェアコンポーネントを介して、デバイス805とインタラクションすることができる。
図9は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングの方法900を説明するフローチャートを示している。方法900のオペレーションは、ここにおいて説明されるように、データストアまたはそのコンポーネントによって実施され得る。例えば、方法900のオペレーションは、図6から図8までに関して説明したように、データ保持モジュールによって実行され得る。いくつかの例において、データストアは、デバイスの機能エレメントを制御するためのコードのセットを実行することができ、以下に説明される機能を実施する。追加的または代替的に、データストアは、特殊目的のハードウェアを使用して、以下に説明される機能の態様を実行することができる。
905において、データストアは、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別することができる。905のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、905のオペレーションの態様は、図6から図8までに関して説明されたように、データ保持ポリシコンポーネントによって実行され得る。
910において、データストアは、1つまたはそれ以上のデータセットについて、1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信することができる。ここで、各データ保持要求は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットに係る少なくとも1つのデータセットについて実行するアクションに対応しており、そして、1つまたはそれ以上のアクションは、設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、または、削除することに対応している。910のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、910のオペレーションに係る態様は、図6から図8までに関して説明されたように、保持要求受信コンポーネントによって実行され得る。
915において、データストアは、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、複数のデータ保持要求を評価することができる。915のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、915のオペレーションに係る態様は、図6から図8までに関して説明されたように、評価コンポーネントによって実行され得る。
920において、データストアは、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。ここで、各集約アクションは、データセットについて実行するアクティブなデータ保持要求のセットに係る1つまたはそれ以上のアクティブなデータ保持要求に対応している。920のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、920のオペレーションに係る態様は、図6から図8までに関して説明されたように、統合コンポーネントによって実行され得る。
925において、データストアは、各集約アクションについて統合ワークオブジェクトを生成することができる。ここで、各統合ワークオブジェクトは、集約アクションに対応しているワークアイテムタイプ、および、データセットに対応しているデータセット識別子を含む。925のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、925のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワークオブジェクトジェネレータによって実行され得る。
930において、データストアは、ワークプロセッサ検索要求に応答して、ワークプロセッサに対して、生成された統合ワークオブジェクトの表示(indication)を送信することができる。ワークプロセッサは、設定可能なデータ保持ポリシに従って、生成された統合ワークオブジェクトを処理し得る。930のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、930のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワーク処理コンポーネントによって実行され得る。
図10は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングの方法1000を説明するフローチャートを示している。方法1000のオペレーションは、ここにおいて説明されるように、データストアまたはそのコンポーネントによって実施され得る。例えば、方法1000のオペレーションは、図6から図8までに関して説明されたようなデータ保持モジュールによって実行され得る。いくつかの例において、データストアは、以下に説明される機能を実行するために、デバイスの機能エレメントを制御するためのコードのセットを実行し得る。追加的または代替的に、データストアは、特殊目的のハードウェアを使用して、以下に説明される機能に係る態様を実行することができる。
1005において、データストアは、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別することができる。1005のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1005のオペレーションに係る態様は、図6から図8までに関して説明されたように、データ保持ポリシコンポーネントによって実行され得る。
1010において、データストアは、1つまたはそれ以上のデータセットについて1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信することができる。ここで、各データ保持要求は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットに係る少なくとも1つのデータセットについて実行するアクションに対応しており、そして、1つまたはそれ以上のアクションは、設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。1010のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1010のオペレーションに係る態様は、図6から図8までに関して説明されたように、保持要求受信コンポーネントによって実行され得る。
1015において、データストアは、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、複数のデータ保持要求を評価することができる。1015のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1015のオペレーションに係る態様は、図6から図8までに関して説明されたように、評価コンポーネントによって実行され得る。
1020において、データストアは、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。ここで、各集約アクションは、データセットについて実行するアクティブなデータ保持要求のセットのうち1つまたはそれ以上のアクティブなデータ保持要求に対応している。1020のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1020のオペレーションに係る態様は、図6から図8までに関して説明されたように、統合コンポーネントによって実行され得る。
1025において、データストアは、各集約アクションについて統合ワークオブジェクトを生成することができる。ここで、各統合ワークオブジェクトは、集約アクションに対応しているワークアイテムタイプ、および、データセットに対応しているデータセット識別子を含んでいる。1025のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1025のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワークオブジェクトジェネレータによって実行され得る。
1030において、データストアは、生成された統合ワークオブジェクトを未処理のワークオブジェクトとしてマーク付けすることができる。1030のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1030のオペレーションに係る態様は、図6から図8までに関して説明されたように、マーキングコンポーネントによって実行され得る。
1035において、データストアは、ワークプロセッサ検索要求に応答して、ワークプロセッサに対して、生成された統合ワークオブジェクトの表示(indication)を送信することができる。ここで、ワークプロセッサは、設定可能なデータ保持ポリシに従って、生成された統合ワークオブジェクトを処理することができる。1035のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1035のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワーク処理コンポーネントによって実行され得る。
1040において、データストアは、ワークプロセッサから、生成された統合ワークオブジェクトを処理したことの表示を受信することができる。1040のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1040のオペレーションに係る態様は、図6から図8までに関して説明されたように、マーキングコンポーネントによって実行され得る。
1045において、データストアは、ワークプロセッサから受信した表示に少なくとも部分的に基づいて、生成された統合ワークオブジェクトを、処理済のワークオブジェクトとしてマーク付けすることができる。1045のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1045のオペレーションに係る態様は、図6から図8までに関して説明されたように、マーキングコンポーネントによって実行され得る。
図11は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングの方法1100を説明するフローチャートを示している。方法1100のオペレーションは、ここにおいて説明されるように、データストアまたはそのコンポーネントによって実施され得る。例えば、方法1100のオペレーションは、図6から図8までに関して説明されたようなデータ保持モジュールによって実行され得る。いくつかの例において、データストアは、以下に説明される機能を実行するために、デバイスの機能エレメントを制御するためのコードのセットを実行し得る。追加的または代替的に、データストアは、特殊目的のハードウェアを使用して、以下に説明される機能に係る態様を実行することができる。
1105において、データストアは、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別することができる。1105のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1105のオペレーションに係る態様は、図6から図8までに関して説明されたように、データ保持ポリシコンポーネントによって実行され得る。
1110において、データストアは、1つまたはそれ以上のデータセットについて1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信することができる。ここで、各データ保持要求は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットについて実行するアクションに対応しており、そして、1つまたはそれ以上のアクションは、設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。1110のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1110のオペレーションに係る態様は、図6から図8までに関して説明されたように、保持要求受信コンポーネントによって実行され得る。
データストアは、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、複数のデータ保持要求を評価することができる。例えば、1115において、データストアは、複数のデータ保持要求について、有効期限タイムスタンプ、TTL値、シーケンシャルTTL値、または、それらの組合せを識別することができる。1115のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1115のオペレーションに係る態様は、図6から図8までに関して説明されたように、タイミングコンポーネントによって実行され得る。
1120において、データストアは、現在のタイムスタンプを、識別された有効期限タイムスタンプ、TTL値、シーケンスTTL値、または、それらの組合せと比較することができる。1120のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1120のオペレーションに係る態様は、図6から図8までに関して説明されたように、タイミングコンポーネントによって実行され得る。
1125において、データストアは、比較に少なくとも部分的に基づいて、1つまたはそれ以上のアクティブなアクションを決定することができる。1125のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1125のオペレーションに係る態様は、図6から図8までに関して説明されたように、タイミングコンポーネントによって実行され得る。
1130において、データストアは、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。ここで、各集約アクションは、データセットについて実行するアクティブなデータ保持要求のセットに係る1つまたはそれ以上のアクティブなデータ保持要求に対応している。1130のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1130のオペレーションに係る態様は、図6から図8までに関して説明されたように、統合コンポーネントによって実行され得る。
1135において、データストアは、各集約アクションについて統合ワークオブジェクトを生成することができる。ここで、各統合ワークオブジェクトは、集約アクションに対応しているワークアイテムタイプ、および、データセットに対応しているデータセット識別子を含んでいる。1135のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1135のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワークオブジェクトジェネレータによって実行され得る。
1140において、データストアは、ワークプロセッサ検索要求に応答して、ワークプロセッサに対して、生成された統合ワークオブジェクトの表示(indication)を送信することができる。ワークプロセッサは、少なくとも部分的に、集約アクション、および、識別された有効期限タイムスタンプ、TTL値、シーケンスTTL値、または、それらの組合せを超えている現在のタイムスタンプに基づいて、各統合ワークオブジェクトについて、データオブジェクトのセット、データオブジェクトレコードのセット、または、それらの組合せを、データセットから削除することができる。1140のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1140のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワーク処理コンポーネントによって実行され得る。
図12は、本開示の態様に従って、データオブジェクトストアのためのデータ保持ハンドリングの方法1200を説明するフローチャートを示している。方法1200のオペレーションは、ここにおいて説明されるように、データストアまたはそのコンポーネントによって実施され得る。例えば、方法1200のオペレーションは、図6から図8までに関して説明されたようなデータ保持モジュールによって実行され得る。いくつかの例において、データストアは、以下に説明される機能を実行するために、デバイスの機能エレメントを制御するためのコードのセットを実行し得る。追加的または代替的に、データストアは、特殊目的のハードウェアを使用して、以下に説明される機能に係る態様を実行することができる。
1205において、データストアは、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別することができる。1205のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1205のオペレーションに係る態様は、図6から図8までに関して説明されたように、データ保持ポリシコンポーネントによって実行され得る。
1210において、データストアは、1つまたはそれ以上のデータセットについて、1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信することができる。ここで、各データ保持要求は、データオブジェクトストア内に保管された1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットについて実行するアクションに対応しており、そして、1つまたはそれ以上のアクションは、設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。1210のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1210のオペレーションに係る態様は、図6から図8までに関して説明されたように、保持要求受信コンポーネントによって実行され得る。
1215において、データストアは、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、複数のデータ保持要求を評価することができる。1215のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1215のオペレーションに係る態様は、図6から図8までに関して説明されたように、評価コンポーネントによって実行され得る。
1220において、データストアは、1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合することができる。ここで、各集約アクションは、データセットについて実行するアクティブなデータ保持要求のセットのうち1つまたはそれ以上のアクティブなデータ保持要求に対応している。1220のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1220のオペレーションに係る態様は、図6から図8までに関して説明されたように、統合コンポーネントによって実行され得る。
1225において、データストアは、各集約アクションについて統合ワークオブジェクトを生成することができる。ここで、各統合ワークオブジェクトは、集約アクションに対応しているワークアイテムタイプ、および、データセットに対応しているデータセット識別子を含んでいる。1225のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1225のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワークオブジェクトジェネレータによって実行され得る。
1230において、データストアは、ワークプロセッサ検索要求に応答して、生成された統合ワークオブジェクトの表示(indication)を、ワークプロセッサに対して送信することができる。ここで、ワークプロセッサは、設定可能なデータ保持ポリシに従って、生成された統合ワークオブジェクトを処理する。1230のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1230のオペレーションに係る態様は、図6から図8までに関して説明されたように、ワーク処理コンポーネントによって実行され得る。
1235において、データストアは、集約アクションに対応しているデータオブジェクト、データオブジェクトレコード、またはそれらの組合せのセットを、ワークプロセッサから、受信することができる。1235のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1235のオペレーションに係る態様は、図6から図8までに関して説明されたように、抽出コンポーネントによって実行され得る。
1240において、データストアは、データオブジェクト、データオブジェクトレコード、または、それらの組合せのセットを抽出することができる。1240のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1240のオペレーションに係る態様は、図6から図8までに関して説明されたように、抽出コンポーネントによって実行され得る。
1245において、データストアは、データオブジェクト、データオブジェクトレコード、または、それらの組合せの抽出されたセットにアクセスするためのリンクを、ユーザ装置に対してエクスポートすることができる。1245のオペレーションは、ここにおいて説明される方法に従って実行され得る。所定の例において、1245のオペレーションに係る態様は、図6から図8までに関して説明されたように、エクスポートコンポーネントによって実行され得る。
データオブジェクトストアにおけるデータ処理の方法が説明されている。本方法は、前記データオブジェクトストア内に保管されている1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別するステップと、前記1つまたはそれ以上のデータセットに対する1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信するステップと、を含み得る。ここで、各データ保持要求は、前記データオブジェクトストア内に保管されている前記1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットについて実行するアクションに対応しており、かつ、前記1つまたはそれ以上のアクションは、前記設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。本方法は、さらに、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、前記複数のデータ保持要求を評価するステップと、前記1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合するステップであり、各集約アクションは、データセットについて実行する前記アクティブなデータ保持要求のセットのうち1つまたはそれ以上のアクティブなデータ保持要求に対応している、ステップと、各集約アクションについて統合ワークオブジェクトを生成するステップであり、各統合ワークオブジェクトは、前記集約アクションに対応しているワークアイテムタイプ、および、前記データセットに対応しているデータセット識別子を含む、ステップを含み得る。加えて、本方法は、ワークプロセッサ検索要求に応答して、ワークプロセッサへ、前記生成された統合ワークオブジェクトの表示を送信するステップであり、前記ワークプロセッサは、前記設定可能なデータ保持ポリシに従って、前記生成された統合ワークオブジェクトを処理する、ステップを含み得る。
データオブジェクトストアにおけるデータ処理のための装置が説明されている。本装置は、プロセッサ、プロセッサと電気通信するメモリ、および、メモリ内に保管された命令を含み得る。命令は、プロセッサに、前記データオブジェクトストア内に保管されている1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別させ、かつ、前記1つまたはそれ以上のデータセットに対する1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信させる、ように動作可能であり得る。ここで、各データ保持要求は、前記データオブジェクトストア内に保管されている前記1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットについて実行するアクションに対応しており、かつ、ここで、前記1つまたはそれ以上のアクションは、前記設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。前記命令は、さらに、プロセッサに、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、前記複数のデータ保持要求を評価させ、前記1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合させ、ここで、各集約アクションは、データセットについて実行する前記アクティブなデータ保持要求のセットのうち1つまたはそれ以上のアクティブなデータ保持要求に対応しており、かつ、各集約アクションについて統合ワークオブジェクトを生成させ、ここで、各統合ワークオブジェクトは、前記集約アクションに対応しているワークアイテムタイプ、および、前記データセットに対応しているデータセット識別子を含む、ように動作可能であり得る。加えて、前記命令は、プロセッサに、ワークプロセッサ検索要求に応答して、ワークプロセッサへ、前記生成された統合ワークオブジェクトの表示を送信させ、ここで、前記ワークプロセッサは、前記設定可能なデータ保持ポリシに従って、前記生成された統合ワークオブジェクトを処理する、ように動作可能であり得る。
データオブジェクトストアにおけるデータ処理のための非一時的なコンピュータで読取り可能な媒体が説明されている。本非一時的なコンピュータで読取り可能な媒体は、命令を含み得る。命令は、プロセッサに、前記データオブジェクトストア内に保管されている1つまたはそれ以上のデータセットについて設定可能なデータ保持ポリシを識別させ、かつ、前記1つまたはそれ以上のデータセットに対する1つまたはそれ以上のアクションと関連付けされた複数のデータ保持要求を受信させる、ように動作可能であり得る。ここで、各データ保持要求は、前記データオブジェクトストア内に保管されている前記1つまたはそれ以上のデータセットのうち少なくとも1つのデータセットについて実行するアクションに対応しており、かつ、ここで、前記1つまたはそれ以上のアクションは、前記設定可能なデータ保持ポリシに従って、データオブジェクト、データオブジェクトレコード、または、それらの組合せをエクスポートすること、もしくは、削除することに対応している。前記命令は、さらに、プロセッサに、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、前記複数のデータ保持要求を評価させ、前記1つまたはそれ以上のアクティブなアクションを1つまたはそれ以上の集約アクションへと統合させ、ここで、各集約アクションは、データセットについて実行する前記アクティブなデータ保持要求のセットのうち1つまたはそれ以上のアクティブなデータ保持要求に対応しており、かつ、各集約アクションについて統合ワークオブジェクトを生成させ、ここで、各統合ワークオブジェクトは、前記集約アクションに対応しているワークアイテムタイプ、および、前記データセットに対応しているデータセット識別子を含む、ように動作可能であり得る。加えて、前記命令は、プロセッサに、ワークプロセッサ検索要求に応答して、ワークプロセッサへ、前記生成された統合ワークオブジェクトの表示を送信させ、ここで、前記ワークプロセッサは、前記設定可能なデータ保持ポリシに従って、前記生成された統合ワークオブジェクトを処理する、ように動作可能であり得る。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記データオブジェクトストアは、メタデータデータベースと関連付けされている。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体は、さらに、前記複数のデータ保持要求に対応している、テナント識別子、ユーザ識別子、または、それらの組合せを識別するためのプロセス、特徴、手段、または命令を含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体は、さらに、前記テナント識別子、前記ユーザ識別子、または、前記それらの組合せと関連付けされた前記メタデータデータベース内のメタデータに従って、前記1つまたはそれ以上のデータセットを決定するためのプロセス、特徴、手段、または命令を含み得る。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記複数のデータ保持要求は、前記テナント識別子に対応している前記データオブジェクトストアのテナントのプロビジョン解除、または、前記ユーザ識別子に対応している前記データオブジェクトストアの前記テナントのユーザについてのレコード削除に対応している。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、ユーザ装置から、前記設定可能なデータ保持ポリシを受信するためのプロセス、特徴、手段、または命令を含み得る。ここで、前記設定可能なデータ保持ポリシは、前記1つまたはそれ以上のデータセットに対応しているテナントまたはユーザに対するものであり得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記設定可能なデータ保持ポリシは、前記データオブジェクトストアに対する1つまたはそれ以上のグローバルなデータ保持ポリシを無効にする。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、前記生成された統合ワークオブジェクトを、未処理のワークオブジェクトとしてマーク付けするためのプロセス、特徴、手段、または命令を含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、前記ワークプロセッサから、前記ワークプロセッサが前記生成された統合ワークオブジェクトを処理したことの表示を受信するためのプロセス、特徴、手段、または命令を含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、前記ワークプロセッサから受信した前記表示に少なくとも部分的に基づいて、前記生成された統合ワークオブジェクトを、処理済みのワークオブジェクトとしてマーク付けするためのプロセス、特徴、手段、または命令を含み得る。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、1つまたはそれ以上のアクティブなアクションと関連付けされたアクティブなデータ保持要求のセットを決定するために、前記複数のデータ保持要求を評価する前記ステップは、前記複数のデータ保持要求について、有効期限タイムスタンプ、TTL値、シーケンシャルTTL値、または、それらの組合せを識別するステップを含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、現在のタイムスタンプを、前記識別された有効期限タイムスタンプ、TTL値、シーケンシャルTTL値、または、それらの組合せと比較するためのプロセス、特徴、手段、または命令を含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、少なくとも部分的に前記比較に基づいて、前記1つまたはそれ以上のアクティブなアクションを決定するためのプロセス、特徴、手段、または命令を含み得る。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記ワークプロセッサは、少なくとも部分的に、前記集約アクション、および、前記識別された有効期限タイムスタンプ、TTL値、シーケンスTTL値、または、それらの組合せを超える現在のタイムスタンプに基づいて、各ワークオブジェクトのための前記データセットから、データオブジェクトのセット、データオブジェクトレコードのセット、または、それらの組合せを除去し得る。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、前記ワークプロセッサから、前記集約アクションに対応しているデータオブジェクト、データオブジェクトレコード、または、それらの組合せのセットを受信するためのプロセス、特徴、手段、または命令を含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、データオブジェクト、データオブジェクトレコード、または、それらの組合せの前記セットを抽出するためのプロセス、特徴、手段、または命令を含み得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、データオブジェクト、データオブジェクトレコード、または、それらの組合せの前記抽出された前記セットにアクセスするためのリンクを、ユーザ装置に対して、エクスポートするためのプロセス、特徴、手段、または命令を含み得る。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記複数のデータ保持要求を受信するステップは、定期的にデータ保持要求のバッチを取得するステップを含む。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例は、さらに、ワークプロセッサの周期性に従って、複数のワークプロセッサ検索要求を受信するためのプロセス、特徴、手段、または命令を含み得る。ここで、前記複数のワークプロセッサ検索要求の各ワークプロセッサ検索要求は、特定のワークアイテムタイプに対応している。
上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記複数のデータ保持要求は、動的または事前に設定された周期性に従って評価され得る。上述の方法、装置、および、非一時的なコンピュータで読取り可能な媒体に係るいくつかの例において、前記1つまたはそれ以上のデータセットは、非リレーショナルデータベーススキーマでフォーマットされたデータを含む。
上述の方法は、可能な実装を説明していること、そして、オペレーションおよびステップは、再配置され、または、そうでなければ、変更され得ること、そして、他の実装が可能であることが留意されるべきである。さらに、本発明に係る2つまたはそれ以上の態様が組合されてよい。
添付の図面に関して、ここにおいて明らかにされた説明は、例示的な構成を記載しており、そして、実施され得るもの、または、特許請求の範囲内にある全ての実施例を表すものではない。ここにおいて使用される用語「例示的(“exemplary”)」は、「一つの例、インスタンス、または説明として機能する」ことを意味しており、そして、「好ましい」または「他の例よりも有利である」ものではない。詳細な説明は、説明される技術の理解を提供する目的のために特定的な詳細を含んでいる。これらの技術は、しかしながら、これらの具体的な詳細なしに実施され得るものである。いくつかのインスタンスにおいては、説明される実施例の概念を不明瞭にすることを避けるために、周知の構造および装置はブロック図の形式で示されている。
添付の図面において、類似のコンポーネントまたは特徴は、同一の参照ラベルを有し得る。さらに、同じタイプの様々なコンポーネントは、ダッシュ、および、類似のコンポーネント間を区別する二次(second)ラベルによる参照ラベルが後に続くことによって区別され得る。一次参照ラベルだけが明細書において使用される場合に、説明は、二次参照ラベルにかかわりなく、同じ一次参照ラベルを有する類似のコンポーネントのうち任意の1つについて適用可能である。
ここにおいて説明される情報および信号は、多様な異なる技術および技法のいずれかを使用して表され得る。例えば、上記の説明の全体にわたり参照され得る、データ、命令、コマンド、情報、信号、ビット、シンボル、および、チップは、電圧、電流、電磁波、磁場または磁気粒子、光学場または光学粒子、もしくは、それらのあらゆる組合せによって表され得る。
ここにおける開示と関連して説明される種々の例示的なブロックおよびモジュールは、汎用プロセッサ、DSP、ASIC、FPGAまたは他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェアコンポーネント、もしくは、ここにおいて説明される機能を実行するように設計されたそれらの任意の組合せ、を用いて実施され、または実行され得る。汎用プロセッサは、マイクロプロセッサであってよいが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってよい。プロセッサは、また、コンピューティングデバイスの組合せ(例えば、デジタル信号プロセッサ(DSP)とマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと共同の1つまたはそれ以上のマイクロプロセッサ、または、あらゆる他のそうした構成)としても実装され得る。
ここにおいて説明される機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、または、それらの任意の組合せにおいて実装され得る。プロセッサによって実行されるソフトウェアにおいて実装される場合に、機能は、コンピュータで読取り可能な媒体上の1つまたはそれ以上の命令またはコードとして保管され、または、それを介して送信され得る。他の例および実施は、本開示および添付の特許請求の範囲内にある。例えば、ソフトウェアの性質のために、上述の機能は、プロセッサ、ハードウェア、ファームウェア、ハードワイヤリング(hardwiring)、または、これらの任意の組合せによって実行されるソフトウェアを使用して実施され得る。機能を実装する特徴は、また、様々な位置に物理的に配置されてもよく、機能の一部が異なる物理的な場所で実施されるように分散されていることを含んでいる。また、請求項を含み、ここにおいて使用されるように、アイテムのリストにおいて使用されるような「または(“OR”)」(例えば、「のうち少なくとも1つ」または「のうち1つまたはそれ以上」といったフレーズによって前置きされるアイテムのリスト)は、包括的(inclusive)リストを意味する。例えば、A、B、Cのうち少なくとも1つ(“at least one of A, B,or C”)のリストは、AまたはBまたはC、もしくは、ABまたはACまたはBC、もしくは、ABC(つまり、AかつBかつC)を意味する。また、ここにおいて使用されるように、フレーズ「基づいて(“based on”)」も、条件の閉じたセットを参照するものとしては解釈されない。例えば、「条件Aに基づいて」と記載される例示的なステップは、本開示の範囲から逸脱することなく、条件Aおよび条件Bの両方に基づいてよい。別の言葉で言えば、ここにおいて使用されているように、フレーズ「基づいて」は、フレーズ「少なくとも部分的に基づいて」と同様に解釈される。
コンピュータで読取り可能な媒体は、非一時的なコンピュータストレージ媒体、および、ある場所から別の場所へのコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体の両方を含んでいる。非一時的なストレージ媒体は、汎用または専用コンピュータによってアクセスできる任意の利用可能な媒体であってよい。例として、そして、限定することなく、非一時的なコンピュータで読取り可能な媒体は、RAM、ROM、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、コンパクトディスク(CD) ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、もしくは、命令またはデータ構造の形態で所望のプログラムコード手段を運搬または保管するために使用することができ、かつ、汎用または特殊目的のコンピュータ、または、汎用または特殊目的のプロセッサによってアクセスすることができるあらゆる他の非一時的な媒体、を含み得る。また、任意の接続は、適切にコンピュータで読取り可能な媒体と呼ばれる。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波といった無線技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または、赤外線、無線、およびマイクロ波といった無線技術は、媒体の定義に含まれる。ここにおいて使用されるように、ディスク(disk and disc)は、CD、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含む。ここで、ディスクは、たいてい、データを磁気的に再生し、一方で、ディスクは、レーザーを用いてデータを光学的に再生する。上記の組合せも、また、コンピュータで読取り可能な媒体の範囲内に含まれる。
ここにおける説明は、本開示を当業者が製造または使用することを可能にするために提供されている。本開示に対する様々な修正は、当業者にとって容易に明らかであり、そして、ここにおいて定義される一般原理は、本開示の範囲から逸脱することなく、他の変形に対して適用することができる。従って、本開示は、ここにおいて説明される実施例および設計に限定されるものではなく、ここにおいて開示される原理および新規な特徴と一貫性のある最も広い範囲に一致すべきである。