Fa'amaumauga a le avefe'au (vaega 2): vaeluaga "mo tupe mama"

Ua matou mamanuina lelei le fausaga o la matou PostgreSQL database mo le teuina o fesoʻotaʻiga, ua mavae le tausaga, o loʻo faʻatumuina e tagata faʻaoga, ma o loʻo i ai nei. miliona o faamaumauga, ma... ua amata ona faifai malie se mea.

Fa'amaumauga a le avefe'au (vaega 2): vaeluaga "mo tupe mama"
Point o le A o tuputupu aʻe le laulau, e faʻapea foʻi le "loloto" o faʻamatalaga. - e ui lava ile logarithmically. Ae i le aluga o taimi e faʻamalosia ai le server e faʻatino tutusa galuega faitau / tusitusi fa'agasolo fa'atele itulau o fa'amaumauganai lo le amataga.

O le mea lea e sau ai le laveai vaevaega.

Sei ou matauina tatou te le o talanoa e uiga i le sharding, o lona uiga, tufatufa faʻamatalaga i le va o faʻamaumauga eseese poʻo sapalai. Aua e oo lava i le vaevaeina o faamatalaga i tele 'auʻaunaga, e te le faʻaumatia le faʻafitauli o faʻamatalaga "funa" i le aluga o taimi. E manino lava afai e mafai ona e gafatia e tuʻuina se server fou i aso uma, ona le toe taoto ai lea o ou faʻafitauli i le vaalele o se faʻamaumauga patino.

O le a matou le mafaufauina ni tusitusiga faʻapitoa mo le faʻatinoina o le vaeluaga "i totonu o meafaigaluega", ae o le auala lava ia - o le a ma le faʻafefea e tatau ona "tipi i fasi pepa", ma o le a le mea e oʻo i ai se manaʻoga.

Manatu

Sei toe faauigaina la tatou sini: matou te mananaʻo ia mautinoa o le asō, taeao, ma le tausaga, o le aofaʻi o faʻamaumauga e faitau e PostgreSQL i soʻo se galuega faitau / tusitusi e tumau pea.

Mo so'o se fa'aputuga fa'asologa fa'asologa (feau, pepa, ogalaau, archives, ...) o le filifiliga masani o se ki vaeluaga o aso/taimi na tupu. I lo tatou tulaga, o se mea faapena taimi o le auina atu o le savali.

Manatua o tagata fa'aoga toetoe lava o taimi uma galue na'o mea "fou". ia faʻamatalaga - latou te faitau i feʻau lata mai, suʻesuʻeina ogalaau lata mai, ... Leai, ioe, e mafai ona latou toe faʻasolosolo i tua i le taimi, ae latou te faia lenei mea e seasea lava.

Mai nei fa'alavelave o lo'o manino ai o le fofo sili ona lelei o le fe'au vaega "aso uma". - pe a uma, e toetoe lava a faitau e le matou tagata faʻaoga mea na oʻo mai ia te ia "i le aso" poʻo le "anafi".

Afai tatou te tusitusi ma faitau toetoe lava na o le tasi le vaega i le aso, o le mea lea e maua ai foi sili atu ona lelei le faʻaogaina o le manatua ma le disk - talu ai o fa'amaumauga uma o vaega e faigofie ona ofi i totonu o le RAM, fa'atusatusa i le "tele ma le ga'o" i luga o le laulau.

sitepu ma lea laasaga

I se tulaga lautele, o mea uma na taʻua i luga e foliga mai e tasi le tupe mama faifai pea. Ma e mafai ona ausia, ae mo lenei mea e tatau ona tatou taumafai malosi - aua o le fa'ai'uga e vaelua se tasi o fa'alapotopotoga e o'o atu ai i le mana'oga e "va'ai" le feso'ota'iga.

Feau, ona meatotino ma fuafuaga

Talu ai na matou filifili e tipiina feʻau i aso, e talafeagai le vaeluaina o faʻalapotopotoga-meatotino e faʻalagolago ia i latou (faʻapipiʻi faila, lisi o tagata e mauaina), ma e ala foi i le aso o le savali.

Talu ai o se tasi oa tatou galuega masani o le vaʻavaʻai saʻo o tusi resitala o feʻau (e leʻi faitauina, ulufale mai, uma), e talafeagai foi le "toso mai" i le vaeluaga i aso o feʻau.

Fa'amaumauga a le avefe'au (vaega 2): vaeluaga "mo tupe mama"

Matou te faʻaopoopoina le ki vaeluaga (aso feʻau) i laulau uma: tagata e mauaina, faila, resitala. E te le manaʻomia le faʻaopoopoina i le feʻau lava ia, ae faʻaaoga le DateTime o iai.

Mataupu

