NewSQL = NoSQL+ACID

NewSQL = NoSQL+ACID
Usque nuper Odnoklassniki de 50 TB discursum notitiarum in tempore reali in SQL Servo reposuit. Ad hoc volumen, paene impossibile est celeria et certa praebere, et etiam ad centrum defectus-patientis accessum utens SQL DBMS. Typice, in talibus casibus, unum e tabulatorum NosQL adhibetur, sed non omnia ad NoSQL transferri possunt: ​​quaedam res cautiones transactionis ACID requirunt.

Inde nos in usum Repositionis NewSQL, id est, DBMS, culpae tolerantiae, scalabilitatis et agendi rationum NosQL praebet, sed simul conservans ACID cautiones systematis classicis notos praebet. Pauci sunt systemata industriales huius generis novi operandi, quare talem systema nosmetipsos implevimus et in operationem commercialem collocavimus.

Quomodo operatur et quid acciderit - sub inciso legitur.

Hodie menstrua audientia Odnoklassniki plus quam 70 miliones visitatores singulares sunt. We In summo sumus quinque maximae sociales retiaculi in mundo, et inter viginti situs in quibus utentes maxime tempus terunt. Bene infrastructurae sarcinas altissimas tractat: plus quam decies centena millia petitionum HTTP/sec per frontem. Partes servientis classis plus quam 8000 frusta prope inter se sita sunt - in quattuor Moscuae datarum centra, quae pro retis latenciis minus quam 1 ms inter eos concedit.

Cassandram ab 2010 usos fuimus, inde a versione 0.6. Hodie plures botri duodecim in operatione sunt. Botrus velocissimus processus plus quam 4 decies centena operationes per secundam, et thesauri maximi 260 TB.

Sed hae omnes ligaturae ordinariae NoSQL pro repono aegre ordinantur data. Reponere principale repositionis constantem voluimus, Microsoft SQL Servo, quod ab Odnoklassniki condita est adhibitum. Tabularium plus quam 300 SQL Servo Latin Edition machinis constabat, quae 50 TB notitiarum entium negotiationum continebat. Haec data modificatur pars ACID transactions et requirit princeps constantia.

Ad datam trans SQL Servo nodos distribuendam, utroque verticali et horizontali usi sumus partitionibus (sharding). Historice simplicibus schedulis propositis usi sumus: unaquaeque res una cum signo - functione entitatis ID. Res cum eodem indicio positae sunt in eodem SQL servo. Relatio domini-singula effectum est ut signa tabulae principalis et pueri semper aequarentur et in eodem servo collocarentur. In retis socialibus, omnes fere monumenta generantur pro utentis, quod significat omnia usorum notitia intra unum subsystem functionem in uno servo repositum. Hoc est, negotium gestum fere semper in tabulas ab uno SQL servo involvit, quod effecit ut notitiarum constantiae utens locorum ACID transactionum, sine necessitate utendi. tarda et vacillent distribuuntur ACID geruntur.

Gratias ad sharding et accelerare SQL:

  • Externis angustiis clavis non utimur, quandoquidem cum entitatis ID communicationis in alio servo collocetur.
  • Processus condito et triggers non utimur ex additione oneris in DBMS CPU.
  • CONIUNCTIS non utimur propter omnium praedictorum et multum temere ex orbe legit.
  • Extra transactionem, gradu solitarii Read Uncommittentis utimur ad redigendum deadlocks.
  • Breviores tantum transactions agimus (in mediocris brevioribus quam 100 ms).
  • Multis ordo UPDATE et delemus propter multitudinem deadlocks non utimur - unum tantum testimonium ad tempus renovamus.
  • Quaeretionem semper facimus tantum in indicibus - quaesitum cum plena mensa scan consilium nobis significat onerare datorum et causare ut deficiat.

Hi gradus nobis permiserunt ad exprimendum fere maximum effectum e servientibus SQL. Sed difficultates magis ac plures factae sunt. Intueamur eos.

Problems cum SQL

  • Cum auto-scriptis shardingis usi sumus, nova shards additis ab administratoribus manually factum est. Totum hoc tempus, data replicationes scalabiles non erant petitiones muneris.
  • Cum crescit numerus monumentorum in tabula, celeritas insertionis et modificationis decrescit, cum indices ad tabulam exsistenti addito, celeritas per factorem stillat, index creationis et recreationis in tempore descendit.
  • Habens parvam quantitatem Windows pro SQL Servo in productione infrastructuram administrationis difficiliorem reddit

