টাইমস্ট্যাম্প, বছর 2038 64 বিট উবুন্টু সিস্টেমের জন্য সমস্যা


24

আমি 64 বিট উবুন্টু সিস্টেম ব্যবহার করছি।

আমি বর্তমানে এমন একটি প্রকল্পে কাজ করছি যা মারিয়াডিবি অন্তর্ভুক্ত করে। আমি প্রকল্পে টাইমস্ট্যাম্প কৌশল চালু করার পরিকল্পনা করছি যাতে লোকেরা বিভিন্ন টাইমজোনের জন্য সঠিক সময়টি পেতে পারে।

আমি টাইমস্ট্যাম্পের জন্য 2038 বছরের সমস্যা সম্পর্কে কিছু নিবন্ধ শুনেছি এবং পড়েছি। অনেক নিবন্ধ পরামর্শ দেয় যে আমরা একটি "বিট" আরও সময় কিনতে একটি 64 বিট সিস্টেম ব্যবহার করি।

এই "বিট" কতটা সময় উল্লেখ করছে? শেষ মুহুর্তে ওয়েব অ্যাপ্লিকেশন পরিচালনা করতে আমাদের পক্ষে কি এত দীর্ঘ সময় আছে? যদি এটি না হয় তবে এটি কি কেবল দুই বছরের বর্ধনের মতোই যখন বছর ২০৪০ আসে, আমরা কী এমন অ্যাপ্লিকেশনগুলি নিয়ে যাচ্ছি যা সঠিকভাবে কাজ করে না?


27
time_t-৪ -বিট ইন্টিজারগুলি ব্যবহার করে -৪ -বিট সিস্টেমগুলি আপনাকে একটি 'বিট' আরও সময় দেবে - রবিবার, 4 ডিসেম্বর 292,277,026,596 এ 15:30:08 অবধি। আশা করি এটি আপনার আবেদনের জন্য যথেষ্ট দীর্ঘ;)
রন

4
এটি আপনাকে আরও "বিট" দেয় না। এটি আপনাকে ঠিক 32 বিট দেয়।
ব্যবহারকারী 12205

5
Stop৪-বিট টাইমস্ট্যাম্পগুলি হ'ল এই স্টপগ্যাপ ব্যবস্থার মধ্যে একটি। 100,000,000,000,000 সিইতে প্রকল্প ইউটোপিয়ায় কাজ করা লোকদের সম্পর্কে কী বলা যায়? তাদের খুব কার্যকর কম্পিউটার সিস্টেমের প্রয়োজন হবে! 128-বিট টাইমস্ট্যাম্প ব্যবহার করে আমাদের মহাবিশ্বের এই পুনরাবৃত্তিটিই নয়, অনেকগুলি, অনেকগুলি থেকে যে কোনও সময় অনন্যতার সাথে সনাক্ত করতে দেওয়া হবে।
18:38

1
যেমন আপনি এই সাইটে এর আগে কোনও উত্তর গ্রহণ করেন নি: নীচের উত্তরগুলির মধ্যে যদি একটি আপনাকে সহায়তা করে, তবে তার পাঠ্যের বামদিকে ধূসর click ক্লিক করতে ভুলবেন না , যার অর্থ হ্যাঁ, এই উত্তরটি বৈধ ! ;-)
Fabby

উত্তর:


34

আচ্ছা, যদি আক্ষরিকভাবে একটি "বিট" কেনার বিকল্প থাকে, অর্থাত্ একটি স্বাক্ষরিত 32 বিট পূর্ণসংখ্যার থেকে একটি স্বাক্ষরবিহীন 32 বিট পূর্ণসংখ্যায় স্থানান্তর করে, জিনিসগুলি 2106 এ কাজ করে চলে।

64 বিটে স্থানান্তর করা "কিছুটা ভাল"। আপনি কয়েক বিলিয়ন বছরের রেজোলিউশন পান get

এবং উবুন্টু এটি করে:

$ uname -p
x86_64

$ date --date=9090-01-01 +%s
224685532800

