[번역] 스팀잇 공식 업데이트 - 성능 및 확장성 업데이트 (Performance and Scalability Updates)

in #kr7 years ago (edited)

안녕하세요? @asbear입니다. 스팀잇 팀에서 공식으로 진행사항에 대해서 발표 하였습니다. 매우 의미있는 내용들이 많네요. 간단히 번역해 보았으니 한번 읽어보시기 바랍니다. 추가로 개발자로써 솔직한 제 생각도 약간 적었습니다 (이부분은 개발자용입니다 ㅎㅎ)


스팀잇 개발팀은 지난 몇달간 steemit.com 및 블록체인 API의 속도, 효율성, 안정성 향상을 포함한 전반적인 성능 개선을 진행 해 왔습니다. 이 포스팅을 통해 진행 사항을 알려드립니다.

Jussi

그동안은 steemit.com은 블락체인으로부터 직접 데이터를 읽어왔으며 이는 비효율적인 방식입니다. 그래서 우리는 웹사이트화 블록체인 그리고 여타 백엔드 서비스들 사이에서 동작하는 Jussi라는 서비스를 추가 하였습니다. Jussi는 캐쉬 (자주읽히는 데이터를 메모리에 저장해놓고, 재사용하는기술) 및 보안계층으로 동작 합니다.

Jussi를 적용한지 며칠 되었는데, 스팀잇 웹사이트가 블록체인으로부터 데이터를 읽는 성능이 엄청나게 향상 되었습니다. Jussi를 도입한 또다른 이유는, 새로운 백엔드 구조인 AppBase를 통해 기능들을 모듈화 함으로써 추가적인 성능 향상을 도모하기 위함입니다.

@asbear: 캐쉬 레이어가 그동안 없었다는것이 저는 무엇보다 충격입니다. SNS같은 웹사이트 설계시에는 최소한 data read 캐쉬는 상식에 가까운것인데, 그것이 없었다는것이 놀랍고, 뒤늦게 그거 추가한걸로 성능 향상된걸 좋다고 자랑하는 팀의 실력(?)을 솔직히 좋게 보기 어렵습니다.

AppBase

원래 하나의 steemd 블록체인 노드는 여러 스레드를 사용하여 동시에 여러 태스크를 수행할수 있지만, API 콜은 1개의 스레드가 처리하고 있습니다. 이것때문에 steemd가 처리할수있는 API의 수에 한계가 있습니다.

AppBase는 여러개의 스레드가 API콜을 동시에 처리할수 있도록, 명확한 모듈을 생성해주는 새로운 아키텍쳐입니다. 당연히 1개의 스레드가 처리하는것보다 훨씬 효율적이죠. steemd를 모듈화 함으로써 CPU의 병렬처리를 최대한 활용 할 수 있게 됩니다. 기본적인 모듈화된 블록체인은 이미 기반을 갖추었고, 이를 토대로 여러 추가적인 성능향상을 꾀할 수 있습니다.

**개발팀은 AppBase 를 상용화 준비하기위해 쉬지 않고 총력을 기울이고 있으며, 조만간 배치 할 예정입니다.

@asbear: 이부분 또한 그동안 구현되어 있지 않았다는게 더 놀랍습니다. 그리고 하물며 API콜을 1개의 스레드가 처리하고있다 하더라도, 수행단만 제대로 비동기로 분리하면 이정도까지 느려질 이유가 있을지 의구심이 듭니다. 경험상 C++의 ASIO나 NodeJS 혹은 Python Tornado의 ioloop 모두 single ioloop으로도 어마어마한 request를 처리할 수 있거든요. 결국 steemd 구현이 asynchronous가 아니라는 의미같습니다. 아무튼 성능 향상을 하였다니 다행입니다.

Peer-to-Peer (P2P) 네트워크 변경사항

P2P 코드는 모든 steemd 블록체인 노드의 동기화를 수행합니다. 포스팅, 보팅등이 발생했을 때 이를 다른 노드들로 효율적으로 전송해야만, steemit등의 웹사이트에서 전송된 명령들이 빠르게 처리되고 제시간에 witness들에 의해 블록에 담기게 됩니다.