Sed consectetur forsit est

culpa tolerantia

Ordo SQL Servo pauperem culpam tolerantiae habet. Dicamus te unum solum habere datorum ministratorem, et semel in tribus annis deficit. Hoc tempore situm est per 20 minuta, quod placet. Si 64 servitores habetis, locus ipse semel in tribus septimanis descendit. Et si 200 ministrantes habetis, locus non omni septimana laborabit. Hoc problema est.

Quid fieri potest ut patientiam culpae emendare servientis SQL? Id nos invitat aedificare altus available botrum portassentubi in casu alicujus membrorum defectus est tergum.

Hoc requirit classem apparatum pretiosarum: multiplices duplicationes, fibra optica, repositionis communis, et inclusio subsidii certo non operatur: circiter 10% permutationum finiunt cum defectione nodi tergum nodi sicut tramen post nodi principali.

Praecipuum autem incommodum tam copiosissimi botri praesto est nulla promptitudo si centrum in quo situm est deficiat. Odnoklassniki quattuor notas centra habet, et operam navare necesse est in eventu plenae defectionis in uno eorum.

Hoc enim utimur Multi-Magister replicatio constructa in SQL Servo. Haec solutio multo magis pretiosa est propter sumptum programmatum et laborat pervulgata problemata cum replicatione - inaestimabili transactionis moras cum replicatione synchrona et moras in applicandis replicationibus (et consequenter modificationibus perditis) cum replicatione asynchrona. Tacita manual conflictu resolutio hanc optionem nobis omnino impeditivam facit.

Omnia haec problemata solutionem radicalem requirebant et eas singillatim enucleare coepimus. Hic opus est cognoscere quid SQL Servo maxime facit - transactions.

Simplex transaction

Consideremus transactionem simplicissimam, ex parte programmatis SQL applicatae: photographicam ad album addere. Album et imagines in diversis plateis reponuntur. Album signum photographicum publicum e contra. Tunc talis transactionis gradus dividitur in sequentes;

  1. Album clavem claudimus.
  2. Facere ingressum in tabula photographica.
  3. Si phocapha status publicus habet, photo publici contra album adde, censu renovare et transactionem committere.

Aut in pseudocode:

TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(…);

if (photo.status == PUBLIC ) {
    album.incPublicPhotosCount();
}
album.update();

TX.commit();

Videmus frequentissimum missionis negotium pro re gesta legere data e datorum in memoriam applicationis server, mutare aliquid et salvare novos valores in datorum remittere. Plerumque in tali transactione plura entia, plures tabulas renovamus.

Cum transactionem exequens, modificatio eiusdem notitiae concurrens ex alia systemate occurrere potest. Exempli gratia, Antispam potest iudicare quod utens aliqualiter suspectus sit et ideo omnes imagines usoris non amplius sint publicae, opus est moderatione arcessi, quod significat mutationem photo.status in aliquo alio valore et calculis respondentibus avertendi. Patet, si haec operatio fit sine cautionibus atomicii applicationis et solitudo certandi modificationes, ut in. ACIDUMergo id quod opus non erit - aut photo counter ostendet valorem iniuriae, aut non omnes imagines moderatio mittentur.

Multum similis codicis, varias res in uno negotio tractandas, per totam exsistentiam Odnoklassniki scripta est. Ex experientia migrationum ad NoSQL e Constantia Eventual Scimus maximam provocationem (ac temporis obsidionem) venire ex codice progrediente ad constantiam datam conservandam. Ideo praecipuam postulationem consideravimus ad novas tabulas faciendas ut provideatur pro realibus ACID transactionibus applicationis logicae.

Ceterae, non minoris momenti, requisitae erant;

  • Si centrum notitia desit, tum lectio et scriptura ad novam repono praesto esse debent.
  • Sustentans hodiernam progressionem celeritatis. Id est, cum opus novum repositorium, codicis moles eadem fere sit, nihil opus sit reposito addere, algorithms ad certamina resolvenda, secundas indices, etc.
  • Celeritas novarum tabulariorum satis altam esse debebat tam cum notitias legendi quam cum negotiorum processuum, quae efficaciter significabant solutiones academicas rigidas, universales, sed tardas, ut exempli gratia non pertinebant. duos tempus committit.
  • Automatic on-the-fly scaling.
  • Regularibus vilis servientibus utendi, sine necessitate mercandi odio exotico.
  • Morbi adipiscing tincidunt dolor a commodo. Aliis verbis, prioritas solutionis proprietariae vel apertae fontis data est, praesertim in Java.

