新四季網

在存儲器優化表上的列儲存庫索引的有效維持的製作方法

2023-05-16 01:41:11 2




背景技術:

對於處理事務數據有效的資料庫管理系統的結構有時可能與對於處理分析查詢有效的那些結構相反。因此,有時在被設計用於處理事務數據的資料庫管理系統和被設計用於執行分析查詢的數據倉庫系統之間存在架構區別。各種系統(有時被稱為操作數據倉庫)可以包括適於在其中要執行事務數據處理和分析查詢的場景中使用的機制。



技術實現要素:

本文公開了一種用於資料庫管理的系統和方法。系統可以包括在被激活時在存儲在一個或多個存儲器上的多個結構中維持表的一個或多個計算設備。多個結構可以包括行儲存庫和列儲存庫,並且行儲存庫可以包括與指示與行相對應的列儲存庫中的位置的標識符相關聯的表的行。列儲存庫可以包括表的列的值的子集。系統可以包括具有計算機可讀指令的一個或多個存儲器,計算機可讀指令在由計算設備執行時,使一個或多個計算設備接收存儲行的修改版本的請求。指令可以使系統向第一多個記錄添加指示與行相對應的列儲存庫中的值的邏輯刪除狀態的第一記錄。指令還可以使系統向行儲存庫添加行的修改版本,並且修改標識符以指示列儲存庫不包含與行的修改版本相對應的位置。最後,指令可以使系統向第二多個記錄添加指示尚未被傳播到列儲存庫的行的修改版本的第二記錄。

提供本發明內容以便以簡化的形式介紹將在以下具體實施方式中進一步描述的一些概念。本發明內容不旨在標識所要求保護的主題的關鍵特徵或必要特徵,也不旨在用於限制所要求保護的主題的範圍。

附圖說明

當結合附圖閱讀時,將更好地理解前述發明內容以及以下具體實施方式。為了說明本公開,示出了本公開的各個方面。然而,本公開不限於所討論的特定方面。包括以下附圖:

圖1是示出在事務和數據倉庫應用中具有改進的更新性能的系統的一方面的圖。

圖2a和圖2b是示出包含用於提高更新性能的指令的存儲器的各方面的流程圖。

圖3是示出防止由於系統事務而使用戶事務中止的各方面的圖。

圖4是包括可操作以支持如圖1至圖3所示的計算機實現的方法、電腦程式產品和系統部件的各方面的計算設備的計算環境的框圖。

具體實施方式

存儲器優化的存儲機制可以用於有效的在線事務處理(「oltp」)。另一存儲機制可以用於高效的數據倉庫和分析相關處理。在一些情況下,可能需要同時使用這兩種機制來有效地處理共享數據集。操作數據倉庫(「odw」)可以被描述為可以用於事務處理和分析操作二者的有效處理的系統。本文描述了包括兩種機制的系統。該系統還可以包括用於維持包含在系統中的數據的機制,其可以包括適用於odw場景的混合存儲機制。維持可以包括將存儲在被保持在易失性存儲器中的結構中的行傳輸到被保持在非易失性存儲器中的另一結構,或者從被保持在面向行的數據儲存庫中的結構傳輸到面向列的數據儲存庫。

在以下描述中,在以下描述中使用諸如「更新」、「刪除」、「插入」、「掃描」和「尋找」等操作術語僅出於提供相對參考的目的,而不是意圖暗示任何限制。因此,這些描述僅是一般的資料庫操作處理術語,並且眾所周知,其他術語也可以用於描述資料庫系統中的類似操作含義。

現在參考圖1,一方面,公開了一種在事務和數據倉庫應用中具有改進的更新和維持性能的數據管理系統100。系統100可以包括在被激活時在存儲在一個或多個存儲器101和102上的多個結構中維持表的一個或多個計算設備(未示出)。該結構可以包括行儲存庫和列儲存庫。行儲存庫可以包括與指示與行相對應的列儲存庫中的位置的標識符相關聯的表的行。列儲存庫可以包括表的列的值的子集。在一些情況下,行儲存庫可以被維持在易失性存儲器中,列儲存庫可以被維持在非易失性存儲器中。

系統100還可以由其上存儲有計算機可讀指令的一個或多個存儲器(未示出)組成,這些指令可以由一個或多個計算設備執行以使系統100執行如圖2b所示的示例操作過程260的步驟。參考圖2b,操作251示出了接收存儲行的修改版本的請求。操作252示出了向第一多個記錄添加指示與行相對應的列儲存庫中的值的邏輯刪除狀態的第一記錄。第一多個記錄可以被描述為已刪除的行表,但是其可以以各種各樣的結構來實現。這些結構通常可以是面向行的結構。當處於邏輯刪除狀態時,行的修改版本可以被系統100視為對於掃描或查找操作不可見。

操作253示出了向行儲存庫添加行的修改版本。操作254示出了修改標識符以指示列儲存庫不包含與行的修改版本相對應的位置。操作255示出了使向第二多個記錄添加指示尚未被傳播到列儲存庫的行的修改版本的第二記錄。第二多個記錄可以例如包括引用行儲存庫的尾部的索引。行儲存庫中的行可能處於未傳播狀態。當行被傳播時,可以將存儲在列儲存庫中的行的那些列在物理上複製到列儲存庫內的位置。然而,由尾部引用的那些記錄可以被系統100視為在邏輯上被包括在列儲存庫中,即使尚未被傳播。

在一些方面,第二多個記錄可以包括面向行的結構,並且可以指示邏輯上被包括在列儲存庫中但是尚未被傳播到列儲存庫的多個行。面向行的儲存庫的示例包括可以針對面向行的檢索進行優化的表或索引。

在一些方面,系統100可以包括使系統100至少部分地基於在第二多個記錄中定位行的修改版本來標識行儲存庫中的行的修改版本的傳播狀態的指令。此外,指令可以使系統100在列儲存庫中存儲行的修改版本。列儲存庫中的行的修改版本可以與指示列儲存庫中的行的修改版本的不可見狀態的信息相關聯。不可見狀態可以是指響應於掃描或搜索操作的列儲存庫中的行的修改版本的副本的可訪問性。注意,當在列儲存庫的上下文中使用時,術語行可以指代要被存儲在列儲存庫中的行的列的任何子集,並且可以不是在所有情況下全部引用該行。在各個方面,行的某些列可以從列儲存庫的存儲中被排除。

