Re: "Входная очередь" средствами Оракла (offtop)
- From
- Alex Vin (2:5020/400)
- To
- Alex Vin (2:5054/37.63)
- Date
- 2005-04-13T11:37:36Z
- Area
- RU.RDBMS.ORACLE
From: Alex Vin <vin3@enreg.ru>
из того же перевода Тома Кайта:
"Недостаточное понимание того, что предлагает СУБД, может серьезно помешать в
будущем. Недавно разработчики демонстрировали мне созданное ими "очень нужное"
программное обеспечение. Это была система обмена сообщениями, решавшая проблему
очередей в базе данных. Она обычно возникает при необходимости использования таблицы
несколькими сеансами в качестве "очереди". Необходимо, чтобы несколько пользователей
могли заблокировать очередную запись, пропустив все уже заблокированные записи (они
уже обрабатываются). Проблема в том, что нет задокументированной возможности СУБД
для пропуска заблокированных строк. Поэтому, не зная о существовании средств,
предоставляемых СУБД Oracle, можно приняться за реализацию поддержки очередей
самостоятельно (или приобрести готовое решение).
Именно это и сделала упомянутая группа разработчиков. Они создали набор процессов и
придумали функциональный интерфейс для организации очередей сообщений в СУБД.
Они потратили на это немало времени и сил и были уверены, что сделали нечто
действительно уникальное. Когда я увидел систему в действии и узнал ее
функциональные
возможности, мне осталось сказать лишь одно: это аналог расширенной поддержки
очередей, Advanced Queues. Эта возможность давно встроена в СУБД. Она решает задачу
"получить первую незаблокированную запись в очереди и заблокировать ее". Все, что
нужно, уже сделано. Разработчики, не зная о существовании такой возможности,
потратили на
ее реализацию много времени и сил. Кроме того, им придется тратить немало времени и
на ее поддержку в дальнейшем. Их руководитель не очень обрадовался, узнав, что
вместо
уникального программного обеспечения получилась эмуляция встроенной возможности
СУБД.
[..]
С подобными случаями я сталкиваюсь постоянно: затрачиваются громадные усилия на
решение проблем, уже давно решенных в самой СУБД. Если вы не потратите время на
изучение того, что предлагается, рано или поздно будете наказаны, изобретая
велосипед. "
--- ifmail v.2.15dev5.3
* Origin: ENREG (2:5020/400)
SEEN-BY: 50/203 520 450/159 186 451/30 452/25 454/9 461/33 43 74 106 640
SEEN-BY: 464/34 465/204 469/125 999 550/5068 4623/56 4625/8 9 4626/100 4627/10
SEEN-BY: 4641/444 4646/1 4653/10 4657/50 5000/76 5001/5001 5002/76 5002
SEEN-BY: 5003/34 57 5004/58 5006/1 5007/1 5010/53 70 5011/13 5015/4 28 5020/20
SEEN-BY: 5020/52 104 115 118 128 150 175 194 400 401 545 600 639 642 715 758
SEEN-BY: 5020/794 894 921 968 982 1057 1100 1169 1212 1234 1356 1604 1626 1642
SEEN-BY: 5020/1835 1873 1909 1930 2013 2020 2200 2238 4400 4441 5021/3 44
SEEN-BY: 5022/128 5023/11 5025/19 151 750 5026/14 45 78 5030/69 195 382 920
SEEN-BY: 5030/966 1016 1063 1339 1900 5032/11 16 5033/21 35 5034/8 5035/10
SEEN-BY: 5036/1 13 5037/21 5040/33 47 5041/4 10 5042/13 5045/7 42 5049/157
SEEN-BY: 5050/9 41 5051/15 35 5053/16 5054/1 8 9 28 35 37 45 50 5056/16 5057/1
SEEN-BY: 5058/77 5059/20 5060/88 90 5061/15 5062/1 5063/5 41 51 5064/7 35 36
SEEN-BY: 5066/18 5070/26 66 1222 5071/22 5079/23 49 5080/80 1003 5081/2 5082/6
SEEN-BY: 5083/13 21 5090/23 5093/27 57 5100/113 6000/12 6001/3
PATH: 5020/400 4441 52 5054/1 37