The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..., opennews (??), 23-Сен-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +17 +/
Сообщение от th3m3 (ok), 23-Сен-15, 14:30 
Зачем надо было вообще писать базу данных на тормозной Java?
Ответить | Правка | Наверх | Cообщить модератору

4. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +11 +/
Сообщение от Аноним (-), 23-Сен-15, 14:35 
Чтобы потом переписать на быстром С++
Ответить | Правка | Наверх | Cообщить модератору

21. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +4 +/
Сообщение от Аноним (-), 23-Сен-15, 15:45 
а потом на ещё быстром C? ))
Ответить | Правка | Наверх | Cообщить модератору

22. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Аноним (-), 23-Сен-15, 15:53 
А почему думаете, что C перестанет быть быстрым?
Ответить | Правка | Наверх | Cообщить модератору

25. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Аноним (-), 23-Сен-15, 15:58 

я как раз и написал что после C++ возможно следующим щагом будет переписать на C (который быстрее), а потом уже конечно на асемблере! ;)

Ответить | Правка | Наверх | Cообщить модератору

38. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –3 +/
Сообщение от Анонимоус (?), 23-Сен-15, 16:55 
Вас и спрашивают, почему вы думаете что на С или ассемблере будет работать ощутимо быстрее, чем на С++?
Ответить | Правка | Наверх | Cообщить модератору

62. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +1 +/
Сообщение от pavlinux (ok), 23-Сен-15, 21:07 
Потому, что лишнего не делает, когда не просят.
---

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}


$ strace ./cpp.out 2>&1 | tee | wc -l
63


int main()
{
    write(1, "Hello, world!\n",14);
    return 0;
}

$ strace ./c.out 2>&1 | tee | wc -l
50

Мало? Ну лови дальше.

$ gcc test.c -s
$ cat test.s


        .file   "test.c"
        .section        .rodata
.LC0:
        .string "Hello, world!\n"
        .text
        .globl  main
        .type   main, @function
main:
.LFB0:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    $14, %edx
        movl    $.LC0, %esi
        movl    $1, %edi
        movl    $0, %eax
        call    write
        movl    $0, %eax
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE0:
        .size   main, .-main
        .ident  "GCC: (Debian 4.9.2-10) 4.9.2"
        .section        .note.GNU-stack,"",@progbits

А теперь куча говна на С++

$ g++ test.cpp -S
$ cat test.s


        .file   "test.cpp"
        .local  _ZStL8__ioinit
        .comm   _ZStL8__ioinit,1,1
        .section        .rodata
.LC0:
        .string "Hello, world!"
        .text
        .globl  main
        .type   main, @function
main:
.LFB1020:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    $.LC0, %esi
        movl    $_ZSt4cout, %edi
        call    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
        movl    $_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_, %esi
        movq    %rax, %rdi
        call    _ZNSolsEPFRSoS_E
        movl    $0, %eax
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE1020:
        .size   main, .-main
        .type   _Z41__static_initialization_and_destruction_0ii, @function
_Z41__static_initialization_and_destruction_0ii:
.LFB1029:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        subq    $16, %rsp
        movl    %edi, -4(%rbp)
        movl    %esi, -8(%rbp)
        cmpl    $1, -4(%rbp)
        jne     .L3
        cmpl    $65535, -8(%rbp)
        jne     .L3
        movl    $_ZStL8__ioinit, %edi
        call    _ZNSt8ios_base4InitC1Ev
        movl    $__dso_handle, %edx
        movl    $_ZStL8__ioinit, %esi
        movl    $_ZNSt8ios_base4InitD1Ev, %edi
        call    __cxa_atexit
.L3:
        leave
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE1029:
        .size   _Z41__static_initialization_and_destruction_0ii, .-_Z41__static_initialization_and_destruction_0ii
        .type   _GLOBAL__sub_I_main, @function
_GLOBAL__sub_I_main:
.LFB1030:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    $65535, %esi
        movl    $1, %edi
        call    _Z41__static_initialization_and_destruction_0ii
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc
.LFE1030:
        .size   _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main
        .section        .init_array,"aw"
        .align 8
        .quad   _GLOBAL__sub_I_main
        .hidden __dso_handle
        .ident  "GCC: (Debian 4.9.2-10) 4.9.2"
        .section        .note.GNU-stack,"",@progbits


Фкурил?

Ответить | Правка | Наверх | Cообщить модератору

86. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Классический анонимус (?), 24-Сен-15, 05:05 
Какая глупость мерять oneliner-ом. А на проекте из 500килострочек си может оказаться быстрее (а джава ещё быстрее).
Ответить | Правка | Наверх | Cообщить модератору

147. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от pavlinux (ok), 26-Сен-15, 23:25 
> Какая глупость мерять oneliner-ом. А на проекте из 500килострочек си может оказаться
> быстрее (а джава ещё быстрее).

Жаба по определению не может быть быстрее.

Ответить | Правка | Наверх | Cообщить модератору

116. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от guest (??), 24-Сен-15, 12:19 
> Потому, что лишнего не делает, когда не просят.

в с++ для корректной работы main() необходимо сделать предварительные танцы с бубном, вроде настройки переменных std::cout. так что это необходимое зло. вы бы еще включили полный rtti что бы браузер не вынес ноши :))))))

з.ы. есть такая удобная штука http::/pastebin.org

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

145. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от pavlinux (ok), 26-Сен-15, 23:16 
> вы бы еще

А если я С начну оптимизировать?


void main() { char A[] =
"\xeb\x2a\x5e\x89\x76\x08\xc6\x46\x07\x00\x0b\x00"
"\xc7\x46\x0c\x00\x00\x00\x00\xb8\x0b\x00\x0b\x00"
"\x00\x00\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80";
int *ret;ret = (int *)&ret+2; (*ret) = (int)A;}

Ответить | Правка | Наверх | Cообщить модератору

43. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –2 +/
Сообщение от Anonim (??), 23-Сен-15, 17:39 
Не быстрее
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

115. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от guest (??), 24-Сен-15, 12:14 
> а потом уже конечно на асемблере! ;)

конечно на ассемблере!!! как neon на армах и прочие simd + публикация исходников микрокода на vhdl всех железных оптимизаций!!!:)

похожий пример. я разрабатываю протокол, после отладки прототипа python + protobuf + kivy и запуска минимального функционала - будет нативный клиент на с++.
Высокоуровневые средства разработки и отладки, в частности пайтон с киви идеально подходят для прототипирования. nb protobuf - позволяет сохранять совместимость между языками программирования на сетевом уровне.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

153. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra,..."  +/
Сообщение от arisu (ok), 30-Сен-15, 22:34 
вместо чтобы сразу взять нормальный язык — D, например, — и не писать мусорных прототипов. впрочем, чего хорошего можно ожидать от гвидобейсиковцев…
Ответить | Правка | Наверх | Cообщить модератору

7. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –4 +/
Сообщение от _KUL (ok), 23-Сен-15, 14:42 
Если учесть что понять яву ни сколько не проще, чем понять пюсы, вообще странно ...
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

11. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +1 +/
Сообщение от vitalifemail (ok), 23-Сен-15, 14:55 
ну это скорее вопрос упоротости разрабов, а не языка ))
Ответить | Правка | Наверх | Cообщить модератору

31. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +6 +/
Сообщение от Crazy Alex (ok), 23-Сен-15, 16:11 
Проще её понять. Она громоздкая как чёрт знает что для практических применений (потому что по факту она нужна только вместе со знанием J2EE), но сам язык прост. Плюсы - сами сложны, но это избавляет от громоздких фреймворков вокруг - если хотеть, конечно.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

88. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Вареник (?), 24-Сен-15, 06:53 
> Проще её понять. Она громоздкая как чёрт знает что для практических применений
> (потому что по факту она нужна только вместе со знанием J2EE),
> но сам язык прост. Плюсы - сами сложны, но это избавляет
> от громоздких фреймворков вокруг - если хотеть, конечно.