指令可以使系統100在第一多個記錄中存儲包括指示與行的修改版本相對應的列儲存庫中的位置的第二標識符的第二記錄。第一多個記錄中的第二記錄可以指示列儲存庫中的行的修改版本的邏輯刪除狀態。指令可以使系統100響應於在第二記錄被存儲在第一多個記錄中的時間處掛起的事務的完成來將列儲存庫中的行的修改版本與指示列儲存庫中的可見狀態的信息相關聯。指令還可以使系統100將行儲存庫中的行的修改版本與指示與行的修改版本相對應的列儲存庫中的位置的第二標識符相關聯。指令還可以使系統100從第一多個記錄中移除第二記錄。在一些方面,可以移除第二記錄,從而復原列儲存庫中的行的修改版本的邏輯刪除狀態。

在一些方面,系統100可以包括使系統100進行以下操作的指令:至少部分地基於與修改行相關聯的請求的頻率來選擇用於向列儲存庫傳播的行,以及至少部分地基於執行線性回歸來確定頻率,該線性回歸在包括時間戳和與時間戳相對應的時間值的變量上被執行。另外,另一方面,可以不記錄行儲存庫中的行的修改版本與指示列儲存庫中的位置的第二標識符相關聯,並且系統100可以包括使系統100進行以下操作的指令:至少部分地基於在列儲存庫中定位行的修改版本並且將行儲存庫中的行的修改版本與所恢復的第二標識符相關聯來恢復第二標識符。

一方面,第一記錄可以包括指示列儲存庫中處於邏輯刪除狀態的值的範圍的信息。這可以例如被執行以減少表示列儲存庫中處於邏輯刪除狀態的行所需的條目的數目,這進而可以減少存錄第一多個記錄的添加(即刪除行表)的存錄開銷。

在一些方面,系統100可以包括使系統100將對行儲存庫、列儲存庫、第一多個記錄或第二多個記錄中的至少一個執行的操作與第一事務相關聯的指令。第一事務可以與指示由系統發起的第一事務的信息相關聯。此外,響應於接收到在由客戶端發起的第二事務的上下文中訪問行的請求,可以使得第一事務中止,並且可以確定第一事務沒有被提交。

在一些方面,系統100可以包括使系統100響應於確定要掃描列儲存庫來至少部分地基於合併列儲存庫中的值、第一多個記錄中指示邏輯刪除狀態的信息以及第二多個記錄中指示尚未被傳播到列儲存庫的行的信息來執行合併操作的指令,其中相對於時間戳來執行合併操作。合併操作可以組合在列儲存庫和刪除的行表之間執行連接操作以便減去刪除的行,以及將連接的結果與行儲存庫的尾部組合,因為該部分表示尚未被傳播到列儲存庫的行。

另一方面,系統100可以由一個或多個易失性存儲器101和一個或多個非易失性存儲器102組成。系統100還可以由其上存儲有可以由一個或多個計算設備執行的計算機可讀指令的一個或多個存儲器(未示出)組成。指令可以使系統100從存儲在易失性存儲器101中的多個行中選擇行。所選擇的行可以處於用於從易失性存儲器101遷移到非易失性存儲器102的就緒狀態。在替代方面,指令可以指示系統100一次選擇多於一行。

此外,系統100可以在非易失性存儲器102中存儲所選擇的行,使得行與指示行的不可見狀態的信息相關聯。標識符可以由系統100形成,並且隨後可以用於在非易失性存儲器102中定位行。在易失性存儲器101或非易失性存儲器102中的至少一個中,可以存儲指示行的刪除狀態的信息。然而,刪除狀態可以被描述為偽刪除狀態,因為行或來自行的列的子集要從易失性存儲器101傳播到非易失性存儲器102,而不是從表中刪除。更一般地,行或來自行的列的子集可以從行儲存庫傳播到列儲存庫。傳播行或來自行的列的子集可以包括將行從行儲存庫拷貝到列儲存庫。在各種情況下,面向行的儲存庫可以被維持在易失性存儲器101中,並且列儲存庫可以被維持在非易失性存儲器102中。傳播也可以被稱為或包括遷移、拷貝、壓縮或複製行或來自行的列的子集。指示偽刪除狀態的信息可以由標識符和時間戳兩者組成。該信息可以存儲在第一事務的上下文中。

系統100可以修改易失性存儲器101以將行與標識符相關聯,並且還可以刪除指示行的刪除狀態的信息。在各個方面,增量儲存庫和刪除位圖可以存在於類似於本文中所描述的系統100的資料庫管理系統中。然而,在一些情況下可以省略增量儲存庫和刪除位圖。下面可以在圖2a中描述具有改進的更新性能的系統100的附加細節。

在另一特定方面,公開了一種在事務和數據倉庫應用中具有改進的更新性能的方法。在一些方面,方法可以在包括一個或多個易失性存儲器101和一個或多個非易失性存儲器102的系統100中實現。一個或多個存儲器上還可以在其上存儲可以由一個或多個更多的計算設備(未圖示)執行的計算機可讀指令。該方法可以包括從存儲在易失性存儲器101中的多個行中選擇行。所選擇的行可以處於用於從易失性存儲器101遷移到非易失性存儲器102的就緒狀態。在替代方面,可以一次選擇多於一行。

此外,方法可以包括將所選擇的行存儲在非易失性存儲器102中,使得行與指示行的不可見狀態的信息相關聯。可以生成標識符,並且可以使用標識符來在非易失性存儲器102中定位行。在易失性存儲器101或非易失性存儲器102中的至少一個中,可以存儲指示行的刪除狀態的信息。該信息可以由標識符和時間戳二者組成。該信息可以存儲在第一事務的上下文中。響應於完成的第一事務,可以在第一事務被提交時掛起附加事務。可以允許附加事務完成。這可以被描述為允許在使該行在非易失性存儲器中可見之前排出掛起事務。在排出之後,然後可以將行與指示行的可見狀態的信息相關聯。

該方法可以包括修改易失性存儲器101以將行與標識符相關聯。此外,可以刪除指示行的刪除狀態的信息。在一些方面,增量儲存庫和刪除位圖可以存在於資料庫管理系統中。然而,在其他方面,可以省略增量儲存庫和刪除位圖。下面可以在圖2中描述具有改進的更新性能的方法的附加細節。

