| 
 | 
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Допустим есть некое апи, которое от клиента принимает объект (новая запись ). Класть в базу и получить из неё ид нового объекта долго. Допустим кладём объект в redis hash. Но как получить его ид, по которому он в базе лежать будет? Первичный ключ. Можно завести в редисе счетчики на каждую сущность-таблицу. Тогда берём ид первичного ключа в редисе и отдаём клиенту. Вроде все ок. Потом уже добавляем непосредственно в базу. Но может случиться рассинхрон . Те из редиса получил ид 1234. А по какой то причине он уже есть в базе. Клиент получил новый ид, у него обновилась таблица. И он решил сразу объект удалить. Получится он удалит другой объект. Или второй вариант ситуации. Клиент получил 1234. И решил отредактировать объект. Сразу. В итоге обновится другой. В продолжении рассинхрона. Когда реально будет добавляться в базу объект получим нарушение пк. Но тут думаю можно просто дернуть max(pk), добавить объект , обновить его ид в редисе ну и скорректировать счётчик пк по таблице. Сумбурно слегка, но думаю понятно ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 20:33 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ну GUID. Его хоть на клиенте еще до отправки генерировать можно, если совсем приспичит. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 20:38 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkfka Ну GUID. Его хоть на клиенте еще до отправки генерировать можно, если совсем приспичит. Хм. Чёт не подумал) А базе не будет «фиговато» от гуида в качестве первичного ключа? Пишу не подумав ) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 20:50 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL А базе не будет «фиговато» от гуида в качестве первичного ключа? Теоретически может, Но это целиком зависит от конкретной БД и надо проверять для конкретного случая. Дело не в длине поля (она мало на что влияет), а в том, что "стандартные" GUID-ы в отличии от sequence/identity совершенно не последовательно генерируются. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 22:08 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  если базе "фиговато" уже от единичной вставки, от всяких ухищрений типа "Допустим кладём объект в redis" лучше ей не станет ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 22:13 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL, авторКласть в базу и получить из неё ид нового объекта долго.кто тебе сказал, что долго? а твои манипуляции не долго? при нынешних ssd грешно про долго говорить. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 22:23 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  вадя кто тебе сказал, что долго? Может там на поклажу стопятьсот триггеров навешано. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 23:30 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  love_bach если базе "фиговато" уже от единичной вставки, от всяких ухищрений типа "Допустим кладём объект в redis" лучше ей не станет Не соглашусь. Тестировал и прямо в базу вставлять и сначала в редис . Разница ответа сервера практически на порядок. По крайней мере с выборкой и кэшем в виде редиса. Запрос к базе простецкий. Возвращает ее более 100 строк. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.12.2021, 23:40 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL По крайней мере  с выборкой  и кэшем в виде редиса. Еще бы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.12.2021, 00:25 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkfka AndrewVL А базе не будет «фиговато» от гуида в качестве первичного ключа? Теоретически может, Но это целиком зависит от конкретной БД и надо проверять для конкретного случая. Дело не в длине поля (она мало на что влияет), а в том, что "стандартные" GUID-ы в отличии от sequence/identity совершенно не последовательно генерируются. Не может. У гуидов ток одна проблема. Страшно выглядят :) В остальном гуиды маст хев. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.12.2021, 06:06 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL Не соглашусь. Тестировал и прямо в базу вставлять и сначала в редис  ну понятно в редис быстрее. а потом что с базой то делать? так то вообще быстрее не сохранять ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.12.2021, 18:54 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL Запрос к базе простецкий. Возвращает ее более 100 строк. не понимаю проблему ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 29.12.2021, 18:57 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  hVostt fkfka пропущено... Теоретически может, Но это целиком зависит от конкретной БД и надо проверять для конкретного случая. Дело не в длине поля (она мало на что влияет), а в том, что "стандартные" GUID-ы в отличии от sequence/identity совершенно не последовательно генерируются. Не может. У гуидов ток одна проблема. Страшно выглядят :) В остальном гуиды маст хев. те гуид в виде ПК в таблице? и отдавать клиенту набор данных с ключами не 1,2,3 , а страшные длинные строки?) с гуидом, ну или с глобальным счетчиком на все таблицы в редисе только одна проблема - руками в базу не добавишь ничего. с гуидом еще можно. а со счетчиком в редисе уже нет - рассинхрон ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.12.2021, 12:45 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL и отдавать клиенту набор данных с ключами не  1,2,3 , а страшные длинные строки?) Целое число - 8 байт. GUID - 16 байт. "Страшные длинные строки" только в голове у не совсем компетентных людей. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.12.2021, 14:23 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Dimitry Sibiryakov, 16 байт? недавно встретил реализацию, где guid хранился как текст, да еще и в юникоде ) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 30.12.2021, 15:09 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я и говорю -  у не совсем компетентных людей . ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 31.12.2021, 15:04 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Dimitry Sibiryakov Я и говорю -  у не совсем компетентных людей . у всех компетенции разные Что посоветует компетентный человек? Если совсем по простому. есть счет. приходит с клиента его шапка вместе с двумя строками тела. Идентифицировать что это один объект не проблема ) guid как то сомнительно , даже если хранить его в FB как CHAR(16) CHARACTER SET OCTETS Да и конвертировать его придется постоянно отдавая клиенту. Да и все ж базе оперировать в индексах с int или guid тоже разница есть, плюс в наличии еще помимо ПК еще и ФК. почитал как делаю всякие фэйсбуки и тд. получается так. при получении новых записей с клиента дергают какой то сервис , который отдает уникальный ИД в пределах всей базы. ну тот же редис со счетчиком. ну и далее уже после ответа клиенту добавляют в медленную базу. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 31.12.2021, 15:17 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL те гуид в виде ПК в таблице? и отдавать клиенту набор данных с ключами не  1,2,3 , а страшные длинные строки?) Страшные длинные строки это только на экране. При хранении это 128 бит, что всего в 4 раза больше int, т.е. париться на тему, что это типа много-долго-дорого -- просто смешно. Это ничто. AndrewVL с гуидом, ну или с глобальным  счетчиком  на все таблицы в редисе только одна проблема - руками в базу не добавишь ничего. с гуидом еще можно. а со счетчиком в редисе уже нет - рассинхрон Ну так в чём проблема-то? ) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.01.2022, 07:51 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL почитал как делаю всякие фэйсбуки и тд.  получается так. при получении новых записей с клиента дергают какой то сервис , который отдает уникальный ИД в пределах всей базы. ну тот же редис со счетчиком. ну и далее уже после ответа клиенту добавляют в медленную базу. Ну еси вы такое где-то там прочитали на заборе, ну так оно конечно же чистая правда :) В общем, непонятно чего вы хотите, решение вроде подсказали. Какие-то счётчики, медленные базы, редис с нецелевым использованием... ну хочется страдать, зачем мы будем мешать? ) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.01.2022, 07:55 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL Да и конвертировать его придется постоянно отдавая клиенту. Зачем? Не надо его конвертировать, отдавай как есть. AndrewVL Да и все ж базе оперировать в индексах с int или guid тоже разница есть Нет. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 01.01.2022, 14:48 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  AndrewVL Сумбурно слегка, но думаю понятно На текущий момент понятно, что Вы защищаетесь от несуществующей проблемы. Защититься от рассинхрона в целом очень просто: достаточно заранее запросить у базы набор идентификаторов и по мере поступления выдавать их объектам. Если это слишком сложно, можно использовать гуиды, тоже ничего страшного. Вот чего точно не стоит делать, так это, собирая велосипед, прикидывать: можно, конечно, поставить коробку передач от "мерседеса", но она ведь не выдержит движения со скоростью свыше 10 км/с, надо что-то получше. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 02.01.2022, 11:06 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  hVostt fkfka пропущено... Теоретически может, Но это целиком зависит от конкретной БД и надо проверять для конкретного случая. Дело не в длине поля (она мало на что влияет), а в том, что "стандартные" GUID-ы в отличии от sequence/identity совершенно не последовательно генерируются. Не может. У гуидов ток одна проблема. Страшно выглядят :) В остальном гуиды маст хев. Можешь попробовать сравнить ради прикола: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.01.2022, 23:58 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat, здесь это делается так: Код: sql 1. 2. 3. 4. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.01.2022, 17:48 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  softwarer fkthat, здесь это делается так: Ты меня хоть до конца читал? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.01.2022, 20:06 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat, не за что. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 13.01.2022, 20:13 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  fkthat softwarer fkthat, здесь это делается так: Ты меня хоть до конца читал? вам про форматирование (выделение) внутри тега SRC намекнули. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.01.2022, 11:25 | 
  
  
  
   | 
||
| 
 
Вопрос по архитектуре 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  msLex fkthat пропущено... Ты меня хоть до конца читал? вам про форматирование (выделение) внутри тега SRC намекнули. А, блин. Пепел мне на голову. Я про это и не знал - думал, что не поддерживается, разберусь при случае. :)) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.01.2022, 12:15 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?all=1&fid=33&tid=1547036]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    35ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    62ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 227ms | 
| total: | 369ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.