저희는 P2P 코드의 성능을 수차례 향상 시켰으며, 조만간 추가적인 성능 향상이 있을 예정입니다.

소통

이런 여러가지 기능 및 성능 향상은 연구, 설계, 개발, 테스트, 배치등의 절차를 거치며 많은 시간과 자원을 필요로 합니다. 여러분이 최신의 진행사항을 알고싶어 하는것은 이해하지만, 진행사항을 원하는만큼 자주 전하기에는 무리가 있습니다. 저희의 최우선 목표는 최대한 빨리 성능향상을 이루는것이며, 그 목표에 최대한 집중하고 싶습니다. 또한, 우리가 충분히 상황을 파악하기 전에 이슈를 공개함으로써 불필요하게 해커들의 관심을 끌고 싶지 않습니다.

스팀잇 개발팀은 웹사이트 사용에 지장을 초래하는 모든 문제들을 신중하게 검토하고 있습니다. 여러 성능 관리툴이 24시간 steemit 웹사이트의 성능을 감시하고 있으며, 서비스가 중단되면 바로 알수 있습니다. 그리고 사용자가 웹사이트에서 어느정도 버벅임을 느끼는지 계측하는 통계 수치들도 계속 확인하고 있습니다. 문제가 있으면 우리는 이미 알고있다는 말씀입니다. 또한, 사용자분들이 바로바로 문제를 알려주셔서 감사하게 생각하고 있습니다. 문제점들에 대해 공개적으로 바로바로 소통하지는 못하지만, 저희가 항상 신속하게 문제를 해결하기위해 눈을 부릅뜨고 있다는것을 알아주시고, 맏겨주시길 바랍니다.

위에서 이야기드린 성능개선들 덕분에 저희 모두 들떠 있습니다. 왜냐하면 이 성능향상을 통해, 우리가 예상하는만큼 기하급수적인 사용자 증가하더라도 수용이 가능할 것이기 때문입니다. 저희가 세계 최고의 웹사이트를 만들어가는동안 인내심을 가지고 지켜봐 주셔서 감사합니다.

@asbear: 알아서 잘 하고있으니 자꾸 귀찬게 하지 말라는 소리로 들립니다. 맞는 말이긴 한데, 그동안 개발팀이 보여준 퍼포먼스나 백엔드 아키텍쳐의 허술함등을 보면 구글이나 페이스북 엔지니어들을 믿듯이 믿음이 확확 가지는 않네요. 저야 일개 사용자일뿐이니 잘들 하길 응원해 줘야겠지만.. 금전적으로나 시간을 투자 많이한 사람들은 목소리를 낼 자격이 있는것 아닌가 생각도 들고 그렇습니다.

Steem on,

스팀잇 팀

원문:

https://steemit.com/performance/@steemitblog/performance-and-scalability-updates

Sort:  
흥분되는 @asbear님 안녕하세요! 개과장 입니다. 시크한 @nhj12311님이 너무너무 고마워 하셔서 저도 같이 감사드리려고 이렇게 왔어요!! 감동적인 하루 보내시라고 0.2 SBD를 보내드립니다 ^^

@nhj12311님 감사합니다!

섹시한 @asbear님 안녕하세요! 개대리 입니다. 쏘쿨한 @umkin님이 너무너무 고마워 하셔서 저도 같이 감사드리려고 이렇게 왔어요!! 훈훈한 하루 보내시라고 0.2 SBD를 보내드립니다 ^^

@umkin님 감사합니다!!

흥분되는 @asbear님 안녕하세요! 개과장 입니다. 러블리한 @coffeenut님이 너무너무 고마워 하셔서 저도 같이 감사드리려고 이렇게 왔어요!! 배꼽잡는 하루 보내시라고 0.2 SBD를 보내드립니다 ^^

Cheer Up!

  • from Clean STEEM activity supporter