在另一方面,公開了一種用於在事務和數據倉庫應用中的改進更新性能的計算機可讀存儲介質。計算機可讀存儲介質上可以存儲在由計算系統的一個或多個處理器執行時使從存儲在易失性存儲器101中的多個行中選擇行的計算機可讀指令。所選擇的行可以處於用於從易失性存儲器101遷移到非易失性存儲器102的就緒狀態。在一些方面中,可以一次選擇多於一行。

此外,介質可以包括用於將所選擇的行存儲在非易失性存儲器102中使得行與指示行的不可見狀態的信息相關聯的指令。可以生成標識符,並且可以使用該標識符在非易失性存儲器102中定位行。在易失性存儲器101或非易失性存儲器102中的至少一個中,可以存儲指示行的刪除狀態的信息。該信息可以包括標識符和時間戳。該信息可以存儲在第一事務的上下文中。當第一個事務完成時,可以在第一個事務被提交時掛起附加事務。因此,然後可以將行與指示行的可見狀態的信息相關聯。

介質可以包括用於修改易失性存儲器101以將行與標識符相關聯的指令。介質還可以包括用於刪除指示行的刪除狀態的信息的指令。在一些方面,增量儲存庫和刪除位圖可以存在於類似於本文中所描述的介質的資料庫管理系統中。然而,在一些方面,可以不實現增量儲存庫和刪除位圖的添加。下面可以在圖2中描述具有改進的更新性能的介質的附加細節。

現在參考圖2a並且還參考圖1,示出了流程圖200。流程圖200示出了由數據倉庫系統100中的至少一個計算設備闡述和執行的指令。參考框201,可以使系統100從存儲在易失性存儲器101中的多個行中選擇一行。行的選擇可以基於行處於用於遷移到非易失性存儲器102的就緒狀態。多個行可以按逐行的方式存儲。多個行可以存儲在至少一個或多個表103中,並且每個表103可以以有序的方式(例如,作為b樹)或無序的方式(例如,作為堆)來實現。輔助索引可以用於掃描表103的尾部以幫助對行的選擇。在各種情況下,表103的尾部可以主要包括尚未被傳播的行。

在框201中,易失性存儲器101中的行的選擇可以基於與可以指示行處於非傳播狀態的信息相關聯的行來選擇。一方面,該信息可以包括時間戳連同標識符。框204描述了行與之相關聯的信息的內容。

再次參考框201,行的選擇可以基於更新的頻率。在系統100中,所選擇的行可以處於其未被頻繁更新的狀態。一方面,未被頻繁更新的行可以最適合被系統100選擇,以用於從易失性存儲器101到非易失性存儲器102的遷移。以此方式,系統100可以實現近似地標識來自易失性存儲器101中的多個行中的冷行的門限值。門限值可以由值(例如,一百萬行)表示。冷行可以在系統100中被描述為在預定時間內沒有改變的行。這些冷行可以是在框201中用於從易失性存儲器101傳播到非易失性存儲器102的所選擇的行。行從易失性存儲器101到非易失性存儲器102的遷移可以由超出門限值的若干事件來觸發。在另一示例中,可以通過確定時間段已經過去(例如,一小時)或接收到用於執行遷移的用戶命令(例如,資料庫管理員命令)來觸發遷移。用於使遷移的觸發事件的上述示例不旨在暗示任何限制。可以包括其他觸發事件來替代上面概述的示例。

框202包括將所選擇的行存儲在非易失性存儲器102中。所選擇的行可以與指示行的不可見狀態的信息相關聯。行的不可見狀態可以創建其中並發掃描可能無法定位或標識所選擇的行的情況。換言之,可以防止或阻止所選擇的行對系統100的任何並發掃描的可見性。在系統100中發生崩潰的情況下,不可見地選擇的行可以保持隱藏。所選擇的行和一個或多個附加行可以被組合以形成記錄,其中記錄可以在被存儲在非易失性存儲器102中時被壓縮。與所選擇的行相似,一個或多個附加行也可以從存儲在易失性存儲器101中的多個行中選擇。包括所選擇的行和一個或多個附加行的壓縮記錄可以存儲在非易失性存儲器102中的列儲存庫104中。列儲存庫104可以按逐列的方式存儲記錄。

框203示出形成可以用於在非易失性存儲器102中定位行的標識符。標識符可以指示行在列組內的位置。例如,標識符可以是指示行在列儲存庫104中的位置的關鍵值。作為另一示例,標識符也可以是行標識符(rid)。在一些方面,rid可以是由行組標識符和元組(tuple)標識符組成的物理行標識符。在一些方面,rid可以由可以指示行在列儲存庫104中的位置的數值表示。rid值可以存儲在表103中的隱藏列中,並且因此可以隱藏用戶可見性。隱藏列可以被稱為rid列105。例如,如果rid列105中的rid值是「-1」,則系統100可以發現該值無效。然而,無效指示允許系統100識別所選擇的行尚未被壓縮或從易失性存儲器101遷移到非易失性存儲器102。換言之,無效的rid值可以指示行處於非傳播狀態。在另一示例中,系統100中的內部構造的索引108還可以幫助系統100使用「-1」的rid值定位行。內部構造的索引108可以是過濾的散列索引。過濾的散列索引可以被解釋為僅是一個示例,而不旨在暗示可以用於內部構造的索引108的索引類型的任何限制。

框204示出了在易失性存儲器101和非易失性存儲器102中的至少一個或兩者中存儲指示行的刪除狀態的信息。該信息可以包括標識符以及時間戳。時間戳可以由數值指示。例如,值「10」可以被分配並且作為時間戳與行相關聯。時間戳的值可以在掃描期間幫助系統100。與可能不滿足由用戶或由系統本身提出的某個或預測值的時間戳值相關聯的行可以在掃描期間被過濾掉或忽略。作為另一示例,從時間戳「10」開始的掃描將看不到從時間戳「11」開始發生的行的刪除。此外,信息可以存儲在第一事務的上下文中。如果第一事務還沒有被提交,則系統100可以使第一事務在用戶或客戶端發起第二事務的情況下被中止。當請求由請求訪問相同所選擇的行的用戶或客戶端發起時,可以發生第二事務。再次參考框204,指示行的刪除狀態的信息可以存儲在可能不是用戶可見的附加表107中。換言之,系統100正在執行偽刪除。偽刪除可以在從表103中移動或刪除行並且將行插入到附加表107中時發生。該附加表107可以包含已經從第一表103邏輯刪除的列儲存庫104中的行的標識符。如上所述,標識符可以是關鍵值或rid值。換言之,附加表107可以是刪除的行表107。刪除的行表107可以類似於來自資料庫倉庫系統的先前方面的刪除位圖而起作用,並且存儲從表103中邏輯刪除的行的標識符。因此,一方面,刪除的行表107或刪除的行表107的一部分仍然可以被轉換為刪除位圖,並且類似於刪除位圖而起作用。在一些方面,代替利用不保存與每行相關聯的時間戳的刪除位圖,使用刪除的行表107可以允許系統100標識每行的版本或保存的狀態。以這種方式,可以實現快照語義。