Decisiones, decisiones

Soluciones possibilium examinantes, ad duas electiones architecturae possibilis venimus:

Primum est accipere aliquem SQL cultorem et efficiendi culpam debitam tolerantiae, scalae mechanismi, botri defectivi, conflictus solutionis ac distribuendi, certae et festinationis ACID transactionum. Hanc optionem aestimavimus tamquam non levissimam et intensivam laboris.

Secunda optio est receptaculum promptum NoSQL cum scalis efficere, glomeris defectivis, solutionis conflictu, et negotiorum efficiendi et SQL te ipso. Primo aspectu, etiam munus exsequendi SQL, nedum ACID transactiones, spectat quasi munus quod annis fiet. Sed tunc intelleximus plumam SQL in usu adhibitam esse tam longe ab ANSI SQL ut Cassandra CQL abest ANSI SQL. Cum propius intueamur CQL, intelleximus quod satis propinquum erat ad id quod opus erat.

Cassandra et CQL

Quid igitur interest de Cassandra, quid facultates habet?

Uno modo, hic tabulas creare potes quae varias notitias genera sustentant, eligere vel UPDATE in clavem primariam facere potes.

CREATE TABLE photos (id bigint KEY, owner bigint,…);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET … WHERE id=?;

Ut constantiae effigies datae Cassandra utitur quorum approach. In casu simplicissimo, hoc significat quod, cum tres replicationes eiusdem ordinis in diversis nodis botri ponentes, scribendo consideretur felix si plures nodos (i.e., duos ex tribus) successum huius operationis scribere confirment. Notitia seriei congruere videtur si, cum legeretur, plures nodi tonderentur et confirment. Sic tribus replicationibus, plena et instantis notitia praestatur constantiae, si unus nodi deficiat. Hic aditus nobis permisit ut schema etiam certius efficeret: petitiones semper mittemus ad omnes tres replicas, exspectantes responsionem a duobus velocissimis. Nuper responsio tertiae figurae in hoc casu exuitur. Nodus, qui nuper respondendo, gravia problemata - dumos, purgamentum collectionis in JVM habere potest, memoriam directam repetunt in nucleo Linux, defectum ferramentorum, a reticulo disiunctio. Sed haec operationes vel notitias nullo modo tangunt.

Accessus cum tribus nodis contactum accipimus et responsum a duobus accipimus speculatio: petitio extra replicas mittitur etiam antequam "decidere".

Aliud beneficium Cassandrae est Batchlog, mechanismus qui efficit ut massam mutationum quas facies vel plene applicetur vel omnino non applicetur. Hoc nobis concedit solvere A in ACID - atomicity e archa.

Artissimum rei gestorum in Cassandra sic dictae sunt ".leve transactions». Sed longe a negotiis "realis" ACID; re vera opportunitas est CAS in notitia ex uno tantum recordo, consensus utens gravi pondere Paxos protocollo. Ergo talis rerum celeritas humilis est.

Quae in Cassandra defuerunt

Ergo habuimus in Cassandra ad effectum deducendi reales ACID transactiones. Quibus uti facile potuimus duas alias commodas notas classicas DBMS efficere: constantes indices rapidi, qui nobis permitterent ut notitias selectas non solum per clavem primarium et generatorem regularem IDs monotonicae auto-incrementationis praestare permitteret.

C* One

Ita novum DBMS natus est C* One, tribus generibus nodis ministrantis constans;

  • Repono - (paene) vexillum Cassandra ministrantibus auctoribus pro repono notitia locorum orbis. Cum pondus ac pondus notitiarum crescit, quantitas eorum facile ad decem et centenos ascendere potest.
  • Transactio coordinatoris — exsecutionem transactionum curare.
  • Clientes applicationes ministrantes sunt qui negotiorum negotiationes efficiunt et transactiones inchoant. Talium clientium millia esse non possunt.

NewSQL = NoSQL+ACID

Servientes omnium generum pars botri communis est, uti Cassandra interno nuntio protocollo communicandi inter se et. gossip ad conferentibus botrum portassent notitia. Cum cordis pulsatione, servientes de defectibus mutuis discunt, unum schema, tabulas, eorum structuram et replicationem retinent; partitionis schema, botrum topologia, etc.

clients

NewSQL = NoSQL+ACID

