نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخهپه تیرو برخو کې (1, 2) موږ د ګلوبلونو په اړه د ونې په توګه خبرې وکړې، پدې کې به موږ ګلوبلونه د سپیر سري په توګه وګورو.

سپین سرې یو ډول صف دی په کوم کې چې ډیری ارزښتونه ورته ارزښت لري.

په عمل کې، سپیر اریونه ډیری وختونه دومره لوی وي چې د ورته عناصرو سره د حافظې په نیولو کې هیڅ معنی نلري. له همدې امله، دا د دې معنی لري چې سپارس صفونه په داسې ډول پلي کړي چې حافظه د ورته ارزښتونو ذخیره کولو کې ضایع نشي.
په ځینو پروګرامینګ ژبو کې، سپارس صفونه پخپله ژبه کې شامل دي، د مثال په توګه په J, مطلب. د پروګرام کولو نورې ژبې ځانګړي کتابتونونه لري چې تاسو ته د پلي کولو اجازه درکوي. د C++ لپاره - ایګین او نور.

نړیوال د سپیر صفونو پلي کولو لپاره ښه نوماندان دي ځکه چې:

  1. دوی یوازې د ځانګړو نوډونو ارزښتونه ساتي او د نه تعریف شوي ارزښتونو ذخیره نه کوي؛
  2. د نوډ ارزښت ته د لاسرسي لپاره انٹرفیس خورا ورته دی چې څومره د پروګرام کولو ژبې څو اړخیز سري عنصر ته لاسرسی پلي کوي.
    Set ^a(1, 2, 3)=5
    Write ^a(1, 2, 3)

  3. ګلوبل د ډیټا ذخیره کولو لپاره د کافي ټیټې کچې جوړښت دی ، نو له همدې امله دا د سرعت عالي ځانګړتیاوې لري (په هر ثانیه کې له سلګونو زرو څخه تر لسګونو ملیون لیږدونه ، د هارډویر پورې اړه لري ، لاندې وګورئ). 1)

څرنګه چې ګلوبل یو دوامداره جوړښت دی ، نو دا معنی لري چې په دوی باندې د سپکو صفونو رامینځته کول کله چې دمخه پیژندل شوي وي چې د RAM مقدار به کافي نه وي.

د سپارس سرې پلي کولو یو له ملکیتونو څخه دا دی چې ځینې ډیفالټ ارزښت بیرته راستانه کړي که چیرې نا تعریف شوي حجرې ته لاسرسی رامینځته شي.

دا د فنکشن په کارولو سره پلي کیدی شي $GET په COS کې. دا بیلګه د 3-dimensional صف په پام کې نیسي.

SET a = $GET(^a(x,y,z), defValue)

کوم کارونه سپیر صفونو ته اړتیا لري او نړیوال څنګه مرسته کولی شي؟

اتصال (تړون) میټریکس

داسې میټریکونه د ګرافونو استازیتوب لپاره کارول کیږي:

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

په ښکاره ډول، څومره چې ګراف لوی وي، په میټریکس کې به ډیر صفر وي. که، د مثال په توګه، موږ د ټولنیز شبکې ګراف واخلو او د ورته میټریکس په بڼه یې وړاندې کړو، نو دا به تقریبا په بشپړه توګه له صفر څخه جوړه وي، د بیلګې په توګه. یو نرۍ صف به وي.

Set ^m(id1, id2) = 1 
Set ^m(id1, id3) = 1 
Set ^m(id1, id4) = 1 
Set ^m(id1) = 3 
Set ^m(id2, id4) = 1 
Set ^m(id2, id5) = 1 
Set ^m(id2) = 2
....

په دې مثال کې، موږ په نړیواله کچه خوندي کوو ^m د ارتباط میټرکس، او همدارنګه په هر نوډ کې د څنډو شمیر (څوک له چا سره ملګري دي او د ملګرو شمیر).