框205示出了在第一事務完成之後並且在附加事務掛起時作出響應。在第一事務被提交的情況下,附加事務可以是掛起的,並且當第一事務完成時,指示行的可見狀態的信息可以與所選擇的行相關聯。所選擇的行可以從不可見狀態變換或改變為可見的壓縮狀態。對於另一示例,當指示行的刪除狀態的信息包括包括標識符的信息以及時間戳存儲在刪除的行表107中時,可以提交第一事務。附加事務可以掛起,直到附加事務的最後的活動時間戳到達第一事務的提交時間戳。可以通過建立事務排出——當第一事務提交可以與來自事務排出的依賴相關聯時可以是活動的任何事務,來實現等待或掛起周期。當附加事務或最後的這樣的事務提交、中止或輸入驗證時,系統100可以做出到排出對象的回調。系統100然後可以對新線程排隊以將行的狀態從不可見改變為可見,並且執行下面的框206和207的功能。可以實現該示例,使得沒有事務可以觀察新行組中的數據。

框206示出了修改易失性存儲器101以將行與標識符相關聯。標識符可以幫助系統100標識要修改的行。

框207示出了執行指示行的刪除狀態的信息的刪除。

某些方面可能導致大量的日誌數據被寫入。例如,遷移100萬行可能導致生成300萬條日誌記錄。在被插入到刪除的行表107期間,可以每行生成一個記錄。在從刪除的行表107刪除期間,可以每行生成一個記錄。在表103的rid列的更新期間,可以每行生成一個記錄。各方面可以通過優化掉幾乎所有這種日誌開銷來提高系統100的日誌效率。可以通過標識在數據遷移期間發生在相同行組id內的元組id的範圍內的插入和刪除,來優化刪除的行表107的日誌記錄。例如,對給定行組中的1和n之間的所有元組id進行插入(對於n大約為1,000,000),並且刪除可能發生在大約1到1000元組的範圍內。

因此,一方面,系統100可以被改變以將模式應用於刪除的行表107。代替存儲rid,系統100可以包括三列:行組id、在行組內的開始元組id和在行組內的結束元組id。

刪除的行表107上的範圍索引變為前兩列上的索引。刪除的行表107中的行的含義是具有特定的行組id(rowgroupid)並且具有在特定的id範圍內的元組id(tupleid)的每個rid可以認為被刪除。

對於一個事務將操作的rid的每個部分,一個記錄的插入可以發生在刪除的行表107中。此外,當行從不可見狀態改變為壓縮可見狀態時,可以從隨後刪除的行表107中刪除一個記錄。相應的一個記錄可以包括範圍,並且表103中的rid值可以用與記錄的範圍相對應的最新的rid值來更新。如果發生任何寫-寫衝突,則將單個記錄插入到刪除的行表107中以重新隱藏由於這種衝突而不能傳播的行。

因此,上述優化可以有助於減少在刪除的行表107上的日誌記錄的數目。在一些方面,優化可以將量從兩百萬個日誌記錄減少到大約兩千個日誌記錄。

現在參考圖3,示出了系統100中具有時間戳(301、302)的表103。在圖300中,進一步描述了在系統100中實現門限值的示例。在每個表103中並且對於每一行,當創建行時,時間戳可以與行相關聯。可以將這些事務時間戳映射到實際時間。這樣,可以創建周期性地確定當前事務時間戳的後臺線程(未示出)。最後的n個這樣的時間戳的數據可以保存在系統100上。n可以是如本文所描述的算法的配置參數。在編譯數據之後,可以使用最小二乘線性近似來構建最佳擬合線,該最小二乘線性近似允許事務時間戳近似地轉換為在時間戳當前的先前周期的數目。周期可以是指周期性任務。

可以構建時間直方圖(未示出),使得直方圖近似地指定表103的尾部中有多少行在特定時間段內。在n次之前的所有周期可以集中在一起。當將新行插入表103的尾部時,將增量1加到直方圖的最後時間段中。另一方面,當從表103的尾部刪除行時,可以使用上述線性近似將所創建的時間戳轉換為時間段。因此,從直方圖中的該周期減去1的減少。當運行上述周期性背景線程時,直方圖可以被移位一個周期(使得兩個最舊的周期可以被組合,並且最新的周期與初始為零的行可以被引入)。該實現可以使用圓形陣列來保持對周期的跟蹤,使得每個陣列元素可以是分區的計數器。分區可允許減少不同線程之間的計數器上的競爭。

如在框201中所描述的,當數據遷移後臺任務檢查是否準許數據遷移時,後臺任務可以從上述直方圖接收關於最舊周期中的行數的信息。因此,如果該數目超過門限值(例如,一百萬),則可以調用從易失性存儲器101向非易失性存儲器102的所選擇的行的遷移。在替代實施例中,如果直方圖的大小是n,並且提前直方圖的後臺任務的時間段是t秒,則一方面,t=30秒且n=120可以導致行遷移的一小時的門限值。

可以檢查每行的開始時間戳301,並且對其可見的行可以不被遷移和壓縮,除非它比以上述方式保存的最舊的時間戳早。另外,具有非無限結束時間戳302的任何行可以被跳過,即使它對於數據遷移事務是可見的並且具有非常舊的開始時間戳值。系統100傳播這樣的行可能不是有益的,因為它可能最終導致寫-寫衝突。當數據遷移事務在用戶事務可以訪問行之前更新行時,可能發生寫-寫衝突。在一些方面,可以避免傳播具有寫-寫衝突的行。例如,系統100可以向表103的結束時間戳添加位310,其將標識該更新是否由後臺數據遷移完成。

因此,如果用戶事務請求對行r的更新,但是發現其結束時間戳被設置為具有開啟的上述位310的時間戳e,則用戶事務可以使用e作為可見性時間戳再次尋找該行。這將允許系統100找到數據遷移事務在刪除行r時插入的新行r'。然後,用戶事務可以更新r'。除了隱藏的rid欄位,後臺事務不改變任何東西,所以r和r'可以包含相同的用戶數據。