Pro normarum rectoribus, Adeps Client modus adhibetur. Talis nodi notitia non refert, sed potest uti coordinator ad executionem petendi, hoc est, ipse Cliens agit ut coordinator petitionum suarum: quaerit replicationes repositas et certamina resolvit. Hoc non solum certius et velocius quam vexillum coegi, quod communicationem cum coordinatore remoto requirit, sed etiam petitionum transmissio moderari sinit. Extra transactionem apertam in clientelam, petitiones repositoria mittuntur. Si client transactionem aperuit, omnes petitiones intra transactionem coordinatoris mittuntur.
NewSQL = NoSQL+ACID

C * One transactionis Legatus

Coordinator est aliquid pro C*Ono a VULNUS implendum. Negotium, seris, et ordo est quo res geruntur.

Pro unoquoque negotio muneris, coordinator indicationem generat: utraque transactio subsequentis maior est quam prior transactio. Cum Cassandrae conflictus resolutio systematis in indicatione temporis fundatur (ex duobus monumentis discrepantibus, alterum cum recentissima indicatione hodiernae consideratur), conflictus semper solvendus est in favorem transactionis subsequentis. Sic effectum est Lampor vigilia - Vili modo ad certamina componenda distributa ratio.

Seras

Ut solitudo curanda, methodo simplicissima - pessimam comis innixa in prima clave recordi, uti decrevimus. Id est, in transactione, recordatio primum debet clausa, tunc demum legitur, mutari et salvari. Tantum post felicem committere potest recordatio reserari ut certatim transactiones ea uti possint.

Talem densis efficiendum simplex est in ambitu non distributo. In systemate distributo duae sunt optiones principales: vel instrumenti densis in botro distributi vel transactiones distribuuntur ut transactiones in eodem instrumento ab eodem coordinatore semper serviant.

Cum in casu nostro notitia iam inter coetus negotiorum localium in SQL distributa sit, placuit coordinatoribus coetus locales assignare: unus coordinator omnes negotiorum gerit cum signis ab 0 ad 9, alter - cum signis ab 10 ad 19; et sic porro. Quam ob rem singulae instantiae coordinatoris dominus coetus rei fit.

Tunc comae impleri possunt forma banalis HashMap in memoria coordinatoris.

Coordinator defectis

Cum unus coordinator solum coetui negotiorum inserviat, magni momenti est ut celeriter factum eius defectum determinet, ut alter conatus ad rem exsequendam tempus emittat. Ad hoc ieiunium et firmum, quorum auditorio protocollo usi sumus, plene conexi sumus;

Singulae datae centri exercituum saltem duorum nodis coordinatoris. Periodice unusquisque coordinator nuntium cordis pulsationis aliis coordinatis mittit eosque informat de eius operatione, necnon quae nuntii pulsationis accipiuntur ex quibus coordinatoris in botro ultimo tempore.

NewSQL = NoSQL+ACID

Similes informationes ab aliis accipientes ut partem nuntii cordis pulsant, unusquisque coordinator sibi decernit qui nodi botri operantur et qui non sunt, duce quorum principio: si nodi X informationes accepit ex pluribus nodi in botro circa normalem. nuntiis acceptis ab nodi Y, tum Y operatur. Et vice versa, simul ac plures relationes de node Y nuntiis desunt, tunc Y recusavit. Id curiosum est, si quorum nodi X informat quod nuntiis ab eo non amplius accipiendis, tunc nodi X se defecisse considerabit.

Epistulae pulsationis magna frequentia mittuntur, circiter 20 vicibus secundo, cum 50 ms. In Java, difficile est responsionem applicationis spondere intra 50 ms propter comparabilem longitudinem morarum ab exactore purgamentorum causatam. Potuimus hanc responsionem assequi tempus utendo G1 quisquiliarum collectori, quod nobis permittit ut signum GC decantetur duratione. Aliquando tamen, satis raro, collector 50 ms desistit excedens, quod potest ad falsam culpam deprehensionem ducere. Quod ut ne fiat, coordinator defectum nodi remoti nodi nuntiat cum primum nuntius pulsationis inde evanescit, si modo plures in ordine evanuerunt. Hoc modo potuimus detegere defectum nodi coordinatoris in 200 ms.

Sed non satis cito est intellegere quem nodi finiri coeperint. De hoc nobis aliquid faciendum est.

Reservatio