Talu ai e naʻo le tasi le autu mo le tele o feʻau, e leai se auala e "tipi" ai i le faʻataʻitaʻiga tutusa; e tatau ona e faʻalagolago i se isi mea. I la tatou tulaga e lelei aso o le savali muamua i fetusiaiga - o lona uiga, o le taimi o le foafoaga, o le mea moni, o le autu.

Fa'amaumauga a le avefe'au (vaega 2): vaeluaga "mo tupe mama"

Fa'aopoopo le ki vaeluaga (aso autu) i laulau uma: autu, tagata auai.

Ae o lea e lua a tatou faafitauli i le taimi e tasi:

  • O le fea vaega e tatau ona ou suʻeina ai feʻau i le autu?
  • O le fea vaega e tatau ona ou suʻeina ai le autu mai le savali?

E mafai, ioe, faʻaauau suʻesuʻega i vaega uma, ae o le a matua faʻanoanoa ma o le a faʻaleagaina uma a tatou manumalo. O le mea lea, ina ia iloa le mea tonu e vaʻai i ai, o le a matou faia ni fesoʻotaʻiga talafeagai / faʻasino i vaega:

  • o le a tatou faaopoopo i le savali fanua aso autu
  • tatou faaopoopo i le autu seti aso savali lenei fetusiaiga (e mafai ona avea ma se laulau ese, poʻo se faʻasologa o aso)

Fa'amaumauga a le avefe'au (vaega 2): vaeluaga "mo tupe mama"

Talu ai o le ai ai ni nai suiga i le lisi o aso feʻau mo fesoʻotaʻiga taʻitasi (pe a uma, toetoe lava o feʻau uma e pa'ū i le 1-2 aso lata ane), o le a ou taulai atu i lenei filifiliga.

I le aotelega, o le fausaga o la matou 'upega tafaʻilagi na faʻaogaina le fomu nei, ma amanaʻia le vaeluaga:

Laupapa: RU, afai e iai sau faʻafefe i le alafapeta Cyrillic i igoa o laulau / fanua, e sili atu le aua le tilotilo

-- секции по дате сообщения
CREATE TABLE "Сообщение_YYYYMMDD"(
  "Сообщение"
    uuid
      PRIMARY KEY
, "Тема"
    uuid
, "ДатаТемы"
    date
, "Автор"
    uuid
, "ДатаВремя" -- используем как дату
    timestamp
, "Текст"
    text
);

CREATE TABLE "Адресат_YYYYMMDD"(
  "ДатаСообщения"
    date
, "Сообщение"
    uuid
, "Персона"
    uuid
, PRIMARY KEY("Сообщение", "Персона")
);

CREATE TABLE "Файл_YYYYMMDD"(
  "ДатаСообщения"
    date
, "Файл"
    uuid
      PRIMARY KEY
, "Сообщение"
    uuid
, "BLOB"
    uuid
, "Имя"
    text
);

CREATE TABLE "РеестрСообщений_YYYYMMDD"(
  "ДатаСообщения"
    date
, "Владелец"
    uuid
, "ТипРеестра"
    smallint
, "ДатаВремя"
    timestamp
, "Сообщение"
    uuid
, PRIMARY KEY("Владелец", "ТипРеестра", "Сообщение")
);
CREATE INDEX ON "РеестрСообщений_YYYYMMDD"("Владелец", "ТипРеестра", "ДатаВремя" DESC);

-- секции по дате темы
CREATE TABLE "Тема_YYYYMMDD"(
  "ДатаТемы"
    date
, "Тема"
    uuid
      PRIMARY KEY
, "Документ"
    uuid
, "Название"
    text
);

CREATE TABLE "УчастникТемы_YYYYMMDD"(
  "ДатаТемы"
    date
, "Тема"
    uuid
, "Персона"
    uuid
, PRIMARY KEY("Тема", "Персона")
);

CREATE TABLE "ДатыСообщенийТемы_YYYYMMDD"(
  "ДатаТемы"
    date
, "Тема"
    uuid
      PRIMARY KEY
, "Дата"
    date
);

Sefe se pene manaia

Ia, e faapefea pe a tatou le faaaogaina filifiliga vaega masani faʻavae i luga o le tufatufaina atu o tau o fanua (e ala i faʻaoso ma tofi poʻo PARTITION BY), ma "manuʻa" i le tulaga o talosaga, o le ae matauina o le tau o le vaeluaga o ki ua uma ona teuina i le igoa o le laulau lava ia.

Afai la e faapena oe O e popole tele i le aofa'i o fa'amaumauga o lo'o teuina?, ona mafai lea ona e faʻaumatia nei "faʻaopoopo" fanua ma faʻasalalau laulau faʻapitoa. E moni, o filifiliga uma mai le tele o vaega i lenei tulaga e tatau ona tuʻuina atu i le itu o le talosaga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga