Հասանելի է Apache Cassandra 4.0 DBMS

Apache Software Foundation-ը ներկայացրել է բաշխված DBMS Apache Cassandra 4.0-ի թողարկումը, որը պատկանում է noSQL համակարգերի դասին և նախատեսված է ստեղծելու մեծ ծավալների և հուսալի պահեստավորում հսկայական քանակությամբ տվյալների, որոնք պահվում են ասոցիատիվ զանգվածի (հեշի) տեսքով: Cassandra 4.0 թողարկումը համարվում է պատրաստ արտադրության իրականացման համար և արդեն փորձարկվել է Amazon-ի, Apple-ի, DataStax-ի, Instaclustr-ի, iland-ի և Netflix-ի ենթակառուցվածքներում՝ ավելի քան 1000 հանգույցներով: Ծրագրի կոդը գրված է Java-ով և տարածվում է Apache 2.0 լիցենզիայի ներքո:

Cassandra DBMS-ն ի սկզբանե մշակվել է Facebook-ի կողմից և 2009 թվականին փոխանցվել է Apache Foundation-ի հովանու ներքո: Cassandra-ի վրա հիմնված արդյունաբերական լուծումները կիրառվել են այնպիսի ընկերությունների էներգիայի ծառայությունների համար, ինչպիսիք են Apple-ը, Adobe-ը, CERN-ը, Cisco-ն, IBM-ը, HP-ն, Comcast-ը, Disney-ը, eBay-ը, Huawei-ը, Netflix-ը, Sony-ն, Rackspace-ը, Reddit-ը և Twitter-ը: Օրինակ, Apple-ի կողմից տեղադրված Apache Cassandra-ի վրա հիմնված պահեստային ենթակառուցվածքն ունի ավելի քան հազար կլաստերներ, ներառյալ 160 հազար հանգույց և պահում է ավելի քան 100 փետաբայթ տվյալներ: Huawei-ն օգտագործում է ավելի քան 300 Apache Cassandra կլաստերներ, որոնք ներառում են 30 հազար հանգույց, իսկ Netflix-ն օգտագործում է ավելի քան 100 կլաստերներ՝ ծածկելով 10 հազար հանգույց և մշակելով օրական ավելի քան մեկ տրիլիոն հարցում։

Cassandra DBMS-ը համատեղում է լիովին բաշխված Dynamo հեշ համակարգը, որն ապահովում է գրեթե գծային մասշտաբայնություն, քանի որ տվյալների ծավալը մեծանում է: Cassandra-ն օգտագործում է տվյալների պահպանման մոդել, որը հիմնված է սյունակների ընտանիքի վրա (ColumnFamily), որը տարբերվում է այնպիսի համակարգերից, ինչպիսին memcachedb-ն է, որը տվյալները պահում է միայն առանցքային/արժեքային շղթայում՝ մի քանի մակարդակներով հեշերի պահեստավորում կազմակերպելու ունակությամբ: Տվյալների բազայի հետ փոխգործակցությունը պարզեցնելու համար աջակցվում է հարցումների կառուցվածքային լեզուն CQL (Cassandra Query Language), որը հիշեցնում է SQL-ը, բայց նվազեցված է ֆունկցիոնալությամբ: Առանձնահատկությունները ներառում են անունների և սյունակների ընտանիքների աջակցություն, ինչպես նաև «ՍՏԵՂԾԵԼ ԻԴԵՔՍ» արտահայտության միջոցով ինդեքսների ստեղծում:

DBMS-ը թույլ է տալիս ստեղծել խափանումների դիմացկուն պահեստ. տվյալների բազայում տեղադրված տվյալները ավտոմատ կերպով վերարտադրվում են բաշխված ցանցի մի քանի հանգույցների վրա, որոնք կարող են տարածվել տվյալների տարբեր կենտրոնների վրա: Երբ հանգույցը ձախողվում է, նրա գործառույթները արագորեն վերցվում են այլ հանգույցների կողմից: Կլաստերում նոր հանգույցներ ավելացնելը և Cassandra տարբերակի թարմացումը կատարվում է անմիջապես՝ առանց լրացուցիչ ձեռքով միջամտության կամ այլ հանգույցների վերակազմավորման: CQL աջակցությամբ դրայվերները պատրաստված են Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ և JavaScript (Node.js) համար։