此外,如果用戶事務請求對行r的更新但是發現其結束時間戳是不能肯定的(例如,r由還沒有被提交的事務t更新),則系統100可以檢查t是否為系統數據遷移事務。如果t是系統數據遷移事務,則可以存在系統100執行的兩個實例。

如果t已經獲得了提交時間戳,則可以發生第一實例,然後用戶事務可以如上所述使用t的提交時間戳而不是行的結束時間戳繼續進行。這將使得用戶事務對t採取提交依賴性,否則以與上述相同的方式起作用。然而,如果t中止,則用戶事務可能仍然中止。

如果t沒有獲得提交時間戳,則可以發生第二實例,然後用戶事務可迫使t中止。一方面,系統100可以在繼續進行之前等待t中止;然而,在其他方面,如果期望非阻塞,則系統100可以繼續進行其自己的更新(覆蓋t做了什麼)。利用該替代方面,系統100數據遷移代碼可以包括後處理邏輯,以處理t撤消其自己的改變和用戶事務撤消之間的競爭條件。

在一個示例實現中:

1.一種在事務和數據倉庫應用中具有改進的更新性能的資料庫管理系統,所述系統包括:

一個或多個計算設備,所述一個或多個計算設備在被激活時在被存儲在一個或多個存儲器上的多個結構中維持表,所述多個結構包括行儲存庫和列儲存庫,所述行儲存庫包括所述表的與指示所述列儲存庫中的位置的標識符相關聯的行,所述列儲存庫中的所述位置與所述表的所述行相對應,所述列儲存庫包括針對所述表的列的值的子集;

一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在由所述一個或多個計算設備執行時,使所述系統至少:

接收存儲所述行的修改版本的請求;

向第一多個記錄添加第一記錄,所述第一記錄指示所述列儲存庫中與所述行相對應的值的邏輯刪除狀態;

向所述行儲存庫添加所述行的所述修改版本並且修改所述標識符以指示所述列儲存庫不包含與所述行的所述修改版本相對應的位置;以及

向第二多個記錄添加第二記錄,所述第二記錄指示所述行的所述修改版本尚未被傳播到所述列儲存庫。

2.根據權利要求1所述的系統,其中所述第二多個記錄包括面向行的結構並且指示邏輯上被包括在所述列儲存庫中但是尚未被傳播到所述列儲存庫的多個行。

3.根據權利要求1所述的系統,還包括一個或多個存儲器,所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時使所述系統至少:

至少部分地基於在所述第二多個記錄中定位行的所述修改版本來標識所述行儲存庫中的所述行的所述修改版本的傳播狀態;

在所述列儲存庫中存儲所述行的所述修改版本,其中所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的所述行的所述修改版本的不可見狀態的信息相關聯;

在所述第一多個記錄中存儲第二記錄,所述第二記錄包括指示與所述行的所述修改版本相對應的所述列儲存庫中的位置的第二標識符,所述第一多個記錄中的所述第二記錄指示所述列儲存庫中的所述行的所述修改版本的邏輯刪除狀態;

響應於在所述第二記錄被存儲在所述第一多個記錄中的時間處掛起的事務的完成,將所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的可見狀態的信息相關聯;

將所述行儲存庫中的所述行的所述修改版本與所述第二標識符相關聯,所述第二標識符指示與所述行的所述修改版本相對應的所述列儲存庫中的位置;以及

從所述第一多個記錄中移除所述第二記錄,其中從所述第一多個記錄中移除所述第二記錄對應於復原所述列儲存庫中的所述行的所述修改版本的所述邏輯刪除狀態。

4.根據權利要求3所述的系統,還包括一個或多個存儲器,所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時,使所述系統至少:

至少部分地基於與修改所述行相關聯的請求的頻率來選擇用於向所述列儲存庫傳播的行;以及

至少部分地基於執行線性回歸來確定所述頻率,所述線性回歸在包括時間戳和與所述時間戳相對應的時間值的變量上被執行。

5.根據權利要求3所述的系統,其中將所述行儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的位置的所述第二標識符相關聯沒有被存錄,所述系統還包括一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時,使所述系統至少:

至少部分地基於在所述列儲存庫中定位所述行的所述修改版本以及將所述行儲存庫中的所述行的所述修改版本與所恢復的第二標識符相關聯,來恢復所述第二標識符。

6.根據權利要求1所述的系統,其中所述第一記錄包括指示所述列儲存庫中處於邏輯刪除狀態的值的範圍的信息。

7.根據權利要求1所述的系統,還包括一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時,使所述系統至少:

將對所述行儲存庫、所述列儲存庫、所述第一多個記錄或所述第二多個記錄中的至少一項執行的操作與第一事務相關聯;

將所述第一事務與指示所述第一事務由所述系統發起的信息相關聯;以及

響應於接收到在由客戶端發起的第二事務的上下文中訪問所述行的請求來使所述第一事務中止、並且確定所述第一事務尚未被提交。

8.根據權利要求1所述的系統,還包括一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時,使所述系統至少:

響應於確定要掃描所述列儲存庫,至少部分地基於合併所述列儲存庫中的值、所述第一多個記錄中指示邏輯刪除狀態的信息以及所述第二多個記錄中指示尚未被傳播到所述列儲存庫的行的信息來執行合併操作,其中所述合併操作相對於時間戳而被執行。

9.一種用於在事務和數據倉庫應用中高效更新的方法,所述方法包括:

在被存儲在一個或多個存儲器上的多個結構中維持表,所述多個結構包括行儲存庫和列儲存庫,所述行儲存庫包括所述表的與指示所述列儲存庫中的位置的標識符相關聯的行,所述列儲存庫中的所述位置與所述表的所述行相對應,所述列儲存庫包括針對所述表的列的值的子集;

響應於存儲所述行的修改版本的請求,向第一多個記錄添加第一記錄,所述第一記錄指示所述列儲存庫中與所述行相對應的值的邏輯刪除狀態;

向所述行儲存庫添加所述行的所述修改版本並且修改所述標識符以指示所述列儲存庫不包含與所述行的所述修改版本相對應的位置;以及

向第二多個記錄添加第二記錄,所述第二記錄指示所述行的修改版本尚未被傳播到所述列儲存庫。

