komar 04.02.2013 10:39 thinkpad

Решено хранить 80кк файлов в монге. Ожидаю былиннейший отказ.

Recommended by: @zw0rk
1. kb 04.02.2013 10:41

Предвещаю отсутствие шардинга, а потом жалобы "почему оно плохо работает".

2. gelraen 04.02.2013 10:41 work-laptop

отпизди их ссаным тапком

3. komargelraen /2 04.02.2013 10:43 thinkpad

Я написал на листке «а нехуй было выебываться» и запаковал его в конверт.
Через несколько месяцев вручу.

4. gelraenkomar /3 04.02.2013 10:45 work-laptop

можно вручить сейчас и сказать когда распечатать

5. overmind88 04.02.2013 11:20 Psi+

почему рельсовики дрочат на монгу?

6. komarovermind88 /5 04.02.2013 11:23 thinkpad

Не все вообще-то.
Дрочат потому, что ЭСКУЭЛЬ ДЖОЙНЫ МИГРАЦИИ СХЕМЫ ААААА СПАСИТЕ НАС

7. kbovermind88 /5 04.02.2013 11:29 04a3831c

я дрочу потому что можно сериализовать сложные документы, а потом по ним еще и искать.

8. overmind88komar /6 04.02.2013 11:31 Psi+

Но очень многие. Ещё есть дрочащие на постгре, они кажутся более адекватными

9. kurkumaovermind88 /5 04.02.2013 11:31

СЛОЖНЫЕ ЗАПРОСЫ В RUBY ON RAILS потому что

10. komarkurkuma /9 04.02.2013 11:32 thinkpad

О да, и поэтому тоже.

11. komarovermind88 /8 04.02.2013 11:32 thinkpad

Собачую.

12. cirnokb /7 04.02.2013 11:39 Lambdadelta

в аноосе поищи у себя, пёс.

13. kbcirno /12 04.02.2013 11:40 04a3831c

нахуй сходи, уёбок

14. cirnokb /13 04.02.2013 11:40 Lambdadelta

поуказывай в моём микробложике куда мне идти, пёс.

15. kbcirno /14 04.02.2013 11:41

сейчас на BL нарвёшься

16. kurkumakb /13 04.02.2013 11:42 Gajim

в чем проблема искать в таблицах?

17. cirnokb /15 04.02.2013 11:42 Lambdadelta

Смотрите, он блэклистом угрожает.

18. kbkurkuma /16 04.02.2013 11:42 04a3831c

ну там по всвяким tags: ['foo', 'bar'] не знаю, запилили ли уже, что уж говорить про вложенные документы и проч.

19. cirnokurkuma /16 04.02.2013 11:43 Lambdadelta

Вероятно необходимо чтобы при любом чихе лочилась вся база :)))

20. cirnokurkuma /16 04.02.2013 11:43 Lambdadelta

тип спокойнее, лал

21. kurkumakb /18 04.02.2013 11:43 Gajim

и в чем проблема?

22. kurkumacirno /19 04.02.2013 11:43 Gajim

лол

23. kurkumacirno /20 04.02.2013 11:43 Gajim

чо за тип

24. gds 04.02.2013 11:43

пиздец кококой-то. Всячески уклоняйся от ответственности за работоспособность этого говна.

25. kurkumagds /24 04.02.2013 11:44 Gajim

типичный пидораха

26. cirnokurkuma /23 04.02.2013 11:44 Lambdadelta

MongoDB uses a readers-writer [1] < http://docs.mongodb.org/manual/faq/concu... lock that allows concurrent reads access to a database but gives exclusive access to a single write operation. :))))))))))))))))))))))))))))))))))))))))))))

27. cirnokurkuma /23 04.02.2013 11:44 Lambdadelta

Exclusive VIP LUXURY 100% ACCESS

28. kurkumacirno /27 04.02.2013 11:45 Gajim

лел

29. kbcirno /19 04.02.2013 11:45 04a3831c

не база а воркер-процесс, но да, это пиздец.

30. cirnokb /29 04.02.2013 11:45 Lambdadelta

гав-гав

31. kurkumakb /29 04.02.2013 11:45 Gajim

