(495)
755-71-27




25 Понедельник
Сентябрь 2017
Пн Вт Ср Чт Пт Сб Вс
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
 
 
 
 
 

делимся мыслями



zver

10:59:00

Tue 07.Jul.2009

А мы вчера застряли в лифте!
Технологии | 


Видимо стоило бы вернуться домой пятью минутами позже...


kaa

10:57:00

Thu 02.Jul.2009

Реализация инкремента для memcached-подобных платформ
Технологии | 


 В memcached и прочих memcachedb инкремент (и декремент) реализованы так, что если пытаться инкрементить/декрементить пустой ключ, API вернет неадекватный результат, боле того, ключ не будет создан. Что же делать несчастным php-программистам, которые привыкли, что каунтеры не обязательно создавать перед операциями? Был предложен варинат перед каждым инкрементом/декрементом пытаться делать add, но этот вариант был нами отметен за потерю производительности (по сути в двое). Поэтому была написана такая конструкция:

1. пытаемся сделать инкремет (декремент) и проверяем результат.

2. если результат адекватен (не 0 и не false) - возвращаем его

3. пытаемся сделать add для ключа со значением 1 и проверяем результат

4. если результат - истинный, возвращаем 1.

5. снова делаем инкремент/декремент (если не сработала строка 4, значит другой процесс уже создал ключ)

6. возвращаем результат операции (новое значение счетчика, либо false)

При таком подходе add для ключа вызывается только в случае необходимости.



kaa

12:28:00

Mon 22.Jun.2009

Уникальные ID в key-vallue базах данных
Технологии | 


Как сделать уникальные ID записей для key-vallue баз нанных? Да очень просто. Представим, что у нас есть некий поисковый робот, который сканирует интернет в поисках информации. Есть какая-то часть этого робота, которая добавляет ссылки (по сути - адреса страниц, которые нам надо будет просмотреть) в нашу базу. И мы по какой-то причине хотим, чтобы эти страницы можно было вытащить по уникальным идентификаторам. Конечно, сами имена страниц являются уникальными идентификаторами. Но они не дают нам возможности взять и вытащить список всех ссылок из базы (помните, у нас база key-value?). Что же делать?

Алгоритм действий при добавлении ссылок в базу следующий:

1. Пытаемся добавить (add) ссылку в базу. Если эта операция вернет false - значит такая ссылка в базе уже есть. Если true - значит мы добавили новую ссылку.

2. Увеличиваем каунтер ссылок на 1 (операция incr) и получаем результат - новый ID для нашей ссылки.

3. Дописываем ID в данные ключа ссылки.

4. Так же создаем ключ с ID ссылки и записываем туда саму ссылку. В итоге у нас получилась пара ключей: ссылка:ID и ID:ссылка.

Теперь в любой момент времени мы знаем, сколько ссылок у нас в базе, и можем обратиться к каждой по уникальному ID. Можно вывести список ссылок при помощи цикла. Можем для каждой ссылки так же получить дополнительные параметры (если предварительно сохранили их в базе данных).



kaa

20:05:00

Thu 18.Jun.2009

Базы данных key-value
Технологии | 


Особенности:

Базы данных key-value имеют ряд особенностей, которые обусловливают их применение. Среди особенностей есть как достоинства, так и не достатки, а так же некоторые свойства, которые трудно отнести определенно к тому или другому типу.





«« вернуться

аутсорсинг сайты сборка компьтеров он-лайн вещание создание сайтов сопровождение продвижение сети компьютеры данные сборка компьютеров на заказ установка ПО Гарантийное обслуживание сопровождение (техническое обслуживание компьютерной техники)