10.根據權利要求9所述的方法,其中所述第二多個記錄包括面向行的結構並且指示邏輯上被包括在所述列儲存庫中但是尚未被傳播到所述列儲存庫的多個行。

11.根據權利要求9所述的方法,還包括:

至少部分地基於在所述第二多個記錄中定位所述行的所述修改版本來標識所述行儲存庫中的所述行的所述修改版本的傳播狀態;

在所述列儲存庫中存儲所述行的所述修改版本,其中所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的所述行的所述修改版本的不可見狀態的信息相關聯;

在所述第一多個記錄中存儲第二記錄,所述第二記錄包括指示與所述行的所述修改版本相對應的所述列儲存庫中的位置的第二標識符,所述第一多個記錄中的所述第二記錄指示所述列儲存庫中的所述行的所述修改版本的邏輯刪除狀態;

響應於在所述第二記錄被存儲在所述第一多個記錄中的時間處掛起的事務的完成,將所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的可見狀態的信息相關聯;

將所述行儲存庫中的所述行的所述修改版本與所述第二標識符相關聯,所述第二標識符指示與所述行的所述修改版本相對應的所述列儲存庫中的位置;以及

從所述第一多個記錄中刪除所述第二記錄,其中從所述第一多個記錄中刪除所述第二記錄對應於復原所述列儲存庫中的所述行的所述修改版本的所述邏輯刪除狀態。

12.根據權利要求11所述的方法,還包括:

至少部分地基於與修改行相關聯的請求的頻率來選擇用於向所述列儲存庫傳播的所述行;以及

至少部分地基於執行對包括時間戳和與所述時間戳相對應的時間值的變量執行的線性回歸來確定所述頻率。

13.根據權利要求11所述的方法,其中將所述行儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的位置的所述第二標識符相關聯沒有被存錄,還包括:至少部分地基於在所述列儲存庫中定位所述行的所述修改版本以及將所述行儲存庫中的所述行的修改版本與所恢復的第二標識符相關聯,來恢復所述第二標識符。

14.根據權利要求9所述的方法,其中所述第一記錄包括指示所述列儲存庫中處於邏輯刪除狀態的值的範圍的信息。

15.根據權利要求9所述的方法,還包括:

將對所述行儲存庫、所述列儲存庫、所述第一多個記錄或所述第二多個記錄中的至少一項執行的操作與第一事務相關聯;

將所述第一事務與指示由所述系統發起的所述第一事務的信息相關聯;以及

響應於接收到在由客戶端發起的第二事務的上下文中訪問所述行的請求來使所述第一事務中止,並且確定所述第一事務沒有被提交。

16.根據權利要求9所述的方法,還包括響應於確定要掃描所述列儲存庫,至少部分地基於合併所述列儲存庫中的值、所述第一多個記錄中指示邏輯刪除狀態的信息以及所述第二多個記錄中指示尚未被傳播到所述列儲存庫的行的信息來執行合併操作,其中所述合併操作相對於時間戳而被執行。

17.一種計算機可讀存儲介質,在所述計算機可讀存儲介質上存儲有計算機可讀指令,所述計算機可讀指令在由一個或多個計算設備執行時使所述計算設備:

響應於存儲表的行的修改版本的請求,向第一多個記錄添加第一記錄,所述第一記錄指示所述列儲存庫中與所述行相對應的值的邏輯刪除狀態;

向行儲存庫添加所述行的所述修改版本,並且修改標識符以指示所述列儲存庫不包含與所述行的所述修改版本相對應的位置,所述標識符指示與所述行相對應的所述列儲存庫中的位置;以及

向第二多個記錄添加第二記錄,所述第二記錄指示所述行的所述修改版本沒有被傳播到所述列儲存庫。

18.根據權利要求17所述的計算機可讀存儲介質,還包括計算機可讀指令,當由所述一個或多個計算設備執行時,使所述計算設備:

至少部分地基於在所述第二多個記錄中定位行的所述修改版本,來標識所述行儲存庫中的所述行的所述修改版本的傳播狀態;

在所述列儲存庫中存儲所述行的所述修改版本,其中所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的所述行的所述修改版本的不可見狀態的信息相關聯;

在所述第一多個記錄中存儲第二記錄,所述第二記錄包括指示與所述行的所述修改版本相對應的所述列儲存庫中的位置的第二標識符,所述第一多個記錄中的所述第二記錄指示所述列儲存庫中的所述行的所述修改版本的邏輯刪除狀態;

響應於在所述第二記錄被存儲在所述第一多個記錄中的時間處掛起的事務的完成,將所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的可見狀態的信息相關聯;

將所述行儲存庫中的所述行的所述修改版本與所述第二標識符相關聯,所述第二標識符指示與所述行的所述修改版本相對應的所述列儲存庫中的位置;以及

從所述第一多個記錄中刪除所述第二記錄,其中從所述第一多個記錄中刪除所述第二記錄對應於復原所述列儲存庫中的所述行的所述修改版本的所述邏輯刪除狀態。

19.根據權利要求18所述的計算機可讀存儲介質,還包括計算機可讀指令,所述計算機可讀指令在由所述一個或多個計算設備執行時,使所述計算設備:

至少部分地基於與修改行相關聯的請求的頻率來選擇用於向所述列儲存庫傳播的所述行;以及

至少部分地基於執行對包括時間戳和與所述時間戳相對應的時間值的變量執行的線性回歸來確定所述頻率。

20.根據權利要求17所述的計算機可讀存儲介質,還包括計算機可讀指令,所述計算機可讀指令在由所述一個或多個計算設備執行時,使所述計算設備:

將對所述行儲存庫、所述列儲存庫、所述第一多個記錄或所述第二多個記錄中的至少一項執行的操作與第一事務相關聯;

將所述第一事務與指示所述第一事務由所述系統發起的信息相關聯;以及

響應於接收到在由客戶端發起的第二事務的上下文中訪問所述行的請求來使所述第一事務中止,並且確定所述第一事務尚未被提交。

在另一示例實現中:

1.一種在事務和數據倉庫應用中具有改進的更新性能的資料庫管理系統,所述系統包括:

一個或多個計算設備,所述一個或多個計算設備在被激活時在被存儲在一個或多個存儲器上的多個結構中維持表,所述多個結構包括行儲存庫和列儲存庫,所述行儲存庫包括所述表的與指示所述列儲存庫中的位置的標識符相關聯的行,所述列儲存庫中的所述位置與所述表的所述行相對應,所述列儲存庫包括針對所述表的列的值的子集;

