本技術(shù)涉及計(jì)算機(jī),特別涉及一種離散數(shù)據(jù)標(biāo)識(shí)生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、具有大量離散數(shù)據(jù)、對(duì)象管理需求的應(yīng)用領(lǐng)域,例如數(shù)據(jù)庫索引、文件句柄、套接字句柄等等,存在對(duì)離散數(shù)據(jù)分配唯一標(biāo)識(shí)的需求。
2、現(xiàn)有技術(shù)中離散數(shù)據(jù)唯一標(biāo)識(shí)分配機(jī)制,一般使用二叉平衡樹記錄所分配的標(biāo)識(shí)。但當(dāng)標(biāo)識(shí)數(shù)量到億級(jí)以上的,現(xiàn)有的分配機(jī)制存在分配慢,耗費(fèi)內(nèi)存多的問題。
3、因此,如何降低分配離散數(shù)據(jù)唯一標(biāo)識(shí)內(nèi)存耗費(fèi),進(jìn)而提升分配效率是目前需要解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,本技術(shù)提出了一種離散數(shù)據(jù)標(biāo)識(shí)生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
2、在本技術(shù)實(shí)施的第一方面,首先提供一種離散數(shù)據(jù)標(biāo)識(shí)生成方法,其特征在于,所述方法包括:
3、確定目標(biāo)離散數(shù)據(jù),并獲取為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)的離散位向量的第一數(shù)量,以及所述離散位向量中已分配標(biāo)識(shí)位的第二數(shù)量;
4、若所述第一數(shù)量小于或等于第一預(yù)設(shè)閾值,則增加新建離散位向量,并根據(jù)所述新建離散位向量為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí);
5、若所述第一數(shù)量大于所述第一預(yù)設(shè)閾值,則根據(jù)所述第一數(shù)量計(jì)算得到離散位向量總位數(shù)量,并根據(jù)所述第二數(shù)量與所述離散位向量總位數(shù)量之間的數(shù)量關(guān)系為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)。
6、可選地,所述增加新建離散位向量,并根據(jù)所述新建離散位向量為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí),包括:
7、增加新建離散位向量;
8、獲取所述新建離散位向量的首位對(duì)應(yīng)的首位位數(shù);
9、將所述首位位數(shù)作為所述目標(biāo)離散數(shù)據(jù)的標(biāo)識(shí),并將所述新建離散位向量的首位對(duì)應(yīng)的首位位號(hào)置為預(yù)設(shè)的第一位號(hào)。
10、可選地,所述根據(jù)所述第一數(shù)量計(jì)算得到離散位向量總位數(shù)量,包括:
11、將所述第一數(shù)量乘以單位離散位向量的位數(shù)量得到離散位向量總位數(shù)量。
12、可選地,所述根據(jù)所述第二數(shù)量與所述離散位向量總位數(shù)量之間的數(shù)量關(guān)系為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí),包括:
13、根據(jù)所述第二數(shù)量與所述離散位向量總位數(shù)量確定可用分配次數(shù);
14、根據(jù)所述可用分配次數(shù),利用偽隨機(jī)數(shù)的方式為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)。
15、可選地,所述根據(jù)所述第二數(shù)量與所述離散位向量總位數(shù)量確定可用分配次數(shù),包括:
16、若所述第二數(shù)量乘以預(yù)設(shè)倍數(shù)得到的已分配標(biāo)識(shí)位數(shù)量閾值大于或等于所述離散位向量總位數(shù)量,則確定可用分配次數(shù)為預(yù)設(shè)的第一次數(shù);
17、若所述第二數(shù)量乘以預(yù)設(shè)倍數(shù)得到的已分配標(biāo)識(shí)位數(shù)量閾值小于所述離散位向量總位數(shù)量,則確定可用分配次數(shù)為預(yù)設(shè)的第二次數(shù)。
18、可選地,所述根據(jù)所述可用分配次數(shù),利用偽隨機(jī)數(shù)的方式為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí),包括:
19、利用偽隨機(jī)數(shù)產(chǎn)生第一隨機(jī)數(shù),并將所述第一隨機(jī)數(shù)作為第一索引;
20、獲取所述第一索引在所述離散位向量對(duì)應(yīng)的第一目標(biāo)位;
21、獲取所述第一目標(biāo)位對(duì)應(yīng)的第一目標(biāo)位數(shù)和第一目標(biāo)位號(hào);
22、將預(yù)設(shè)的實(shí)際嘗試次數(shù)疊加預(yù)設(shè)的計(jì)數(shù)值;
23、若所述可用分配次數(shù)為所述第一次數(shù),則比較所述第一目標(biāo)位號(hào)、所述第一位號(hào)以及預(yù)設(shè)的第二位號(hào),并比較所述實(shí)際嘗試次數(shù)與所述第一次數(shù);
24、若所述第一目標(biāo)位號(hào)等于所述第一位號(hào)且所述實(shí)際嘗試次數(shù)大于或等于所述第一次數(shù),則返回所述增加新建離散位向量的步驟;
25、若所述第一目標(biāo)位號(hào)等于所述第一位號(hào)且所述實(shí)際嘗試次數(shù)小于所述第一次數(shù),則返回所述利用偽隨機(jī)數(shù)產(chǎn)生第一隨機(jī)數(shù)的步驟;
26、若所述第一目標(biāo)位號(hào)等于預(yù)設(shè)的第二位號(hào),則將所述第一目標(biāo)位數(shù)作為目標(biāo)離散數(shù)據(jù)的標(biāo)識(shí);
27、若所述可用分配次數(shù)為所述第二次數(shù),則比較所述第一目標(biāo)位號(hào)、所述第一位號(hào)以及預(yù)設(shè)的第二位號(hào);
28、若所述第一目標(biāo)位號(hào)等于所述第一位號(hào),則返回所述利用偽隨機(jī)數(shù)產(chǎn)生第一隨機(jī)數(shù)的步驟;
29、若所述第一目標(biāo)位號(hào)等于預(yù)設(shè)的第二位號(hào),則將所述第一目標(biāo)位數(shù)作為目標(biāo)離散數(shù)據(jù)的標(biāo)識(shí)。
30、可選地,所述方法還包括:
31、確定待釋放的離散數(shù)據(jù),并獲取所述待釋放的離散數(shù)據(jù)對(duì)應(yīng)的釋放標(biāo)識(shí);
32、獲取所述離散位向量每一位的位數(shù),并根據(jù)所述離散位向量每一位的位數(shù)與所述釋放標(biāo)識(shí),確定與所述釋放標(biāo)識(shí)相等的第二目標(biāo)位數(shù);
33、獲取所述第二目標(biāo)位數(shù)對(duì)應(yīng)的第二目標(biāo)位,并將所述第二目標(biāo)位對(duì)應(yīng)的第二目標(biāo)位號(hào)置為所述第二位號(hào)。
34、在本技術(shù)實(shí)施的第二方面,還提供一種離散數(shù)據(jù)標(biāo)識(shí)生成裝置,其特征在于,所述裝置包括:
35、獲取模塊,用于確定目標(biāo)離散數(shù)據(jù),并獲取為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)的離散位向量的第一數(shù)量,以及所述離散位向量中已分配標(biāo)識(shí)位的第二數(shù)量;
36、第一處理模塊,用于若所述第一數(shù)量小于或等于第一預(yù)設(shè)閾值,則增加新建離散位向量,并根據(jù)所述新建離散位向量為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí);
37、第二處理模塊,用于若所述第一數(shù)量大于所述第一預(yù)設(shè)閾值,則根據(jù)所述第一數(shù)量計(jì)算得到離散位向量總位數(shù)量,并根據(jù)所述第二數(shù)量與所述離散位向量總位數(shù)量之間的數(shù)量關(guān)系為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)。
38、可選地,所述第一處理模塊包括:
39、新增模塊,用于增加新建離散位向量;
40、首位位數(shù)模塊,用于獲取所述新建離散位向量的首位對(duì)應(yīng)的首位位數(shù);
41、第一分配模塊,用于將所述首位位數(shù)作為所述目標(biāo)離散數(shù)據(jù)的標(biāo)識(shí),并將所述新建離散位向量的首位對(duì)應(yīng)的首位位號(hào)置為預(yù)設(shè)的第一位號(hào)。
42、可選地,所述第二處理模塊包括:
43、第一計(jì)算模塊,用于將所述第一數(shù)量乘以單位離散位向量的位數(shù)量得到離散位向量總位數(shù)量。
44、可選地,所述第二處理模塊還包括:
45、第二計(jì)算模塊,用于根據(jù)所述第二數(shù)量與所述離散位向量總位數(shù)量確定可用分配次數(shù);
46、第二分配模塊,用于根據(jù)所述可用分配次數(shù),利用偽隨機(jī)數(shù)的方式為所述目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)。
47、可選地,所述第二計(jì)算模塊包括:
48、第一計(jì)算單元,用于若所述第二數(shù)量乘以預(yù)設(shè)倍數(shù)得到的已分配標(biāo)識(shí)位數(shù)量閾值大于或等于所述離散位向量總位數(shù)量,則確定可用分配次數(shù)為預(yù)設(shè)的第一次數(shù);
49、第二計(jì)算單元,用于若所述第二數(shù)量乘以預(yù)設(shè)倍數(shù)得到的已分配標(biāo)識(shí)位數(shù)量閾值小于所述離散位向量總位數(shù)量,則確定可用分配次數(shù)為預(yù)設(shè)的第二次數(shù)。
50、可選地,所述第二分配模塊還包括:
51、索引獲取單元,用于利用偽隨機(jī)數(shù)產(chǎn)生第一隨機(jī)數(shù),并將所述第一隨機(jī)數(shù)作為第一索引;
52、第一獲取單元,用于獲取所述第一索引在所述離散位向量對(duì)應(yīng)的第一目標(biāo)位;
53、第二獲取單元,用于獲取所述第一目標(biāo)位對(duì)應(yīng)的第一目標(biāo)位數(shù)和第一目標(biāo)位號(hào);
54、計(jì)數(shù)單元,用于將預(yù)設(shè)的實(shí)際嘗試次數(shù)疊加預(yù)設(shè)的計(jì)數(shù)值;
55、第一比較單元,用于若所述可用分配次數(shù)為所述第一次數(shù),則比較所述第一目標(biāo)位號(hào)、所述第一位號(hào)以及預(yù)設(shè)的第二位號(hào),并比較所述實(shí)際嘗試次數(shù)與所述第一次數(shù);
56、第一處理單元,用于若所述第一目標(biāo)位號(hào)等于所述第一位號(hào)且所述實(shí)際嘗試次數(shù)大于或等于所述第一次數(shù),則返回所述增加新建離散位向量的步驟;
57、第二處理單元,用于若所述第一目標(biāo)位號(hào)等于所述第一位號(hào)且所述實(shí)際嘗試次數(shù)小于所述第一次數(shù),則返回所述利用偽隨機(jī)數(shù)產(chǎn)生第一隨機(jī)數(shù)的步驟;
58、第三處理單元,用于若所述第一目標(biāo)位號(hào)等于預(yù)設(shè)的第二位號(hào),則將所述第一目標(biāo)位數(shù)作為目標(biāo)離散數(shù)據(jù)的標(biāo)識(shí);
59、第二比較單元,用于若所述可用分配次數(shù)為所述第二次數(shù),則比較所述第一目標(biāo)位號(hào)、所述第一位號(hào)以及預(yù)設(shè)的第二位號(hào);
60、第四處理單元,用于若所述第一目標(biāo)位號(hào)等于所述第一位號(hào),則返回所述利用偽隨機(jī)數(shù)產(chǎn)生第一隨機(jī)數(shù)的步驟;
61、第五處理單元,用于若所述第一目標(biāo)位號(hào)等于預(yù)設(shè)的第二位號(hào),則將所述第一目標(biāo)位數(shù)作為目標(biāo)離散數(shù)據(jù)的標(biāo)識(shí)。
62、可選地,所述裝置還包括:
63、釋放標(biāo)識(shí)模塊,用于確定待釋放的離散數(shù)據(jù),并獲取所述待釋放的離散數(shù)據(jù)對(duì)應(yīng)的釋放標(biāo)識(shí);
64、第二目標(biāo)位數(shù)獲取模塊,用于獲取所述離散位向量每一位的位數(shù),并根據(jù)所述離散位向量每一位的位數(shù)與所述釋放標(biāo)識(shí),確定與所述釋放標(biāo)識(shí)相等的第二目標(biāo)位數(shù);
65、釋放模塊,用于獲取所述第二目標(biāo)位數(shù)對(duì)應(yīng)的第二目標(biāo)位,并將所述第二目標(biāo)位對(duì)應(yīng)的第二目標(biāo)位號(hào)置為所述第二位號(hào)。
66、在本技術(shù)實(shí)施的第三方面,還提供一種電子設(shè)備,其特征在于,包括處理器、存儲(chǔ)器及存儲(chǔ)在存儲(chǔ)器上并能夠在處理器上運(yùn)行的計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的離散數(shù)據(jù)標(biāo)識(shí)生成方法。
67、在本技術(shù)實(shí)施的第四方面,還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上所述的離散數(shù)據(jù)標(biāo)識(shí)生成方法。
68、本技術(shù)實(shí)施例具有以下優(yōu)點(diǎn):
69、在本技術(shù)實(shí)施例中,確定目標(biāo)離散數(shù)據(jù),并獲取為目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)的離散位向量的第一數(shù)量,以及離散位向量中已分配標(biāo)識(shí)位的第二數(shù)量;若第一數(shù)量小于或等于第一預(yù)設(shè)閾值,則增加新建離散位向量,并根據(jù)新建離散位向量為目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí);若第一數(shù)量大于第一預(yù)設(shè)閾值,則根據(jù)第一數(shù)量計(jì)算得到離散位向量總位數(shù)量,并根據(jù)第二數(shù)量與離散位向量總位數(shù)量之間的數(shù)量關(guān)系為目標(biāo)離散數(shù)據(jù)分配標(biāo)識(shí)。本技術(shù)實(shí)施例通過基于離散位向量的數(shù)量動(dòng)態(tài)調(diào)整分配策略,實(shí)現(xiàn)了對(duì)大量離散數(shù)據(jù)的高效、靈活標(biāo)識(shí)分配,并大大減少了標(biāo)識(shí)管理所需的內(nèi)存。