Инструменты пользователя

Инструменты сайта


orientdb:31:что_нового_в_31

Что нового в OrientDB 3.1

Введение представлений

OrientDB v 3.1 вводит представления в качестве нового дополнения. Представление - это результат запроса, сохраненный в постоянной структуре и доступный для последующих запросов.

Пример использования:

CREATE VIEW Managers FROM (SELECT FROM Employees WHERE isManager = TRUE);
 
SELECT FROM Managers WHERE name = 'John'

Пессимистические блокировки

Начиная с версии OrientDB v 3.1 мы возрождаем пессимистические блокировки, вводя новый API.

Теперь вы можете сделать:

// NoTx locking
ORID id = //...
ODatabaseSession session = //....
OElement record = session.lock(id);
record.save(record);
session.unlock(record);
 
// In Transaction Locking
ORID id = //...
ODatabaseSession session = //....
session.begin();
OElement record = session.lock(id);
record.save(record);
session.commit(); // The commit unlock all the lock acquired during the transaction

Распределенная архитектура

С OrientDB v 3.1 мы ввели некоторые структурные изменения в модуль распределения. В частности, новые алгоритмы координации распределения снимают ограничения, связанные с владельцем кластером.

Полная модернизация модели распределенных транзакций удаляет некоторые устаревшие компоненты и делает поведение более предсказуемым. Это облегчает ремонтопригодность и повышает стабильность.

Новые компоненты все еще находятся в стадии разработки и по умолчанию отключены в v 3.1.0-M1. Вы можете разрешить их использование изменив значение:

 OGlobalConfiguration.DISTRIBUTED_REPLICATION_PROTOCOL_VERSION 

в

 distributed.replicationProtocol.version 

на 2

Улучшения в SEQUENCE компоненте

В OrientDB v 3.1 мы улучшили последовательности следующими фичами:

  • Последовательности ограничивают верхние и нижние границы
  • Циклические последовательности (когда предел достигнут, последовательность перезапустится с заданого начального значения)
  • Восходящие и нисходящие последовательности
OSequence.CreateParams params = new OSequence.CreateParams().setStart(0L).
        setIncrement(10).
        setRecyclable(true).
        setLimitValue(30l).
        setOrderType(SequenceOrderType.ORDER_POSITIVE);
OSequenceLibrary sequences = db.getMetadata().getSequenceLibrary();
sequences.createSequence("mySeq", OSequence.SEQUENCE_TYPE.ORDERED, params);

Улучшенный сериализатор

В OrientDB v 3.1 появился новый сериализатор записей. Новый сериализатор уменьшает размер записи, хранящейся на физическом устройстве, и следовательно, увеличивает скорость обработки запросов.

Enterprise Profiler

TODO

orientdb/31/что_нового_в_31.txt · Последние изменения: 2020/04/24 15:17 — admin