一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在由所述一個或多個計算設備執行時,使所述系統至少:

接收存儲所述行的修改版本的請求;

向第一多個記錄添加第一記錄,所述第一記錄指示所述列儲存庫中與所述行相對應的值的邏輯刪除狀態;

向所述行儲存庫添加所述行的所述修改版本並且修改所述標識符以指示所述列儲存庫不包含與所述行的所述修改版本相對應的位置;以及

向第二多個記錄添加第二記錄,所述第二記錄指示所述行的所述修改版本尚未被傳播到所述列儲存庫。

2.根據權利要求1所述的系統,其中所述第二多個記錄包括面向行的結構並且指示邏輯上包括在所述列儲存庫中但是尚未被傳播到所述列儲存庫的多個行。

3.根據權利要求1或2中的任一項所述的系統,還包括一個或多個存儲器,所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時,使所述系統至少:

至少部分地基於在所述第二多個記錄中定位行的所述修改版本來標識所述行儲存庫中的所述行的所述修改版本的傳播狀態;

在所述列儲存庫中存儲所述行的所述修改版本,其中所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的所述行的所述修改版本的不可見狀態的信息相關聯;

在所述第一多個記錄中存儲第二記錄,所述第二記錄包括指示與所述行的所述修改版本相對應的所述列儲存庫中的位置的第二標識符,所述第一多個記錄中的所述第二記錄指示所述列儲存庫中的所述行的所述修改版本的邏輯刪除狀態;

響應於在所述第二記錄被存儲在所述第一多個記錄中的時間處掛起的事務的完成,將所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的可見狀態的信息相關聯;

將所述行儲存庫中的所述行的所述修改版本與所述第二標識符相關聯,所述第二標識符指示與所述行的所述修改版本相對應的所述列儲存庫中的位置;以及

從所述第一多個記錄中移除所述第二記錄,其中從所述第一多個記錄中移除所述第二記錄對應於復原所述列儲存庫中的所述行的所述修改版本的所述邏輯刪除狀態。

4.根據權利要求1-3中的任一項所述的系統,還包括一個或多個存儲器,所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時使所述系統至少:

至少部分地基於與修改所述行相關聯的請求的頻率來選擇用於向所述列儲存庫傳播的行;以及

至少部分地基於執行線性回歸來確定所述頻率,所述線性回歸在包括時間戳和與所述時間戳相對應的時間值的變量上被執行。

5.根據權利要求3所述的系統,其中將所述行儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的位置的所述第二標識符相關聯沒有被存錄,所述系統還包括一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時使所述系統至少:

至少部分地基於在所述列儲存庫中定位所述行的所述修改版本以及將所述行儲存庫中的所述行的所述修改版本與所恢復的第二標識符相關聯,來恢復所述第二標識符。

6.根據權利要求1-5中任一項所述的系統,其中所述第一記錄包括指示所述列儲存庫中處於邏輯刪除狀態的值的範圍的信息。

7.根據權利要求1-6中任一項所述的系統,還包括一個或多個存儲器,在所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時使所述系統至少:

將對所述行儲存庫、所述列儲存庫、所述第一多個記錄或所述第二多個記錄中的至少一項執行的操作與第一事務相關聯;

將所述第一事務與指示所述第一事務由所述系統發起的信息相關聯;以及

響應於接收到在由客戶端發起的第二事務的上下文中訪問所述行的請求來使所述第一事務中止,並且確定所述第一事務尚未被提交。

8.根據權利要求1-7中的任一項所述的系統,還包括一個或多個存儲器,所述一個或多個存儲器上存儲有計算機可讀指令,所述計算機可讀指令在執行時使所述系統至少:

響應於確定要掃描所述列儲存庫,至少部分地基於合併所述列儲存庫中的值、所述第一多個記錄中指示邏輯刪除狀態的信息以及所述第二多個記錄中指示尚未被傳播到所述列儲存庫的行的的信息來執行合併操作,其中所述合併操作相對於時間戳而被執行。

9.一種用於在事務和數據倉庫應用中高效更新的方法,所述方法包括:

在被存儲在一個或多個存儲器上的多個結構中維持表,所述多個結構包括行儲存庫和列儲存庫,所述行儲存庫包括所述表的與指示所述列儲存庫中的位置的標識符相關聯的行,所述列儲存庫中的所述位置與所述表的所述行相對應,所述列儲存庫包括針對所述表的列的值的子集;

響應於存儲所述行的修改版本的請求,向第一多個記錄添加第一記錄,所述第一記錄指示所述列儲存庫中與所述行相對應的值的邏輯刪除狀態;

向所述行儲存庫添加所述行的所述修改版本並且修改所述標識符以指示所述列儲存庫不包含與所述行的所述修改版本相對應的位置;以及

向第二多個記錄添加第二記錄,所述第二記錄指示所述行的修改版本尚未被傳播到所述列儲存庫。

10.根據權利要求9所述的方法,其中所述第二多個記錄包括面向行的結構並且指示邏輯上被包括在所述列儲存庫中但是尚未被傳播到所述列儲存庫的多個行。

11.根據權利要求9或10中的任一項所述的方法,還包括:

至少部分地基於在所述第二多個記錄中定位所述行的所述修改版本來標識所述行儲存庫中的所述行的所述修改版本的傳播狀態;

在所述列儲存庫中存儲所述行的所述修改版本,其中所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的所述行的所述修改版本的不可見狀態的信息相關聯;

在所述第一多個記錄中存儲第二記錄,所述第二記錄包括指示與所述行的所述修改版本相對應的所述列儲存庫中的位置的第二標識符,所述第一多個記錄中的所述第二記錄指示所述列儲存庫中的所述行的所述修改版本的邏輯刪除狀態;

響應於在所述第二記錄被存儲在所述第一多個記錄中的時間處掛起的事務的完成,將所述列儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的可見狀態的信息相關聯;

將所述行儲存庫中的所述行的所述修改版本與所述第二標識符相關聯,所述第二標識符指示與所述行的所述修改版本相對應的所述列儲存庫中的位置;以及

從所述第一多個記錄中刪除所述第二記錄,其中從所述第一多個記錄中刪除所述第二記錄對應於復原所述列儲存庫中的所述行的所述修改版本的所述邏輯刪除狀態。

12.根據權利要求11所述的方法,還包括:

