개발하면서
-
[Fastcat] FullIndex를 알아보자. (1)개발하면서/코드보면서 2011. 8. 6. 00:40
이번에는 전체색인을 fastcat에서는 어떻게 하는지 알아보자. schema에서는 각 필드의 정보들(primary, sort, type, group등)을 schema.xml에서 읽어들이고 SourceReader는 실제 원문 파일을 읽어들이는 기능을 한다. SegmentWriter는 읽어들인 데이터를 가지고, 실제 색인작업을 수행한다. 이번 포스트에서는 Schema와 SourceReader에 대해서 알아보도록 하자. Test용으로 있는 schema.xml을 보면 맨 처음에는 collection의 이름이 나오고 그 다음에 6개의 필드 정보가 나온다. 각 필드는 name과 type은 반드시 있어야한다. (가장 기본적인 data) schema.xml을 한줄한줄 읽어가며 parsing한 data를 Schema c..
-
inter & range Command개발하면서/코드보면서 2011. 7. 21. 23:50
이번 포스트에서는 set, zset(sorted set) 자료구조에서 inter, union 어떻게 동작하는지 알아봅니다 우선 무식하게 주어진 key의 value들을 다 읽어가면서 check, check 하면서 진행할것같다...라는 생각을 가지고 소스를 보기 시작했습니다. 어? 진짜네요;;; set, zset 거의 동일합니다. set 기준 으로 설명하겠습니다. inter명령어 입니다. sinterGenericCommand( reply할 client, set 첫 포인터, set자료구조의 갯수, 결과 저장할 set) 마지막 인자는 sinterstore명령어에서 사용하겠죠? 흐름은 아래와 같습니다. (마지막이 key3이 아니라 key4;;;) set[0]을 기준으로 set[1~-setnum-1]들이 크기순으로..
-
Hadoop에서 wrong key class 에러 발생개발하면서/etc 2011. 7. 10. 09:49
job은 아래와 같고 job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); job.setMapOutputKeyClass(IntWritable.class); job.setMapOutputValueClass(Text.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setJobName("sort"); job.setMapperClass(SortMaps.class); job.setCombinerClass(SortReducer.class); job.setReducerClass(Sor..
-
[Fastcat]작업 관리에 대해 알아보자.개발하면서/코드보면서 2011. 7. 2. 10:52
검색 하는 부분을 보기에 앞서, 작업들을 어떻게 관리하는지 보자. init에서는 HomePath 설정하고, 객체 가져온다. 이번 Post에서는 dbHandler, JobController, JobScheduler가 어떤식으로 구동하는지 알아보자 dbHandler는 간단하다. Connection가져오는 기능, 그리고 table 생성하는 기능 JobController는? Job을 담을 저장공간, JobQueue가 있는데 JobControllerWorker가 계속 감시한다. Job이 들어오면 즉시 jobExecutor에다가 주고, jobExecutor가 Job을 실행 한다.. 그리고 JobScheduler는 DB의 IndexingSchedule 테이블에서 활성화된 예약 작업들 (isActive==1) 을 가져..
-
C Predefined Macros개발하면서/etc 2011. 6. 19. 21:42
#include int main() { printf("FILE:%s LINE :%d\n", __FILE__, __LINE__); printf("FILE:%s LINE :%d\n", __FILE__, __LINE__); printf("DATE : %s\n", __DATE__); printf("TIME : %s\n", __TIME__); return 0; } C에서 로그를 찍을 때 보다 더 많은 정보를 남기기 위한 Macro. 소스 예제는 ANSI 표준이고 아래 URL을 가면 MS에서 정의한 Macro들이 있다. 오호~ 이걸 이용해서 log4j 같이 로그 남기는 C library를 만들면 재밌을 것 같다 : ) Microsoft Predefined Macros
-
[Redis] Persistence개발하면서/타인글보면서 2011. 4. 4. 23:32
Snapshotting Redis는 기본적으로 binary 파일, dump.rdb에 dataset의 snapshot을 저장한다.dataset에 최소 M번 변경된 경우에 매 N초마다 dataset을 저장할수 있게 Redis를 조절할 수 있다. 또는 당신이 SAVE, BGSAVE 명령어를 이용하여 수동으로 조절할수있다. key값들이 최소 1000번 변경된 경우에 60초마다 Redis가 자동으로 dataset을 disk에 백업하는 예는 다음과 같다. save 60 1000 이 전략은 아시다시피 snapshotting. 라고 한다. How it works 다음과 상황이 발생하면 Redis는 dataset을 디스크에 백업을 하게된다. Redis forks. 이젠 자식과 부모 프로세스 두개가 존재한다. 자식프로세스..