ппц говно какое-то, как вы это едите

32. gdskurkuma /25 04.02.2013 11:48

ты так говоришь, как будто это что-то плохое.

с другой стороны, за последствия принятия решения должен отвечать тот, кто его принял. камар такого хуёвого решения не принимал, следовательно, не должен отвечать за последствия.

33. kbkurkuma /21 04.02.2013 11:48 04a3831c

то есть по-твоему это нормально?

To search for a value in an array, each value must be checked. This can be done manually, if you know the size of the array. For example:

SELECT * FROM sal_emp WHERE pay_by_quarter[1] = 10000 OR
pay_by_quarter[2] = 10000 OR
pay_by_quarter[3] = 10000 OR
pay_by_quarter[4] = 10000;

34. kbkurkuma /21 04.02.2013 11:48 04a3831c

ну или запили мне как бы ты хранил сущность поста со списком тегов и поиску по ним

35. kurkumakb /34 04.02.2013 11:49 Gajim

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

36. kbkurkuma /35 04.02.2013 11:50 04a3831c

и ты считаешь это нормальным?

37. kurkumakb /36 04.02.2013 11:50 Gajim

конечно это ненормально, лудше давай залочим базу и пусть весь мир подождет!

38. kbkurkuma /37 04.02.2013 11:51 04a3831c

не базу а воркер (ну и они уже осознали свою тупость и потихоньку пилят нормальные локи).

39. gdskb /36 04.02.2013 11:54

а чо тут ненормального?

40. kurkumakb /38 04.02.2013 11:54 Gajim

базы хуязы воркеры хуерки локи хуйлюки ХУЛИ МЕНЯ ВООБЩЕ ДОЛЖНЫ ЕБАТЬ ЭТИ ПРОБЛЕМЫ БЫДЛА?
деды писали на sql и нам завещали, самый умный дохуя?

41. kurkumagds /39 04.02.2013 11:55 Gajim

слишком сложно для макаки просто

42. kbkurkuma /40 04.02.2013 11:56 04a3831c

я говорю воркер, потому что можно достаточно просто сделать шардинг в случае нагрузки сервера, даже такой, где нормальные локи не помогут.

43. kurkumakb /42 04.02.2013 11:57 Gajim

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

44. komargds /24 04.02.2013 11:57 thinkpad

С самого первого дня, няша.

45. komarkb /33 04.02.2013 11:58 thinkpad

У тебя ноуэскуэль головного мозга. Какой мудак будет так проектировать базу?

46. komarkb /36 04.02.2013 11:59 thinkpad

Я даже назову это нормализованным.

47. kbkomar /45 04.02.2013 11:59 04a3831c

как проектировать базу? хранить список тегов списком строк?

48. kurkumakb /47 04.02.2013 11:59 Gajim

да

49. cirno 04.02.2013 12:13

mongodb is a webscale, бгг)))

50. kbkomar /46 04.02.2013 12:15

Сбрасывать список строк в единую кучу, чтоб потом докинуть не(обязательно)нужных индексов, чтоб потом при запросах джойнить и склеивать обратно — зато смотрите как у нас всё нормализовано.

51. cirnokurkuma /48 04.02.2013 12:31 Lambdadelta

Кросс-таблица с индексами плоха?

52. cirnocirno /51 04.02.2013 12:32 Lambdadelta

Про ультрахайлоад ваш не знаю, как там будет, но думаю всяко лучше монги. :coolface:

53. kbcirno /52 04.02.2013 12:33

> :coolface:

да съеби уже со своими шуточками смешными

54. kurkumacirno /51 04.02.2013 12:33 Gajim

нет, он просто тупой (слишком сложно для питониста)

55. cirnokb /53 04.02.2013 12:33 Lambdadelta

гав-гав-гав

56. kurkuma 04.02.2013 12:34 Gajim

короч, типикал логика монгобляди: таблицы кококо связи кококо слишком сложно, лудше давайте насрем все в кучу, а дальше оно как-нибудь само

57. cirnokb /53 04.02.2013 12:34 Lambdadelta

Это не смешные шуточки, а проверенный годами дизайн. А ты продолжай пить латте макиато со своими кофаундэрами в старбаксе)))

