در ساده ترین تعریف می توانیم apache ignite را یک پایگاه داده توزیع شده حافظه محور (memory-centric distributed database) است که از حافظه اصلی (RAM) برای ذخیره سازی (storage) و پردازش (computing – processing) داده استفاده می کند. اما apache ignite در کنار حافظه اصلی به عنوان محور اصلی برای کار بر روی داده ها، اجازه می دهد تا از دیسک یا از پایگاه داده های غیر حافظه ای دیگر، یعنی rdbms ها معمولی و nosql ها برای ذخیره سازی دائمی نیز استفاده کنیم.

توزیع شدگی در apache ignite به این معنی است که کلاستری از کامپیوترها وجود دارد که هر کدام دارای حافظه اصلی خود است و apache ignite این امکان را فراهم کرده تا بتوانیم داده ها را بر روی هر یک از ماشین ها پخش کنیم. در مطالب بعدی در مورد دو رویکرد پارتیشن بندی (partitioning) و تکثیر داده (replication) صحبت خواهیم کرد.

سیستم حافظه توزیع شده

شکل زیر (۱) معماری یک سیستم حافظه توزیع شده (distributed memory system) را نشان می دهد. در تمام این دوره منظور از حافظه، حافظه اصلی یا همان RAM است و منظور از دیسک می تواند یک Flash یا SSD باشد.

در مفاهیم سیستم های توزیع شده، یک کلاستر مجموعه ای از کامپیوترهایی است که درون یک شبکه به یکدیگر متصل شده اند تا با همکاری یکدیگر یک هدف را انجام دهند. هر یک از کامپوترهای درون کلاستر را یک گره (node) می نامند. هر گره دارای پردازنده، حافظه و فضای ذخیره سازی خودش است.

یک سیستم حافظه توزیع شده، سیستمی چند پردازنده ای یا چند هسته ای (multicore) است که هر پردازنده یا هسته، حافظه خودش را دارد ولی شاید این تعریف دقیق نباشد. مطابق شکل ۱، سیستم حافظه توزیع شده متشکل از چندین پردازنده است که از طریق شبکه محلی به هم متصل شده اند و همچنین هر کدام حافظه خودش را دارد.

apache ignite نیز چنین معماری دارد و اجازه می دهد تا کلاستری از کامپیوترها را ایجاد کنیم که برای پردازش و کَش کردن داده ها استفاده می شود. مطابق با سیستم حافظه توزیع شده، هر گره در apache ignite دارای حافظه خودش است که برای پردازش سریعتر دادها استفاده می شوند.

نگهداری داده ها بر روی دیسک

apache ignite پایگاه داده توزیع شده ای است که از حافظه اصلی برای نگهداری موقتی و پردازش داده ها استفاده می کند. سرعت حافظه اصلی بسیار سریعتر از دیسک ها است ولی به غیر از گرانتر بودن، حافظه اصلی به صورت نامانا است و به این معنی است که اگر یک گره از کار بی افتد، تمامی داده های آن از بین می روند، پس راهکاری برای مقابله با این مشکل باید وجود داشته باشد.

ویژگی ignite native persistence که می توانیم آنرا فعال یا غیر فعال کنیم، این امکان را فراهم می کند تا بتوانیم برای حفاظت و بازیابی داده ها، از دیسک یا پایگاه داده های rdbms و nosql برای نگهداری دائمی آنها استفاده کنیم. راهکار دیگری که apache ignite برای استفاده از ویژگی ignite native persistence ارائه می دهد، استفاده از سیستم فایل توزیع شده هدوپ (hadoop distributed file system یا hdfs) است.

نگهداری داده ها بر روی دیسک

apache ignite پایگاه داده توزیع شده ای است که از حافظه اصلی برای نگهداری موقتی و پردازش داده ها استفاده می کند. سرعت حافظه اصلی بسیار سریعتر از دیسک ها است ولی به غیر از گرانتر بودن، حافظه اصلی به صورت نامانا است و به این معنی است که اگر یک گره از کار بی افتد، تمامی داده های آن از بین می روند، پس راهکاری برای مقابله با این مشکل باید وجود داشته باشد.

ویژگی ignite native persistence که می توانیم آنرا فعال یا غیر فعال کنیم، این امکان را فراهم می کند تا بتوانیم برای حفاظت و بازیابی داده ها، از دیسک یا پایگاه داده های rdbms و nosql برای نگهداری دائمی آنها استفاده کنیم. راهکار دیگری که apache ignite برای استفاده از ویژگی ignite native persistence ارائه می دهد، استفاده از سیستم فایل توزیع شده هدوپ (hadoop distributed file system یا hdfs) است. شکل زیر (۲) معماری apache ignite را نشان می دهد.