که چیرې په ګراف کې د عناصرو شمیر له 29 ملیون څخه ډیر نه وي (دا شمیره د 8 * محصول په توګه اخیستل کیږي. اعظمي کرښه اندازه)، دا دی، د دې ډول میټریکونو ذخیره کولو لپاره خورا اقتصادي لاره د بټ تارونه دي، ځکه چې د دوی پلي کول په ځانګړي ډول لوی تشې غوره کوي.

د بټ تارونو سره لاسوهنه د فنکشن لخوا ترسره کیږي $BIT.

; установка бита
SET $BIT(rowID, positionID) = 1
; получение бита
Write $BIT(rowID, positionID)

د دولتي ماشین لیږد میز

څرنګه چې د محدود اتوماتیک لیږد ګراف یو عادي ګراف دی، نو د محدود اتوماتیک لیږد جدول ورته نږدې میټریکس دی چې پورته یې بحث شوی.

د سیلولر اتوماتیک

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

ترټولو مشهور سیلولر اتوماتیک دی لوبه "ژوند"، کوم چې د دې قواعدو له امله (کله چې حجره ډیری ګاونډیان ولري ، دا مړ کیږي) یو نادر صف دی.

سټیفن وولفرام په دې باور دی چې سیلولر اتوماتیک دي د ساینس نوی ډګر. په 2002 کې، هغه د 1280 مخونو کتاب، د ساینس نوی ډول خپور کړ، په کوم کې چې هغه په ​​​​پراخه توګه استدلال کوي چې د سیلولر اتوماتیک پرمختګونه جلا نه دي، مګر تلپاتې دي او د ساینس په ټولو برخو کې لوی اغیز لري.

دا ثابته شوې چې په کمپیوټر کې د اجرا وړ هر ډول الګوریتم د سیلولر اتوماتیک په کارولو سره پلي کیدی شي. د سیلولر آټوماټا د متحرک چاپیریال او سیسټمونو ماډل کولو لپاره کارول کیږي، د الګوریتمیک ستونزو حل کولو او نورو موخو لپاره.

که موږ یو لوی ساحه ولرو او موږ اړتیا لرو چې د سیلولر اتوماتیک ټول منځني حالتونه ثبت کړو، نو دا د نړیوالو کارولو لپاره معنی لري.

کارتوګرافي

لومړی شی چې زما ذهن ته راځي کله چې د سپیر صفونو کارولو خبره راځي د نقشې کولو دندې دي.

د یوې قاعدې په توګه، په نقشه کې ډیر خالي ځای شتون لري. که نقشه د لوی پکسلونو په توګه وښودل شي، نو د ځمکې 71٪ پکسلونه به د سمندر لخوا اشغال شي. سپین صف. او که تاسو یوازې د انساني لاسونو کار پلي کړئ ، نو خالي ځای به له 95٪ څخه ډیر وي.

البته، هیڅوک د راسټر اریونو په بڼه نقشه نه ذخیره کوي؛ د ویکتور استازیتوب کارول کیږي.
مګر د ویکتور نقشې څه دي؟ دا یو ډول چوکاټ او پولی لائنونه او پولیګونونه دي چې ټکي لري.
په لازمي ډول د دوی ترمینځ د ټکو او اړیکو ډیټابیس.

زموږ د کهکشان نقشه کولو لپاره د ګیا ټیلسکوپ ماموریت یو له خورا هوښیار نقشې کولو ماموریت دی. په انځوریزه توګه، زموږ کهکشان، لکه د ټول کائنات په څیر، یو پرله پسې سپیر سري دی: د خالي کولو لوی ځایونه چې په کې نادر کوچني ټکي شتون لري - ستوري. خالي ځای 99,999999…….% دی. زموږ د کهکشان نقشه ذخیره کولو لپاره، یو نړیوال ډیټابیس غوره شوی - کیچ.

