Исключить/минимизировать запросы Query на данные, изменяемые в пределах своих транзакций.
Везде где это возможно использовать доступ по ключу и отношения, исключить 'висячие данные' (ничейные экземпляры объектов, которые могут быть приписаны в последствии другим объектам), так как описать их невозможно (точнее я пока не знаю как) в пределах одной группы для реализации транзакций.
for /l %a in (1,1,30) do @curl 127.0.0.1:8888/test
Test repeat read: 221, queryed:221
Test repeat read: 222, queryed:222
Test repeat read: 223, queryed:223
Test repeat read: 224, queryed:224
Test repeat read: 225, queryed:225
Test repeat read: 226, queryed:226
Test repeat read: 227, queryed:226
Test repeat read: 228, queryed:228
Test repeat read: 229, queryed:228
Test repeat read: 230, queryed:229
Test repeat read: 231, queryed:231
Test repeat read: 232, queryed:231
Test repeat read: 233, queryed:232
Test repeat read: 234, queryed:234
Test repeat read: 235, queryed:235
Test repeat read: 236, queryed:236
Test repeat read: 237, queryed:237
Test repeat read: 238, queryed:238
Test repeat read: 239, queryed:239
Test repeat read: 240, queryed:239
Test repeat read: 241, queryed:240
Test repeat read: 242, queryed:241
Test repeat read: 243, queryed:242
Test repeat read: 244, queryed:243
Test repeat read: 245, queryed:245
Test repeat read: 246, queryed:245
Test repeat read: 247, queryed:246
Test repeat read: 248, queryed:247
Test repeat read: 249, queryed:249
Test repeat read: 250, queryed:250
Transaction tx = pm.currentTransaction();
...
tx.begin();
...
tx.commit();
...
finally
....
if(tx.isActive()) tx.rollback();