좋은 글 잘 보았습니다
Good morning~~!

@hooo님 감사합니다 ^^

잘읽고 갑니다.

감사드립니다 ^^ 오늘 스팀잇 장난아니네요. 아직 적용을 안했나봐요 ㅎㅎ

번역 감사합니다 ! @감사해 ㅋㅋㅋㅋ 캐쉬 세이브 앤 로드가 안됬다는게 신기하네요 ㅋㅋㅋㅋ 그래서 폰으로 하면 데이터가 엄청났구나.. 아니 근데 속도는 왜 안빨라진겁니깤ㅋㅋㅋ

말씀하시는 브라우저 캐쉬가 아니라 백엔드 캐시를 말합니다. 아래같은 위치에 들어가는겁니다.

브라우저 - 인터넷 - 스팀잇웹서버 - Jussi - steemd (블록체인서버)

현재기준에서는 이런구조겠죠. 브라우저가 직접 steemd와 통신하니까요.

브라우저 - 인터넷  - 스팀잇웹서버 - steemd
               |--------------|

움 전문적인 코멘트 감사합니다.. 생각보다 아직 프로그래밍 면에서는 허술한점이 많다는 게 상당히 아쉬운점이네요.. 그리고 마지막, 소통이라는 것을 저렇게 대응한다는점.. 물론 집가서 원문을 읽어볼테지만.. 전체적으로 운영진에 대한 느낌은 꽝이네여

더 여러가지 코멘트를 적고싶었으나.. 추측성이 강할것같아 적지않았습니다 ^^ 저희는 고객이 아닌가봅니다. 고객도 아니고 투자자도 아니고... 그냥 테스터 정도인가 싶어요 ㅎㅎ

스팀잇의 개선활동을 하고 있다는 정도도 그나마 다행이긴하네요. 좋은 글 감사합니다~!

그래도 다행입니다.. ^^

아마도 누군가 SNS 서비스를 해보았던 개발자가 나타나 기술적으로 이들을 구해준 게 아닌가 하는 생각이 듭니다.
그러다 보니 잘 모르는 사람들은 그냥 우와~! 이러고 있는 상황.. ㅎㅎ

아무튼 지금이라도 참 다행이지요. ㅋㅋㅋ
@감사해

ㅎㅎㅎㅎㅎㅎ 웃기네요. 그수준의 개발팀은 아닐거라고 믿습니다.. 기존의 백엔드 아키텍쳐가 미숙한것은 아마도 그동안은 코어쪽(블록체인/보안/API) 개발위주로 돌아간게 아닌가 싶습니다.

그냥 아쉬운건.. 이슈를 공개하던 숨키던 해커들한테는 별 차이 없다는것을 자기들도 알텐데 그 핑계를 대는것. 그리고 페북 구글 아마존같은 기술력이
엄청난 회사들도 site reliability에 엄청난 인력과 돈을 쏟아붇는데, 자기들이 무슨수로 알아서 잘 할수있다고 장담하는지.. 도그마에 빠져있는거같은 느낌이 좀 듭니다. 저라면 집단지성을 활용하는 차원에서 아키텍쳐를 공개하고 개선해나가고싶을것 같습니다. 스팀잇에 엔지니어들도 많고 기꺼히 기여하고싶어하는 분들도 많은데 폐쇄적으로 갈 이유가 뭘까요. 자기들 밥그릇 챙기기 일환으로 밖에는 비춰지지 않네요. ㅎㅎ

네- 해커는 핑계고 위에서 이야기한대로 자신들이 아직 내용을 정확히 파악하지 못했다는 것 같습니다.
걍 해커 얘긴 아예 안했어도 될 것 같은데..

그리고 아이러니하게도 스팀잇은 참 집단지성을 활용해 문제를 해결해 나가기에 너무나도 좋은 플랫폼인데...
chainbb.com 의 형태로 포럼에다가 문제 던져서 해결해 보는 것도 재미있을 것 같아요.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63166.66
ETH 2575.67
USDT 1.00
SBD 2.77