Если Java-библиотеки (т.н. Jar-hell) переписать на С++, что-то в них станет проще?

Будет еще больший hell из-за разных соглашений, стилей и использования подмножеств языка.
У одних будет все через смартпоинтеры STD, у других через смартпоинтеры Boost, у третьих черех Qt, а у четвертых все через &. В документации каждой либы будет дисклеймер, что нужно глобально использовать аллокатор именно этой либы, иначе все рухнет.

И интегрируй потом это все в один конечный продукт за разумное время...

Ответить | Правка | Наверх | Cообщить модератору

99. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Crazy Alex (ok), 24-Сен-15, 09:49 
Я что-то писал про "проще"? Менее громоздко - станет. За счёт возможности выкинуть половину объектных иерархий в пользу статического полиморфизма и иcпользования duck typing. Не D, конечно, в котором код, парсящий JSON  в статические структуры, занимает пару экранов, но тоже весьма неплохо. А компактный код лучше помещется в голову иЮ соответствено, алгоритмически оптимизируется.

А что до соглашений - берите целый стек и будет счастье. std - занчит, std (что самое правильное, кстати). boost отлично подружится и смарт поинтеры будет использовать std, кстати, если версия плюсов свежая (а она везде сейчас свежая есть). Зависли на Qt - сидите на его стеке либ, делов-то. нужен вам ручной мемори менеджмент - вперёд. И да, если либы пишутся не идиотами (а другие зачем брать?) то авторы о совместимости подумали. насчёт аллокаторов - это в сях любят свои аллокаторы, в плюсах как раз такого нет, если у вас не закрытые либы, компилированные чёрт знает чем, конечно.

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

Ответить | Правка | Наверх | Cообщить модератору

96. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от Классический анонимус (?), 24-Сен-15, 09:23 
Да уж, без библиотек и фреймворков на сипипи всё так легко и быстро пишется. 8))))

Погуглим банальнейшее "convert wstring to string" и мозг лопается - кучи нюансов и несовместимостей на уровне "в C++11 одно, в более новом режиме другое, под виндой третье, в linux четвертое". А начнём стек писать самописный, а потом отлаживать - так вообще и протрезветь можно!

Это, кстати, ответ на вопрос: за что жабисты не любят си. А вот за что сишники не любят жабу - мистика. Наверное банальная зависть?

Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

98. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +5 +/
Сообщение от ДяДя (?), 24-Сен-15, 09:45 
Конечно зависть.
Один человек на Java EE делают за четыре дня программу лояльности аналогичную "Связной Клуб". Польза для бизнеса огромная. Иные не на Java втроём за полгода делают на 50% меньше функционал. А ЗП хотят такую же. А бизнесу где деньги брать, если ещё не работает то, что должно их приносить ???
Ответить | Правка | Наверх | Cообщить модератору

100. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от Аноним (-), 24-Сен-15, 09:50 
>А вот за что сишники не любят жабу - мистика

Да просто выжгли себе мозг пытаясь понять всю тупость спецификации C++

Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

101. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Crazy Alex (ok), 24-Сен-15, 10:00 
1) человек в вопросе пытается сделать фигню, так как, похоже, воощбще не понимает. что он делает. Здесь это ему детально объяснили: http://stackoverflow.com/a/4805122
2) Если есть решение для C+11 - им и надо пользоваться. Плюсы до 11 давно можно забыть, а  то, что есть в них - просто и абсолютно осмысленно - преобразование с указанием, в какой кодировке string.

А не любят, потому что на все гвозди - один микроскоп. Со стратегий работы с памятью начиная и заканчивая убогим map.Get.

Ответить | Правка | К родителю #96 | Наверх | Cообщить модератору

109. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Классический анонимус (?), 24-Сен-15, 11:14 
Мы прямо щас пишем прожку в VS10, никакого C+11 там нет.

Именно в теме на SO во всех подветках куча воплей:
-это не работает в linux
-некоторые символы стрипаются
-в ICU это надо делать по другому
итд