তবে এটি ওএস স্তর। উবুন্টু তার সময়ের জন্য একটি bit৪ বিট পূর্ণসংখ্যা ব্যবহার করার অর্থ এই নয় যে মাইএসকিউএল / মারিয়াডিবি এটির টাইমস্ট্যাম্পগুলি সঞ্চয় করতে ব্যবহার করবে । 2038 এর পূর্বের তারিখগুলি যদি আপনার এখন গুরুত্বপূর্ণ হয়, অবিলম্বে পরীক্ষা শুরু করুন।

আসলে, আমি আপনাকে কিছুটা সময় বাঁচাতে পারি। এখনও ভেঙে গেছে। এই বাগটি এক দশক আগে রিপোর্ট করা হয়েছিল তবে এটির প্রধান পরীক্ষাটি এখনও bit৪ বিট ইন্টের সাথে ব্যর্থ হয়।

mysql> select from_unixtime(2548990800);
+---------------------------+
| from_unixtime(2548990800) |
+---------------------------+
| NULL                      |
+---------------------------+
1 row in set (0.00 sec)

এটি এমনকি সঞ্চয়স্থান নয়। এটা কিছুটা করুণ।

(এবং হ্যাঁ, এটি মারিয়াডিবি, সংস্করণ 10.1 এ চালিত হয়েছিল)


8
10 বছর আগে, তাদের এখনও এটি ঠিক করার 22 বছর সময় আছে। <আঙ্গুলগুলি ক্রস করুন> ...
মাইন্ডউইন

4
এনবি: স্বাক্ষরবিহীন 32 বিট পূর্ণসংখ্যার ব্যবহার হ্যাক
কেভিন

6

একে একে পূর্ণসংখ্যা হিসাবে সঞ্চয় করবেন না। এটি একটি আইএসও 8601 ফর্ম্যাট তারিখের স্ট্রিং হিসাবে সঞ্চয় করুন । এটি ইন্টারনেটে ব্যবহৃত স্ট্যান্ডার্ড ফর্ম্যাট।

9999-12-31T23:59:59+00:00

17
আসুন সবাই মিলে ইয়ার 10 কেতে একটি গ্লাস তুলি! ;) তবে গম্ভীরতার সাথে, যদিও স্ট্রিংগুলি সত্যই প্রসারিত, সেগুলি তুলনামূলকভাবে বিশাল 200 (আপনার উদাহরণটি 200 বীট!) এবং আদিম সংখ্যাকে পার্সিং এবং ম্যানিপুলেট করা একটি বাজিলিয়ন গুণ দ্রুত। এই ব্যাপারগুলো.
অলি

6
এটি প্রদর্শনের জন্য এটি দুর্দান্ত ফর্ম্যাট - এবং কেবল এটির জন্য। অন্য যে কোনও কিছুর জন্য (এটি হ'ল শেষ মুহুর্ত পর্যন্ত ডেটা হ্যান্ডেল করা যখন আপনি এটি ব্যবহারকারীর সাথে ফর্ম্যাট করার সিদ্ধান্ত নেন) যেমন তুলনা করা, অঙ্কগুলি করা ইত্যাদি ইত্যাদি হিসাবে ইউনিক্স টাইমস্ট্যাম্পটি একটি পূর্ণসংখ্যা (বা ভাসমান) হিসাবে অনেক ভাল।
egmont

1
@ অলি এটির জন্য গুরুত্বপূর্ণ, যদি এটি আসলে গুরুত্বপূর্ণ। UNIX যুগের চেয়ে বহুগুণ বেশি হলে এই সমাধানটি ব্যর্থ হয় না। ফর্ম্যাটটি হ'ল প্রোটোকল এবং এপিআই-তে সমস্ত ইন্টারনেট জুড়ে তারিখের জন্য ব্যবহৃত হয়। আপনি যদি কোনও মারিয়াডিবি কলামে কিছু সঞ্চয় করে রাখছেন তবে সত্যিই, এটি আপনার ডিস্কে কীভাবে সংরক্ষণ করা উচিত। অবশ্যই, মেমরির ক্ষেত্রে, আপনি এটিকে আরও কার্যকরযোগ্য ডেটা স্ট্রাকচারে সঞ্চয় করতে চান। আপনি সর্বদা ইউটিসি ব্যবহার করেন এবং আপনার সর্বশেষ 40 টি বিট লাগবে না।
dobey
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.