title

text

Тарас Чикин
Тарас Чикин Цифромед
17:30 05 February
45 мин

To Eat "the Elephant" in chunks: how we made friends with MSSQL, Postgres, wrote our replication, and transferred to Postgres one of the largest MISes in Russia.

It is our experience of the medical information system "RT MIS" transfer from MSSQL to PostgreSQL . When the necessity of transfer to PostgreSQL in our "RT MIS", one of the largest medical information systems, became imminent, we felt really terrified having assessed its amount: there was a huge number of stored procedures, functions, SQL-queries in its application code and services. It all requested transcribing, was exacerbated by demands on the system accessibility. So the variant "we awoke in the morning and PostgreSQL was working everywhere" was definitely impossible. That is why we chose another way: began eating "the elephant (PostgreSQL)" in chunks.

In my report, I am going to share our practical experience of the transfer, the instruments we used, the reason for another replication, the problems we met and their solutions. And finally, what turned out to be better: PostgreSQL or MSSQL.

Слайды

Видео

Другие доклады

  • Valery Popov
    Valery Popov Postgres Professional
    Николай Чадаев
    Николай Чадаев Postgres Professional
    45 мин

    Building protected databases using mandatory access control in PostgreSQL

    Role-based access control (RBAC) is one of the main mechanisms used for access control in many DBMS, including PostgreSQL. This model is a sub-type of traditional discretionary access control with its restrictions. In addition to DAC, many operating systems also use mandatory access control (MAC) based on security labels. This additional security mechanism is obligatory for protecting information that demands higher levels of security. Naturally, we would like to use MAC within DBMS when working in OS with mandatory access control switched on.
    In this talk, we'll give an overview of existing MAC implementations in DBMS, as well as share our approach to using security mechanisms provided by SELinux, the sepgsql extension for PostgreSQL, and the standard mechanism of row-level security (RLS), which has been available in PostgreSQL starting from version 9.5.
    In our presentation, we will use the "Airlines" demo database provided by the Postgres Professional company to show how to protect sensitive information and personal data, compare different ways of storing security labels, and assess performance of our solution.

  • Ivan Frolkov
    Ivan Frolkov Postgres Professional
    45 мин

    Transaction Isolation Levels in PostgreSQL

    Everyone has heard something about transaction isolation levels, but oddly enough, almost no one can clearly explain what it is any why it is important. At the same time, for many operations, it is critical to have a clear understanding of isolation levels and how they can affect the result. Indeed, if a customer has been paid twice and the developer has to pay back the losses, it won't seem unimportant. We'll discuss how to avoid such unpleasant situations.

  • Oleg Bartunov
    Oleg Bartunov Postgres Professional
    45 мин

    Everything about full text seach

    PostgreSQL built-in full text search gives unique possibilities inaccessible for external search engines, such as virtual or generated document search and search with access restrictions. I will talk about these and other features, full text search configuration, indexes, and highlight the latest advances and future expectations

  • Heikki Linnakangas
    Heikki Linnakangas Pivotal
    45 мин

    Writing a User-defined datatype

    Walk-through of extending PostgreSQL with a user-defined type. The journey begins from the basics, from creating simple domain types over existing types, and continues to implementing a full-blown datatype from scratch in C.

    PostgreSQL's advanced index types, GiST, GIN, and SP-GiST, are covered in enough detail to give an understanding of what each of them is good for. Support functions for each of them are shown for the example 'color' datatype.