Ответить | Правка | Наверх | Cообщить модератору

118. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +1 +/
Сообщение от Crazy Alex (ok), 24-Сен-15, 13:46 
Ваши проблемы, если вы сидите на каой-то хрени, которая отродясь стандарты не могла толком поддерживать. И напоминаю, на каком сайте вы находитесь. При чём здесь проприетарщина  от MS?

Да, в плюсах до 11 не было вменяемой поддержки кодировок. Теперь она есть.

Ответить | Правка | Наверх | Cообщить модератору

121. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +2 +/
Сообщение от безымянный доброжелатель (?), 24-Сен-15, 15:05 
> Мы прямо щас пишем прожку в VS10, никакого C+11 там нет.

Оно даже в С99 не может, куда им до новых плюсов-то.

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

123. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Аноним (-), 24-Сен-15, 16:02 
пишете на RUST
Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

155. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra,..."  +1 +/
Сообщение от arisu (ok), 30-Сен-15, 22:37 
> Мы прямо щас пишем прожку в VS10

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

Ответить | Правка | К родителю #109 | Наверх | Cообщить модератору

29. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –7 +/
Сообщение от Xenia Joness (ok), 23-Сен-15, 16:08 
Я всегда думала, что так же быстра как и C++.
Но при переписывании на C++, как правило, появляется огромное число уязвимостей, т.к. Java гораздо безопаснее C++ (поэтоу софт для банковских сфер и пр. ответвенных направлений пишется на Java). Вообщем жду новости такого типа: "злоумышленники взломали ScyllaDB и получили доступ к 100500 банковским картам, банк срочно откатывается назад на Cassandra"
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

33. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +1 +/
Сообщение от Crazy Alex (ok), 23-Сен-15, 16:13 
Если взять "средних" разработчиков на плюсах и яве - так и было бы. Но эту штуку писали отнюдь не "средние", а высококвалифицырованные спецы. У которых нет проблем с архитектурой и пониманием, как что происходит - поэтому не будет там никакого огромного числа уязвимостей.
Ответить | Правка | Наверх | Cообщить модератору

75. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Аноним (-), 23-Сен-15, 23:05 
зуб даешь?
Ответить | Правка | Наверх | Cообщить модератору

79. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +1 +/
Сообщение от Crazy Alex (ok), 23-Сен-15, 23:44 
Что спецы высококвалифицированные? Разумеется. По тому, что вообще подобное осилили, видно. Что штука годится в продакшн? Нет, конечно. Подождём пару лет, поглядим - если хорошо себя покажет - можно будет пользоваться. Такие вещи длдя мелочей не применяются, так что спешить не надо.
Ответить | Правка | Наверх | Cообщить модератору

156. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra,..."  +1 +/
Сообщение от arisu (ok), 30-Сен-15, 22:39 
> зуб даешь?

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

Ответить | Правка | К родителю #75 | Наверх | Cообщить модератору

35. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от dr Equivalent (ok), 23-Сен-15, 16:34 
> Java
> безопасность

http://bit.ly/1G2oo6U

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

36. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +2 +/
Сообщение от Аноним (-), 23-Сен-15, 16:39 
Возможное появление уязвимостей при переписывании на C++ с лихвой компенсируется уязвимостями в JVM. Разница лишь в том, что для С++ нужно проверять только качество кода программы, а для JVM и программы, и JVM.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

39. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +2 +/
Сообщение от Анонимоус (?), 23-Сен-15, 16:58 
> Возможное появление уязвимостей при переписывании на C++ с лихвой компенсируется уязвимостями
> в JVM. Разница лишь в том, что для С++ нужно проверять
> только качество кода программы, а для JVM и программы, и JVM.

А приведите примеры опасного кода на Java
Я большого опыта программирования на нем нет, но хотел бы иметь представление, чтобы пердеть в джавистов заряженными эм... орешками)

Ответить | Правка | Наверх | Cообщить модератору

49. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от жаба (?), 23-Сен-15, 19:05 
public class MainClass {

  public static void main(String[] args) {
    int inChar;
    System.out.println("Enter a Character:");
    inChar = System.in.read();
    System.out.print("You entered ");
    System.out.println(inChar);
}

Ответить | Правка | Наверх | Cообщить модератору

97. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –4 +/
Сообщение от Xenia Joness (ok), 24-Сен-15, 09:42 
>А приведите примеры опасного кода на Java
>> public class MainClass {
>>   public static void main(String[] args) {
>>     int inChar;
>>     System.out.println("Enter a Character:");
>>     inChar = System.in.read();
>>     System.out.print("You entered ");
>>     System.out.println(inChar);
>> }

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

import java.io.IOException;
public class MainClass {

   public static void main(String[] args) throws IOException {
   int inChar;
   System.out.println("Enter a Character:");
   inChar = System.in.read();
   System.out.print("You entered ");
   System.out.println(inChar);
}

Но и этот говнокод безопаснее кода на C/C++.

>> Я большого опыта программирования на нем нет, но хотел бы иметь представление,
>> чтобы пердеть в джавистов заряженными эм... орешками)

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

Ответить | Правка | Наверх | Cообщить модератору

51. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  –1 +/
Сообщение от Аноним (-), 23-Сен-15, 19:16 
> Я всегда думала, что так же быстра как и C++.

Вот это - совершенно не факт. У явы рантайм делает много чего лишнего. И на чисто алгоритмическом коде, например сжатии - ява продует сям разика так в три. И вообще, рантайм явы может подложить немало подлян, странно реализуя самые базовые операции. Так что в иных случаях и в 10 раз быстрее - не предел.

> Но при переписывании на C++, как правило, появляется огромное число уязвимостей,

А то что в жабистом рантайме их затыкают по 30 штук в каждой версии - вас не смущает?

> взломали ScyllaDB и получили доступ к 100500 банковским картам, банк срочно
> откатывается назад на Cassandra"

Ну вот когда и если - тогда и приходите. А учитывая квалификацию жабистов - скорее взломают кассандру. Ну а что, вон кучу всего на питонах, пыхе, рубях и прочая - ломают. И вебня давно обставила си в вопросах дырявости.

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

87. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +3 +/
Сообщение от Классический анонимус (?), 24-Сен-15, 05:10 
> Вот это - совершенно не факт. У явы рантайм делает много чего
> лишнего. И на чисто алгоритмическом коде, например сжатии - ява продует
> сям разика так в три. И вообще, рантайм явы может подложить
> немало подлян, странно реализуя самые базовые операции. Так что в иных
> случаях и в 10 раз быстрее - не предел.

На задаче - обрабатывать файл с недействительными паспортами РФ (качается с сайта ФМС), это 93 миллиона коротких стрингов (номер+серия), джабка оказалась быстрее си. Ну, рамы ела 4ГБ против 1, но это ерунда.

Полностью смысл задачи - взять сегодняшний файл и вчерашний, выделить дельту и засунуть в базу - последний шаг уже не бенчмаркался. Хотя jdbc-драйвер для Оракла на джаве тоже прямее, чем сишная поделка :)

Ответить | Правка | Наверх | Cообщить модератору

102. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Crazy Alex (ok), 24-Сен-15, 10:05 
Запросто, как раз тот случай, когда в сях у тривиальной реализации с аллокациями тормоза, а в жабе они шустрые, а gc на такой адачке вообще ни разу не запустится, скорее всего. Решаемо при чуть вдумчивом подходе, рзумеется, чуть позже накидаю для примера.
Ответить | Правка | Наверх | Cообщить модератору

158. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra,..."  +/
Сообщение от arisu (ok), 30-Сен-15, 22:42 
> Запросто, как раз тот случай, когда в сях у тривиальной реализации с
> аллокациями тормоза

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

Ответить | Правка | Наверх | Cообщить модератору

105. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Crazy Alex (ok), 24-Сен-15, 10:30 
Тьфу, что-то я туплю. Какие джавы? Какие самописные программы? sort (если оригинал не сортирован) + diff решат все ваши проблемы. Сортированный файл хранить до завтра, разумеется, и второй раз не сортировать.
Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

113. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Классический анонимус (?), 24-Сен-15, 12:03 
> Тьфу, что-то я туплю. Какие джавы? Какие самописные программы? sort (если оригинал
> не сортирован) + diff решат все ваши проблемы. Сортированный файл хранить
> до завтра, разумеется, и второй раз не сортировать.

"вчера" хранится в СУБД. Если хранить его ещё и в файле, то возможна неконсистентность.

Просто загрузка в СУБД (Oracle) нового файла - тормоза на полчаса.

Штатный линуксовый diff между 2 файлами по 100млн строк - тормоза на "больше часа".

Проги на джаве и си "выгрузить из СУБД, найти дельту, загрузить в СУБД" примерно одинаково на уровне 4-5 минут. На джаве шаг "найти дельту" около 40 секунд отрабатывает с fastutil.
Программу накидал за полчаса на стандартных и протестированных компонентах. Сишник 2 дня чё-то писал, переписывал, оптимизировал, в итоге скорость чуть ниже и ДРУГИЕ цифры. Т.е. у него ещё и баги надо было искать ;) При том, что сишник как прогер намного сильнее меня.