58. kbkurkuma /54 04.02.2013 12:35 04a3831c

не сложно, просто не всегда это нужно, на мой взгляд

59. kbkurkuma /56 04.02.2013 12:35 04a3831c

что ты пиздишь хуйню всякую? таблицы, джойны — всё очень нужно. просто не всегда.

60. kurkumakb /58 04.02.2013 12:35 Gajim

для хелловордов конечно не нужно

61. cirnokb /58 04.02.2013 12:36 Lambdadelta

> не всегда нужно
Ну с вашими кучами и sqlite справится наверное.

62. kurkumakb /59 04.02.2013 12:36 Gajim

ненужно если у тебя 1 таблица

63. 0xd34df00dkurkuma /56 04.02.2013 12:36 Azoth_primary

Я так личкрафты пишу.

64. kbkurkuma /62 04.02.2013 12:36 04a3831c

типикал SQL-долбоёб, как только две таблицы — сразу МНОГО КО МНОГИМ, ДЖОЙНЫ ВСЕМ ДЖОЙНЫ

65. 0xd34df00dkb /64 04.02.2013 12:37 Azoth_primary

Че.

66. cirnokb /64 04.02.2013 12:37 Lambdadelta

про тебя)))) http://blog.twelephone.com/post/40654080...

67. 0xd34df00dcirno /66 04.02.2013 12:37 Azoth_primary

)))))))))))))))))))))))

68. kb0xd34df00d /65 04.02.2013 12:37 04a3831c

куркума утверждает, что джойны не нужны только если у тебя одна таблица.

69. 0xd34df00dkb /68 04.02.2013 12:38 Azoth_primary

А как же джойниться с самим собой?

70. kurkuma0xd34df00d /63 04.02.2013 12:38 Gajim

я в тебе не сомневался, няша :-*

71. 0xd34df00dkurkuma /70 04.02.2013 12:38 Azoth_primary

*-:

72. kurkumakb /64 04.02.2013 12:39 Gajim

ебать тебе бабахнуло

73. cirno 04.02.2013 12:39 Lambdadelta

Вот еще про монгоцефалов)))) https://gist.github.com/raw/660696/09db9...

74. 0xd34df00d 04.02.2013 12:39 Azoth_primary

Не понимаю, кто ИТТ срется с кем и кто отстаивает какую точку зрения, но соснули все.

75. kurkuma0xd34df00d /69 04.02.2013 12:39 Gajim

реддит-вей

76. 0xd34df00dkurkuma /75 04.02.2013 12:39 Azoth_primary

Форевер-алон-вей.

77. kurkuma0xd34df00d /71 04.02.2013 12:39 Gajim

хакир

78. 0xd34df00dkurkuma /77 04.02.2013 12:40 Azoth_primary

Хэккер.

79. komar0xd34df00d /74 04.02.2013 12:42 thinkpad

Давай я тебя заблеклищу, чтобы ты мне треды не портил.

80. cirnokomar /79 04.02.2013 12:43 Lambdadelta

заблэклисти ему дедик на хецнере)

81. kurkumakomar /79 04.02.2013 12:43 Gajim

ппц ты цензурщик, зачем ты ущемляешь свободу разрабов свободного по?

82. kurkumacirno /80 04.02.2013 12:43 Gajim

могу спалить как (не спалю)

83. cirnokurkuma /82 04.02.2013 12:43 Lambdadelta

> implying у разработчиков есть свобода

84. kurkumacirno /83 04.02.2013 12:44 Gajim

у меня есть свобода, я могу ругать путина в интернете

85. cirnokurkuma /84 04.02.2013 12:44 Lambdadelta

ппц ты

86. komarcirno /80 04.02.2013 12:44 thinkpad

КОКОКО Я ТРАЧУ СВОБОДНОЕ ВРЕМЯ КОКОКО ВКЛАДЫВАЮ ДУШУ В ЛИЧЬКРАФТЫ КОКОКО СПАСАЮ МИР КОКОКО МУДАКИ

87. kurkumakomar /86 04.02.2013 12:45 Gajim