Consilium classicum implicat in eventum magistri deficiendi, novam electionem utendo uno e modum universal algorithms. Attamen tales algorithmi notae difficultates habent cum temporis concursu et longitudine ipsius processus electionis. Tales moras additas vitare potuimus utendo consilio reposito coordinatore in retis plene connexis;

NewSQL = NoSQL+ACID

Dicamus nos velle rem in circulo exsequi 50. In antecessum consilium substituendi determinemus, hoc est, qui nodi negotia in coetus 50 facient in casu defectus coordinatoris principalis. Propositum est ponere functionem systematicam in eventu centri defectus. Statuamus quod prima subsidia nodi erit ex alio centro notitia, secunda reservatio nodi erit ex tertia. Hoc schema semel eligitur et non mutat usque ad topologiam botri mutationes, hoc est, usque dum novae nodi intrant (quod rarissime accidit). Ratio ad novum activum dominum eligendum, si vetus deficit, semper hoc modo erit: prima subsidia dominus activus fiet, et si cessaverit, secunda reservatio dominus activus fiet.

Hoc schema certius est quam algorithmus universalis, quia ad novum magistrum excitandum satis est defectum vetus determinare.

Sed quomodo clientes intellegent quos nunc operatur dominus? Impossibile est nuntios mittere ad millia clientium in 50 ms. Coniunctio fieri potest cum cliens petitionem mandat ut transactionem aperiat, nondum sciens dominum istum non iam esse, et petitio tempus erit. Quod ut ne fiat, clientes speculative rogationem mittunt ut negotium aperiat coetui magistro et simul subsidiis suis, sed ille solus qui tunc est dominus activus, huic rogationi respondebit. Cliens omnes communicationes subsequentes faciet intra transactionem solum cum magistro activo.

Tergum domini locum postulaverunt pro transactionibus qui non suas sunt in queue rerum innatarum, ubi aliquandiu reponuntur. Si dominus activus moriatur, novus dominus processus petit ut transactiones aperiat a suo queue et clienti respondet. Si cliens rem cum domino vetere iam aperuerat, secunda responsio neglecta est (et, ut patet, talis transactio non integra erit et a client iterabitur).

Quam rem operatur

Dicamus clientem rogaverunt coordinatorem ut aperiat transactionem talem et talem entitatem cum tali et tali principali clavi. Coordinator hanc entitatem claudit et in sepositam mensam in memoria ponit. Si opus est, coordinator hanc entitatem ex repositione legit et notitias consequentes in statu transactionis in memoria coordinatoris reponit.

NewSQL = NoSQL+ACID

Cum client notitias in transactione mutare vult, petitionem coordinatoris mittit ut entitatem mutaret, et coordinator ponit novas notitias in re publica tabellae in memoria. Hoc tabularium perficit - nulla memoria ad repono.

NewSQL = NoSQL+ACID

Cum client sua postulata ut notitias suas mutatas ut partem transactionis activae, coordinator hoc modo agit;

  • si id iam in negotio, tum memoriae proditum est;
  • si ID non est in memoria, tunc absentis notitia legitur de nodis repositionis, cum iam in memoriam reductis, et effectus clienti datur.

Ita client suas mutationes legere potest, sed alii clientes has mutationes non vident, quia tantum in memoria coordinatoris reponuntur, nondum in Cassandra nodis sunt.

NewSQL = NoSQL+ACID

Cum client committere mittit, res publica quae erat in memoria muneris servata est a coordinatore in batch initium, et mittitur ut initium batch Cassandrae repositione. Thesauri omnia faciunt necessaria ut sarcina haec atomice (omnino) applicata sit, et responsionem coordinatoris reddet, qui seras dimittit et successum negotii clienti confirmat.

NewSQL = NoSQL+ACID

Et ut revolveretur, coordinator tantum debet liberare memoriam rei publicae gerendae occupatam.

Ex superioribus melioramentis, principia ACIDUM implevimus:

  • Atomicity. Hoc cautum est nullam transactionem partim in systemate memoriae tradendam esse, aut omnes eius operae perficientur aut nullae perficientur. Huic principio adhaeremus per initium batch Cassandrae.
  • Constantia. Quaelibet res prospere gesta, per definitionem, tantum eventus validos commemorat. Si, postquam transactionem aperuerit et partem operationum peragens, effectum irritum esse compertum est, regressus efficitur.
  • Separatio. Cum res agitur, res concurrentes ad exitum non pertinere debent. Certatim transactiones separatim in pessimam comam in coordinatore seiunguntur. Nam extra transactionem legit, principium solitudo observatur in gradu Commisso Read.
  • constantiam. Negligentia problemata in gradibus inferioribus — systema niger, defectus hardware-commutationes factae per transactionem feliciter peractam conservari debent cum operationes resumere debent.