至少部分地基於與修改行相關聯的請求的頻率來選擇用於向所述列儲存庫傳播的所述行;以及

至少部分地基於執行對包括時間戳和與所述時間戳相對應的時間值的變量執行的線性回歸來確定所述頻率。

13.根據權利要求11或12中任一項所述的方法,其中將所述行儲存庫中的所述行的所述修改版本與指示所述列儲存庫中的位置的所述第二標識符相關聯沒有被存錄,所述方法還包括至少部分地基於在所述列儲存庫中定位所述行的所述修改版本以及將所述行儲存庫中的所述行的修改版本與所恢復的第二標識符相關聯,來恢復所述第二標識符。

14.根據權利要求9-13中任一項所述的方法,其中所述第一記錄包括指示所述列儲存庫中處於邏輯刪除狀態的值的範圍的信息。

15.一種計算機可讀存儲介質,承載用於操作在事務和數據倉庫應用中具有改進的更新性能的資料庫管理系統的指令,所述計算機可讀存儲介質上存儲有計算機可讀指令,所述計算機可讀指令在由一個或多個計算設備執行時使所述計算設備:

響應於存儲表的行的修改版本的請求,向第一多個記錄添加第一記錄,所述第一記錄指示與所述行相對應的列儲存庫中的值的邏輯刪除狀態,所述列儲存庫被維持在非易失性存儲器中;

向被維持在易失性存儲器中的行儲存庫添加所述行的所述修改版本並且修改標識符以指示所述列儲存庫不包含與所述行的所述修改版本相對應的位置,所述標識符指示與所述行相對應的所述列儲存庫中的位置;以及

向第二多個記錄添加第二記錄,所述第二記錄指示所述行的所述修改版本尚未被傳播到所述列儲存庫。

圖4描繪了包括可操作以支持根據本公開的計算機實現的方法、電腦程式產品和系統部件的各方面的計算設備410的計算環境400的框圖。在說明性方面,計算設備410可以包括圖1的表103、圖1的列儲存庫104、以及圖1的刪除的行表107中的一個或多個:。圖1的表103、圖1的列儲存庫104、以及圖1的刪除的行表107中的每個可以包括或使用計算設備410或其一部分來實現。

計算設備410包括至少一個處理器420和系統存儲器430。取決於計算設備的配置和類型,系統存儲器430可以是易失性的(諸如隨機存取存儲器或「ram」)、非易失性的(諸如只讀存儲器或「rom」、閃速存儲器、和即使在未提供電力時也維持存儲的數據的類似的存儲器設備)、或兩者的某種組合。系統存儲器430通常包括作業系統432、一個或多個應用程式平臺434、一個或多個應用、和程序數據。例如,系統存儲器430可以包括資料庫應用436和資料庫索引438(例如,列索引和逐行索引)。

在說明性方面,資料庫應用436可以包括數據傳輸部件。在另一說明性方面中,處理器420可以被配置為執行查詢處理引擎以執行引用逐列式資料庫索引和逐行式資料庫索引的資料庫應用436的資料庫查詢。

計算設備410還可以具有附加的特徵或功能。例如,計算設備410還可以包括可移除和/或不可移除的附加數據存儲設備,諸如磁碟、光碟、磁帶和標準大小或快閃記憶體卡。這種附加存儲在圖4中通過可移除存儲器440和不可移除存儲器450示出。系統存儲器430、可移除存儲器440和不可移除存儲器450都是計算機存儲介質的示例。任何這樣的計算機存儲介質可以是計算設備410的一部分。

計算設備410還可以具有輸入設備460,諸如鍵盤、滑鼠、筆、語音輸入設備、觸摸輸入設備等。還可以包括輸出設備470,諸如顯示器,揚聲器,印表機等。計算設備410還包含允許計算設備410通過有線或無線網絡與其他計算設備490通信的一個或多個通信連接480。

應當理解,圖4中所示的所有部件或設備或在以上段落中描述的其它部件對於支持如本文中所描述的各方面並不是必要的。例如,可移除存儲裝置440可以是可選的。

本文中所描述的各方面的說明旨在提供對各個方面的結構的一般理解。這些圖示不旨在用作對利用本文中所描述的結構或方法的裝置和系統的所有元件和特徵的完整描述。在回顧本公開時,很多其它方面對於本領域技術人員來說是顯而易見的。可以從本公開中利用和導出其他方面,使得可以進行結構和邏輯替換和改變而不脫離本公開的範圍。因此,本公開和附圖被認為是說明性的而不是限制性的。

應當理解,本文中所描述的各種技術可以結合硬體或軟體或在適當時結合兩者的組合來實現。本文中所提出的主題可以被實現為計算機過程、計算機控制的裝置或計算系統或製品,諸如計算機可讀存儲介質。

技術、或其某些方面或部分可以例如採取在被實現為存儲設備的有形存儲介質或存儲介質中實施的程序代碼(即指令)的形式,諸如磁或光介質、易失性或非易失性介質、諸如ram(例如,sdram、ddrsdram、rdram、sram等)、rom等的存儲設備可以被包括在計算設備中或可由計算設備訪問。當程序代碼被加載到諸如計算機等機器中並由機器執行時,機器變成用於實踐本公開的裝置。在可編程計算機上執行程序代碼的情況下,計算設備通常包括處理器、處理器可讀的存儲介質(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備和至少一個輸出設備。可以實現或利用結合本公開描述的過程的一個或多個程序,例如通過使用應用程式編程接口(「api」)、可重用控制項等。這樣的程序優選地以高級過程或面向對象的程式語言來實現以與計算機系統通信。然而,如果需要,程序可以以彙編或機器語言實現。在任何情況下,語言可以是編譯或解釋語言,並且與硬體實現結合。

儘管已經用對結構特徵和/或動作專用的語言描述了本主題,但是應當理解,所附權利要求中定義的主題不一定限於上述具體特徵或動作。相反,上面描述的具體特徵和動作被公開作為實現權利要求的示例,並且其他等同特徵和動作旨在在權利要求的範圍內。

提供對各方面的先前描述以使得所屬領域的技術人員能夠製作或使用所述方面。對這些方面的各種修改對於本領域技術人員將是顯而易見的,並且在不脫離本公開的範圍的情況下,本文中定義的一般原理可以應用於其他方面。因此,本公開不旨在限於本文中所示的各方面,而是要被賦予可能與由所附權利要求限定的原理和新穎特徵一致的最寬範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