а сколько плагинов для личкрафтов УЖЕ написал ТЫ?

88. komarkurkuma /87 04.02.2013 12:45 thinkpad

0

89. kurkumakomar /88 04.02.2013 12:45 Gajim

спасибо!

90. zw0rkkb /33 04.02.2013 12:56 home8D9BE57F

http://postgresql.ru.net/manual/function... зойчем сравнивать поэлементно?

91. cirnozw0rk /90 04.02.2013 12:59 Lambdadelta

Ты думаешь монгодебилы могут осилить документацию сложнее шести страничек?

92. zw0rkcirno /91 04.02.2013 13:01 home8D9BE57F

ну рано или поздно, любой монгодебил начинает помнить наизусть исходники монги, когда из желания ОСТАВИТЬ МОНГУ ВО ЧТОБЫ ТО НИ СТАЛО, он медленно перепиливает её в аналог sqlite

93. cirnozw0rk /92 04.02.2013 13:02 Lambdadelta

> любой монгодебил начинает помнить наизусть исходники монги

Она на 70% из яваскрипта состоит?

94. kurkumazw0rk /90 04.02.2013 13:02 Gajim

не пали пилз

95. zw0rkcirno /93 04.02.2013 13:03 home8D9BE57F

вроде бы на плюсцах на 76.7% https://github.com/mongodb/mongo

96. zw0rkkb /50 04.02.2013 13:28 home8D9BE57F

и правда, зачем, например, декомпозить программу в эти объекты, функции, методы, чтобы потом их снова склеивать обратно — зато смотрите как у нас всё модульно

97. kurkumazw0rk /96 04.02.2013 13:28 Gajim

зато без джойнов
!

98. Cthulhuzw0rk /96 04.02.2013 13:32 work

Зато все просто и понятно, в одном месте, процессор все равно разберется!

99. kurkumaCthulhu /98 04.02.2013 13:33 Gajim

лел

100. kbzw0rk /90 04.02.2013 18:31 04a3831c

это была цитата из офф документации, у неё и спроси. Да, я знаю, что можно сделать = ANY(), например. Правда не знаю, можно ли построить индекс по всем элементам массива и затем искать, в реляционных БД я бы и правда сделал внешнюю таблицу и прочие один ко многим.

101. kbcirno /91 04.02.2013 18:32

Посмотрите на этого долбоёба.

102. cirnokb /101 04.02.2013 18:32 Lambdadelta

ты еще не успокоился?

103. kbgds /39 04.02.2013 18:37

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

104. cirnokb /103 04.02.2013 18:40 Lambdadelta

> и шардить
> и шардить
> и шардить

105. kbzw0rk /96 04.02.2013 18:42 04a3831c

давно думал, что мало декомпозиции, может каждую колонку в отдельную таблицу и один к одному? вот архитектура будет! охуеть просто.

106. kbcirno /104 04.02.2013 18:44 04a3831c

web scale головного мозга, ужас просто.

107. cirnokb /106 04.02.2013 18:44 Lambdadelta

Создаю шарды в /dev/null, оче быстро, тимлид хвалит.

108. kbcirno /107 04.02.2013 18:45 04a3831c

было

109. kbcirno /102 04.02.2013 18:46 04a3831c

> ко-ко-ко

110. zw0rkkb /105 04.02.2013 18:57 homeAB46257B

Заставь дурака Богу молиться, он и лоб расшибёт.

111. gdskb /103 04.02.2013 18:59 umodni1D8874BB

какая разница, в каком виде хранится сущность в бд? Интерфейс с бд в хорошем случае представляет собой: 1. исключительно views и редкие хранимки для выборок, 2. исключительно хранимки для изменения данных. Будет у тебя "select author, body, tags_array from posts_v where id = 123" для выборки, "add_post(author, body, tags_{array,string})" для добавления поста. Но профит от этого неиллюзорен: в простых случаях база данных не обязана работать с сущностями так, как работает с ними программа (чуешь дуальность?), а позволяет себе работать с сущностями так, как это выгоднее по производительности.

112. kbzw0rk /110 05.02.2013 01:08 04a3831c

это был ответ на /46, должно быть.

Do you really want to delete ?