Legere per indices

Sumamus mensam simplicem;

CREATE TABLE photos (
id bigint primary key,
owner bigint,
modified timestamp,
…)

Id habet (clavem primariam), dominus et date modificationem. Tu debes postulationem simplicissimam facere - selectas notitias possessori mutato die "in novissimo die".

SELECT *
WHERE owner=?
AND modified>?

Ut talis quaestio cito discurratur, in classic SQL DBMS debes index per columnas aedificare (dominus, mutatio). Quod satis facile facere possumus, cum nunc cautiones acldere habemus!

Indices in C*One

Mensa est fons photographemata in qua memoria ID clavis primaria est.

NewSQL = NoSQL+ACID

Ad indicem, C* Novam tabulam quae exemplar originalis est creat. Clavis est eadem cum indice elocutio, et etiam praecipuam clavem recordi a fonte mensae includit;

NewSQL = NoSQL+ACID

Nunc quaesitum est "dominus in novissimo die" rescribi potest ut ex alia tabula selecta:

SELECT * FROM i1_test
WHERE owner=?
AND modified>?

Constantia notitiarum in tabula fontana photographica et indicem tabulae i1 a coordinatore ipso conservatur. Schematis notitia nititur solum, recepta mutatione, coordinator generat et reponit mutationem non solum in tabula principali, sed etiam in exemplaribus. Nullae actiones in indice tabulae aguntur, tigna non leguntur, nullae comae adhibentur. Id est, additis indicibus nullas fere facultates consumit ac paene nullum effectum habet in celeritate applicandi modificationes.

ACID utentes, SQL-similis indices efficere potuimus. Constant, scalable, rapidi, composabiles et in CQL linguam interrogationi constructae. Nullae mutationes ad schedulam codicis necessariae sunt ut indices confirment. Omnia tam simplicia sunt quam in SQL. Maxime, indices non tangunt celeritatem modificationum ad exsecutionem tabulae transactionis originalis.

Quid accidit?

Unum ante tres annos elaboravimus et eam in operationem commercialem deducebamus.

Quid habuimus in fine? Perpendamus hoc utens exemplo processus photographici ac subsystem repositionis, unum ex maximis generibus notitiarum in retis socialibus. Non loquimur de corporibus ipsis imagines, sed de omnibus generibus meta-informationum. Nunc Odnoklassniki circiter XX miliardis talibus monumentis habet, processuum systematis LXXX milia petitionum lege secundo, usque ad VIII milia ACID transactionum secundorum cum data modificatione coniungitur.

Cum SQL per replicationis factor utebamur = 1 (sed in RAID 10), metainformation foto reposita erat in acerrimo botro 32 machinis currentibus Microsoft SQL Servo (plus 11 tergum). 10 servitores etiam ad tergum thesaurum collocarunt. Summa 50 carros. Eodem tempore systematis oneris aestimati operati sunt sine subsidiis.

Postquam ad novam systema migrantes, replicationem factam recepimus =3 - exemplum in unaquaque centri notitia. Systema ex 63 Cassandra nodis repositionis et 6 machinis coordinatoris constat, pro summa 69 ministrantium. Sed hae machinae multo viliores sunt, summa eorum sumptus circiter 30% sumptum SQL systematis est. Eodem tempore, onus ad 30% tenetur.

Introductio C*One, latency etiam decrevit: in SQL, operatio scribenda sumpsit de 4,5 ms. In C* One - about 1,6 ms. Transactio durationis in mediocris minor quam 40 ms, commissio perficitur in 2 ms, duratio legere et scribere in mediocris 2 ms. 99 centies - tantum 3-3,1 ms, numerus speculationum per 100 vicibus minuitur - omnia ob diffusum speculationis usum.

Nunc, maxime e SQL Server nodis decommissis, nova producta augentur tantum utendo C*One. Adaequamus C * unum ad operandum in nostro nube unus-nubesquae effecit ut novas ligaturas acceleraret instruere, configurationem et operationem automate simpliciorem facere. Sine fonte codice, hoc faciebant multo difficilius et gravius.

Nunc operam dabimus ut alias facultates repono in nubem transferamus - sed res prorsus alia est.

Source: www.habr.com

Add a comment