Հիմնական նորամուծությունները.

  • Բարելավված կատարողականություն և մասշտաբայնություն: Բարելավվել է հանգույցների միջև SSTable (Sorted Strings Table) ձևաչափով տվյալների փոխանակման արդյունավետությունը: Internode Messaging Protocol-ը օպտիմիզացված է: Հանգույցների միջև տվյալների հոսքերի փոխանցման արագությունը աճել է մինչև 5 անգամ (հիմնականում Zero Copy տեխնիկայի օգտագործման և ամբողջ SSTables-ի փոխանցման շնորհիվ), իսկ կարդալու և գրելու գործառնությունների թողունակությունը աճել է մինչև 25%: Վերականգնման աստիճանական գործընթացը օպտիմիզացվել է: Աղբահանության դադարեցման պատճառով ուշացումները կրճատվում են մինչև մի քանի միլիվայրկյան:
  • Ավելացվել է աուդիտի գրանցամատյանի աջակցություն, որը թույլ է տալիս հետևել օգտատերերի նույնականացման գործողություններին և բոլոր կատարված CQL հարցումներին:
  • Ավելացվեց երկուական հարցումների ամբողջական մատյան պահպանելու հնարավորությունը, որը թույլ է տալիս պահպանել բոլոր հարցումների և պատասխանների տրաֆիկը: Կառավարման համար առաջարկվում են «nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog» հրամանները, իսկ fqltool կոմունալը տրամադրվում է տեղեկամատյանների վերլուծության համար: Հրամանները տրամադրվում են տեղեկամատյանը ընթեռնելի ձևի փոխակերպելու (Dump), գործունեության հատվածները համեմատելու համար (Համեմատել) և վերագործարկելու (Replay) վերլուծության համար՝ վերարտադրելով իրական բեռին բնորոշ պայմանները:
  • Ավելացվել է աջակցություն վիրտուալ աղյուսակների համար, որոնք արտացոլում են ոչ թե SSTables-ում պահվող տվյալները, այլ API-ի միջոցով ստացված տեղեկատվության ելքը (կատարողական ցուցանիշներ, կարգավորումների տեղեկություններ, քեշի բովանդակություն, միացված հաճախորդների մասին տեղեկություններ և այլն):
  • Բարելավվել է սեղմված տվյալների պահպանման արդյունավետությունը՝ նվազեցնելով սկավառակի տարածության սպառումը և բարելավելով ընթերցման աշխատանքը:
  • Համակարգի բանալի տարածության հետ կապված տվյալները (system.*) այժմ տեղադրվում են առաջին գրացուցակում լռելյայնորեն, այլ ոչ թե բաշխվում են տվյալների բոլոր դիրեկտորիաներում, ինչը թույլ է տալիս հանգույցին աշխատել, եթե լրացուցիչ սկավառակներից մեկը ձախողվի:
  • Ավելացվեց փորձնական աջակցություն անցողիկ կրկնօրինակման և էժան քվորումների համար: Ժամանակավոր կրկնօրինակները չեն պահում բոլոր տվյալները և օգտագործում են աստիճանական վերականգնում՝ ամբողջական կրկնօրինակներին համապատասխանելու համար: Թեթև քվորումներն իրականացնում են գրելու օպտիմիզացում, որի դեպքում ժամանակավոր կրկնօրինակների վրա գրություններ չեն կատարվում, քանի դեռ լիարժեք կրկնօրինակների բավարար հավաքածու չկա:
  • Ավելացվեց փորձնական աջակցություն Java 11-ի համար:
  • Ավելացվեց փորձնական տարբերակ՝ բոլոր Merkle ծառերը համեմատելու համար: Օրինակ, 3 հանգույցների կլաստերի վրա տարբերակը միացնելը, որտեղ երկու կրկնօրինակները նույնական են, իսկ մեկը՝ հնացած, կհանգեցնի հնացած կրկնօրինակի թարմացմանը՝ օգտագործելով ընթացիկ կրկնօրինակի միայն մեկ կրկնօրինակի գործողությունը:
  • Ավելացվեցին նոր գործառույթներ currentTimestamp, currentDate, currentTime և currentTimeUUID:
  • Ավելացվել է CQL հարցումների թվաբանական գործողությունների աջակցություն:
  • Տրված է «ժամանակի դրոշմ»/«ամսաթիվ» և «տեւողություն» տեսակներով տվյալների միջև թվաբանական գործողություններ կատարելու հնարավորություն:
  • Ավելացրել է վերականգնման համար անհրաժեշտ տվյալների հոսքերի նախադիտման ռեժիմ (հանգույցի վերանորոգում — նախադիտում) և վերականգնվող տվյալների ամբողջականությունը ստուգելու հնարավորություն (հանգույցի գործիքների վերանորոգում — վավերացում):
  • SELECT հարցումներն այժմ հնարավորություն ունեն մշակել Քարտեզ և Սահմանել տարրերը:
  • Ավելացվել է նյութականացված դիտումների սկզբնական կառուցման փուլի զուգահեռականացման աջակցություն (cassandra.yaml:concurrent_materialized_view_builders):
  • «Nodetool cfstats» հրամանն ավելացրել է աջակցություն՝ ըստ որոշակի չափումների տեսակավորման և ցուցադրվող տողերի քանակը սահմանափակելու համար:
  • Կարգավորումները տրամադրվում են սահմանափակելու համար օգտագործողի կապը միայն որոշակի տվյալների կենտրոնների հետ:
  • Ավելացվեց լուսանկարի ստեղծման և մաքրման գործողությունների ինտենսիվությունը (արժույթի սահմանաչափը) սահմանափակելու հնարավորություն:
  • cqlsh-ը և cqlshlib-ն այժմ աջակցում են Python 3-ին (Python 2.7-ը դեռ աջակցվում է):
  • Windows պլատֆորմի աջակցությունը դադարեցվել է: Cassandra-ն Windows-ում գործարկելու համար խորհուրդ է տրվում օգտագործել Linux միջավայրեր, որոնք ստեղծված են WSL2 ենթահամակարգի (Windows Subsystem for Linux 2) կամ վիրտուալացման համակարգերի հիման վրա։



Source: opennet.ru

Добавить комментарий