زه په دې پروژه کې د نړیوالو جوړښتونو دقیق جوړښت نه پوهیږم، زه فکر کوم چې دا ورته ورته دی:

Set ^galaxy(b, l, d) = 1; Номер звезды по каталогу, если есть
Set ^galaxy(b, l, d, "name") = "Sun"
Set ^galaxy(b, l, d, "type") = "normal" ; варианты blackhole, quazar, red_dwarf и т.д.
Set ^galaxy(b, l, d, "weight") = 14E50
Set ^galaxy(b, l, d, "planetes") = 7
Set ^galaxy(b, l, d, "planetes", 1) = "Mercury"
Set ^galaxy(b, l, d, "planetes", 1, weight) = 1E20
...

چیرته چې b، l، d دي کهکشان همغږي عرض البلد، عرض البلد او لمر ته فاصله.

د ګلوبلونو انعطاف وړ جوړښت تاسو ته اجازه درکوي د ستورو او سیارټونو هر ډول اړین ځانګړتیاوې خوندي کړئ، ځکه چې د ګلوبلونو اډې لږې دي.

زموږ د کائنات نقشه ذخیره کولو لپاره ، کیچ نه یوازې د دې انعطاف لپاره غوره شوی و ، بلکه د دې وړتیا لپاره هم غوره شوی و چې د ډیټا جریان خورا ګړندی ذخیره کړي ، پداسې حال کې چې په ورته وخت کې د ګړندي لټونونو لپاره شاخص ګلوبل رامینځته کوي.

که موږ ځمکې ته راستانه شو، نو په نړۍ کې د کارتوګرافیک پروژې رامینځته شوې OpenStreetMap XAPI او د OpenStreetMap یوه فورک - FOSM.

په دې وروستیو کې hackathon Caché جغرافیایي شاخصونه پلي شوي جغرافیايي. موږ د تطبیق توضیحاتو سره د لیکوالانو یوې مقالې ته انتظار باسو.

په OpenStreetMap XAPI کې په نړیواله کچه د ځایي شاخصونو پلي کول

څخه اخیستل شوي انځورونه دا پریزنټشن.

ټوله نړۍ په چوکونو ویشل شوې، بیا فرعي مربع، او فرعي مربع په فرعي فرعي مربع، او داسې نور. په عموم کې، موږ د ذخیره کولو لپاره یو درجه بندي جوړښت ترلاسه کوو کوم چې نړیوال جوړ شوي.

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

په هر وخت کې، موږ کولی شو نږدې سمدستي د غوښتل شوي مربع غوښتنه وکړو یا یې پاکه کړو، او ټول فرعي مربع به بیرته یا پاک شي.

په نړۍ کې ورته سکیم په څو لارو پلي کیدی شي.

اختیار 1:

Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 1) = idПервойТочки
Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 2) = idВторойТочки
...

اختیار 2:

Set ^m('abacdabcdabacdabcda', 1) = idПервойТочки
Set ^m('abacdabcdabacdabcda', 2) = idВторойТочки
...

په دواړو حالتونو کې، د COS/M کارول ستونزمن نه دي چې د هرې کچې په مربع کې موقعیت لرونکي پوائنټونو غوښتنه وکړي. دا به یو څه اسانه وي چې په لومړي اختیار کې په هره کچه د مربع ټوټې ځای پاک کړئ، مګر دا په ندرت سره اړین دی.

د ټیټې کچې مربع څخه یوه بیلګه:

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

او دلته د XAPI پروژې څخه ډیری نړیوال شتون لري: په نړۍ کې د شاخص استازیتوب:

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

نړیوال ^ لار د ټکو ذخیره کولو لپاره کارول کیږي پولیلین (سړکونه، واړه سیندونه، او نور) او پولګون (تړلې سیمې: ودانۍ، ځنګلونه، او نور).

په ګلوبلونو کې د سپین سرې کارولو سخت طبقه بندي.

  1. موږ د ځانګړو شیانو همغږي ذخیره کوو او د دوی حالتونه (نقشه کول، سیلولر اتومات)
  2. موږ سپیر میټریک ذخیره کوو.

د 2 قضیې لپاره) کله چې د ځانګړي همغږۍ غوښتنه وکړئ چیرې چې عنصر ارزښت نه وي ټاکل شوی، موږ باید د ډیفالټ سپارس سري عنصر ارزښت ترلاسه کړو.

هغه بونس چې موږ یې ترلاسه کوو کله چې په نړۍ کې څو اړخیز میټریکونه ذخیره کوو

په چټکۍ سره لیرې کړئ او / یا د ځای ټوټې وټاکئ چې د قطارونو، الوتکو، کیوبونو، او داسې نورو ضرب دي. د هغو قضیو لپاره چیرې چې د انټیجر شاخصونه کارول کیږي، د چټکو لرې کولو او/یا د ځای د ټوټو د راوړلو وړتیا چې د قطارونو، الوتکو، کیوبونو، او داسې نورو څخه وي. ممکن ګټور وي.

ټیم وژني موږ کولی شو یو واحد عنصر یا قطار یا حتی ټوله الوتکه حذف کړو. د ګلوبل ملکیتونو څخه مننه ، دا خورا ګړندی پیښیږي - د عنصر په واسطه د عنصر لرې کولو څخه زرګونه ځله ګړندی.

ارقام په نړیواله کچه درې اړخیزه لړۍ ښیي ^a او د حذف کولو مختلف ډولونه.

نړیوال د معلوماتو ذخیره کولو لپاره خزانه تلوارونه دي. سپین سرې. دریمه برخه

د پیژندل شوي شاخصونو په کارولو سره د ځای ټوټې غوره کولو لپاره ، تاسو کولی شئ کمانډ وکاروئ ضميمه.

د کالم متغیر کې د میټریکس کالم غوره کول:

; Зададим трёхмерный разреженный массив 3x3x3
Set ^a(0,0,0)=1,^a(2,2,0)=1,^a(2,0,1)=1,^a(0,2,1)=1,^a(2,2,2)=1,^a(2,1,2)=1
Merge Column = ^a(2,2)
; Выведем переменную Column
Zwrite Column

پایله:

Column(0)=1
Column(2)=1

هغه څه چې د کالم متغیر په اړه په زړه پوري دي دا دي چې موږ یو سپیر سري هم لرو ، کوم چې باید له لارې هم لاسرسی ومومي $GET، ځکه چې ډیفالټ ارزښتونه پدې کې ندي ساتل شوي.

د ځای ټوټې غوره کول د فنکشن په کارولو سره د کوچني برنامه له لارې هم ترسره کیدی شي د ډالرو امر. دا په ځانګړې توګه په هغو ځایونو کې مناسب دی چې شاخصونه یې اندازه شوي ندي (کارتوګرافي).

پایلې

اوسنۍ زمانه د نوي هوښیارۍ دندې رامینځته کوي. ګرافونه د ملیاردونو عمودیو څخه جوړ کیدی شي، نقشه د ملیاردونو نقطو څخه جوړه شوې وي، او ځینې ممکن حتی وغواړي چې خپل کائنات د سیلولر اتوماتیک باندې پرمخ بوځي (1, 2).

کله چې د نادر صفونو څخه د معلوماتو حجم نور په RAM کې مناسب نه وي، مګر تاسو اړتیا لرئ چې ورسره کار وکړئ، نو دا د نړیوالو او COS په اړه د ورته پروژو پلي کولو امکان په پام کې نیولو سره ارزښت لري.

له پاملرنې څخه مو مننه! موږ په نظرونو کې ستاسو پوښتنو او هیلو ته په تمه یو.

دادعا: دا مقاله او دې ته زما نظرونه زما نظر دی او د InterSystems Corporation رسمي دریځ سره هیڅ تړاو نلري.

سرچینه: www.habr.com

Add a comment