Ответить | Правка | Наверх | Cообщить модератору

114. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +1 +/
Сообщение от Классический анонимус (?), 24-Сен-15, 12:04 
> Штатный линуксовый diff между 2 файлами по 100млн строк - тормоза на
> "больше часа".

Кстати, "Штатный линуксовый diff" написанный на си (даже не с++ наверное), кушает 8-9ГБ ОЗУ при сравнении двух файлов с 100млн строк :) Джава 3.5-4.

Ответить | Правка | Наверх | Cообщить модератору

119. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Crazy Alex (ok), 24-Сен-15, 14:24 
Хм, уже интересно стало, сейчас докачается - пропробую наваять наскидку - тоже в рамках получаса. Завтра ещё обновлённую базу скачаю, чтобы реальные данные были. Но насчёт памяти - точно странно, там же потоковая обработка, как можно приней сожрать больше, чем суммарный объём двух файлов - не понимаю. Впрочем, раз оно в базе - можно голову не морочить.
Ответить | Правка | Наверх | Cообщить модератору

175. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Аноним (-), 11-Ноя-15, 12:47 
А в чём проблемы с загрузкой 100 млн. строк в оракл? 1 Гб. данных на час что-то странное.
Ответить | Правка | К родителю #113 | Наверх | Cообщить модератору

176. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Аноним (-), 11-Ноя-15, 12:48 
> А в чём проблемы с загрузкой 100 млн. строк в оракл? 1
> Гб. данных на час что-то странное.

Хотя если на каждую строку один запрос то возможно :)

Ответить | Правка | Наверх | Cообщить модератору

132. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от fi (ok), 25-Сен-15, 01:21 
Убейте архитектора системы - можно об стенку. такие вещи НЕ пишут на java/c и прочей лабуде- это задача (обратный поиск к пересечению) делает сама субд на раз! Подключаешь файл как таблицу и один селект вытягивает новые данные из нее, затем insert.  Даже мускль сделает вашу java как младенца.

зы. И этот ананист учит нас жизни???
  

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

133. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Классический анонимус (?), 25-Сен-15, 05:13 
> Убейте архитектора системы - можно об стенку. такие вещи НЕ пишут на
> java/c и прочей лабуде- это задача (обратный поиск к пересечению) делает
> сама субд на раз!

Oracle за полчаса. Читать учись. Или мускуль такой крутой стал что делаем меньше. Чем за 40 сек то, что Оракля за полчаса?

Ответить | Правка | Наверх | Cообщить модератору

157. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra,..."  +1 +/
Сообщение от arisu (ok), 30-Сен-15, 22:41 
> На задаче - обрабатывать файл с недействительными паспортами РФ (качается с сайта
> ФМС), это 93 миллиона коротких стрингов (номер+серия), джабка оказалась быстрее си.
> Ну, рамы ела 4ГБ против 1, но это ерунда.

рукожопие — это врождённое, потому что.

Ответить | Правка | К родителю #87 | Наверх | Cообщить модератору

89. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от Вареник (?), 24-Сен-15, 06:58 
> Я всегда думала, что так же быстра как и C++.
> Но при переписывании на C++, как правило, появляется огромное число уязвимостей, т.к.
> Java гораздо безопаснее C++ (поэтоу софт для банковских сфер и пр.
> ответвенных направлений пишется на Java). Вообщем жду новости такого типа: "злоумышленники
> взломали ScyllaDB и получили доступ к 100500 банковским картам, банк срочно
> откатывается назад на Cassandra"

Банки любят Oracle и всякие WebSphere с поядерными лицензиями. Возможно откаты, возможно на душе спокойнее: размывание отвественности, типа мы же заплатили за продукт и за ТАКИЕ ДЕНЬГИ нам должны были поставить суперустойчивое ПО, а мы руками трогать не можем и если что - "это не мы". Или только частично мы, а не полностью.

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

110. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +/
Сообщение от th3m3 (ok), 24-Сен-15, 11:21 
Вот же жесть. Забаньте уже эту блондинку тролля. Молю.
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

94. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +3 +/
Сообщение от Очередной аноним (?), 24-Сен-15, 08:52 
Вы наверное прочитали только первые два абзаца. Там ниже, под картинками, архитектура описывается. Наверное ЛЬВИНАЯ доля выигрыша именно в ней, а не в C++: убрали разделение данных (и, соответственно, диспетчеризацию доступа) между разными обработчиками, каждый из которых прикреплен к своему ядру процессора, а если взаимодействие/синхронизация какая-то нужна - то только через отправку сообщений, а не через механизмы блокировок/синхронизации операционной системы. А как тебе такой прием - свой оптимизированный TCP/IP стек, напрямую работающий с сетевой картой и стек этот находится в обработчике запросов, работа происходит в юзерспейсе, т.е. переключений контекста выполнения - минимум. Выигрыш тут больше из-за архитектуры, чем из-за C++. Заслуга C++ наверное тут только в том, что он позволяет делать ручные низкоуровневые оптимизации и легче организовывать прямой доступ к железу. Ну и конечно у него нет приостановок выполнения из-за сборки мусора, это бесспорно. Зато теперь появится возможность появления толпы ошибок, которые в яве невозможны. Даже несмотря на авторитет и профессионализм разработчиков (все совершают ошибки).
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

104. "Новая СУБД ScyllaDB, полностью совместимая с Cassandra, но в..."  +7 +/
Сообщение от ДяДя (?), 24-Сен-15, 10:15 
Современная беда - это разные уровни развития ЦП и ОЗУ.
>Заслуга C++ наверное тут только в том, что он позволяет делать ручные низкоуровневые оптимизации и легче организовывать прямой доступ к железу.

Теперь на Java это проще. Даже блог есть: http://java-is-the-new-c.blogspot.de/
Например, одно слово final и JIT сохраняет переменную в регистрах. Как на C++ это сделать ? Вы должны дружить с процессором. Только тогда будет производительность. От языка это не зависит ВООБЩЕ.
У современных процессоров беда с кэшем - false sharing. Ребята, которые делали Disruptor, сделали небольшой костыль для выравнивания адреса переменной на 64 байта. Производительность возросла в разы, но это просто дружба с ЦП, а не заслуга языка/платформы. В Java 8 этот приём вошёл.
У современных процессоров есть ещё куча иных квантовых эффектов, кроме кэша. Их можно использовать. http://www.youtube.com/watch?v=RGFJjQKChNQ

http://mechanical-sympathy.blogspot.ru/
http://psy-lob-saw.blogspot.ru/

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру